Opção 1: use vim, emacs, geany e muito mais!

Opção 1: use vim, emacs, geany e muito mais!

Freqüentemente, alterarei um pequeno script no gedit e depois o executarei em um terminal. Não existe um editor de texto simples com um botão “Executar” ou algo assim para agilizar isso? Mesmo no Eclipse não é trivial. Estou procurando sugestões específicas sobre quais editores de texto oferecem suporte a isso ou como eles podem ser estendidos para oferecer suporte a isso.

Responder1

Opção 1: use vim, emacs, geany e muito mais!

In vime use :!bash file.shou apenas crie um atalho para ele em.vimrc

No Emacs, você usa M-!. Então você mantém pressionado Alte depois pressiona !. Você pode até passar texto em seu buffer atual para um comando selecionando o que deseja passar para um comando e pressionando M-|. Assim você pode destacar seu código e passá-lo para o comando bash.

Cada ferramenta tem seu próprio jeito!

Opção 2: usar findeentr

Execute este comando para que sempre que QUALQUER .sharquivo no diretório for alterado, ele será executado novamente automaticamente:

find . -name '*.sh' | entr -cs file.sh

Opção 3: use a combinação de tmux, vime entrpara codificação ao vivo

Eu escrevi isso há muito tempo c++e depois usei-o mais em outras linguagens e agora você também pode usá-lo para programação shell.

Veja como será:

cppshell

para que o programa rode, basta salvá-lo no vim ( :w) e ele será executado.

Salve isso em ~/bin/ide:

#!/usr/bin/bash

tmpdir=""
template="simple"

for i in "$@"
do
case $i in
    -t=*|--template=*)
        template="${i#*=}"
    shift # past argument=value
    ;;

    -n=*|--name=*)
    dir="${i#*=}"
    mkdir -p ~/cppshells/$dir
    tmpdir=~/cppshells/$dir
    shift
    ;;

    -h|--help)
    echo "-n=*|--name=* \t\t the name of the project"
    echo "-t=*|--template \t\t the template to use"
    exit;
    ;;


    *)
        # nothing to do
    ;;
esac
done

if [ -z "$tmpdir" ]; then
    tmpdir=$(mktemp -d)
fi;

tmpdir=$(realpath ${tmpdir});
window="cpp-$1-$((1 + RANDOM % 10000000))"

if [ -z "$EDITOR" ]; then
    EDITOR="nvim";
fi;

template_dir="$(dirname $0)/templates/${template}"

if [ ! -d $template_dir ]; then
    echo "The specified template ($template) does not exists."
    exit;
fi;

tmux new -s ${window} -d -c "${tmpdir}"
tmux split-window -t ${window} -h
tmux select-pane -t ${window}.right
tmux resize-pane -t ${window}.right -R 18
tmux send-keys -t ${window}.left "cd ${tmpdir}" C-m
tmux send-keys -t ${window}.right "cd ${tmpdir}" C-m


# copy files if the directory does not exists
if [ `ls -A ${tmpdir} | wc -m` == "0" ]; then
    cp -nr $template_dir/* ${tmpdir}/.
fi;

# run build commands
if [ -f ${template_dir}/Makefile ]; then # make
    tmux send-keys -t ${window}.right "find . -name '*.cpp' | entr -cs 'make -j8 && ./a.out'" C-m
        tmux send-keys -t ${window}.left "${EDITOR} ${tmpdir}/main.cpp" C-m
elif [ -f ${template_dir}/CMakeLists.txt ]; then # CMake
    mkdir -p ${tmpdir}/build
    cmake -G "Unix Makefiles" -B${tmpdir}/build -S${tmpdir}
    tmux send-keys -t ${window}.right "find . -name '*.cpp' | entr -cs 'make -j8 -Cbuild/ && ./build/a.out'" C-m
        tmux send-keys -t ${window}.left "${EDITOR} ${tmpdir}/main.cpp" C-m
elif [ -f ${template_dir}/main.py ]; then # Python
        chmod +x ${tmpdir}/main.py
    tmux send-keys -t ${window}.right "find . -name 'main.py' | entr -cs '${tmpdir}/main.py'" C-m
        tmux send-keys -t ${window}.left "${EDITOR} ${tmpdir}/main.py" C-m
elif [ -f ${template_dir}/main.sh ]; then # Bash
        chmod +x ${tmpdir}/main.sh
    tmux send-keys -t ${window}.right "find . -name 'main.sh' | entr -cs '${tmpdir}/main.sh'" C-m
        tmux send-keys -t ${window}.left "${EDITOR} ${tmpdir}/main.sh" C-m
fi;


tmux select-pane -t ${window}.left
tmux attach -t ${window}

Em seguida, crie ~/bin/templates/simplediretórios e coloque main.shneles um arquivo simples que será seu ponto de partida ao executar ideo comando. Você também pode criar mais e mais modelos (cada um em um diretório diferente no ~/bin/templates/diretório).

Adicione /home/$USER/binao seu caminho para que você possa executar o ide.

Para executar o script você pode usar estas 3 maneiras:

  • Para testes simples: ide(criará um diretório temporário com mktemp -do comando
  • Para salvar o arquivo no ~/cppshell/[something]/diretório:ide -n=something
  • Para usar um modelo diferente (ponto de partida):ide -t=not-simple -n=some_name

Como eu disse, você pode usar este script para criar uma ferramenta semelhante a um shell para executar python, C++, bash ou até mesmo adicionar a sua própria.

Atualizar: desde que escrevi esta resposta, atualizei minha própria versão várias vezes com novos recursos e suporte mais amplo. Aqui está umlink para a página do GitHub para este script de shell. Você também pode ver mais detalhes noPágina Leiame.

Responder2

De:

Plug-ins do Gedit

Use geditplug-in de terminal externo

Você pode usar geditcom plugin de terminal. As etapas são bastante simples:

  1. Habilitar repositório "Universo"
  2. Instalargedit-plugins
  3. Ative o "Terminal Incorporado"
  4. Use Ctrl+ F9para abrir o terminal
  5. Outros geditplug-ins

Passo 1. Habilite o repositório "Universo"

O primeiro passo é garantir que Universeo repositório esteja ativado em Settings-> Software & Updates-> Ubuntu Softwaree garantir que a terceira opção esteja marcada:

repositório de plug-ins gedit.png

Etapa 2. Instalargedit-plugins

Instale gedit-plugscom o comando:

sudo apt install gedit-plugins

Etapa 3. Ative o "Terminal incorporado"

Abra gedit(não use sudo) e selecione Edit-> Preferences-> Pluginse marque Embedded Terminal:

terminal incorporado gedit.png

Passo 4. Use Ctrl+ F9para abrir o terminal

No GIF abaixo usamos Ctrl+ F9para obter uma pequena janela com o prompt de comando. Use o mouse para arrastar a linha divisória para cima.

plugin do terminal gedit.gif

Etapa 5. Outros geditplug-ins

Conforme mencionado na Etapa 4, você pode pegar a barra separadora para aumentar a janela do terminal. Esta é a aparência de uma imagem normal ((não um GIF).

Existem três outros plug-ins que uso atualmente na geditjanela de codificação:

  • plug-in para exibir recorte de 80 caracteres com cor de fundo diferente
  • plug-in para exibir o documento inteiro em miniatura que você pode arrastar para ir rapidamente para a seção de código
  • Destacar colchetes correspondentes

linha terminal gedit wrap.png

Para leitura adicional, consulte:

Responder3

Se você se sentir confortável com o vim, você pode executar

:w !bash

(sub seu shell de escolha) e isso executará o script no buffer atual.

Em um ambiente gráfico, utilizo VS Code. É um IDE leve, extensível, com suporte GIT integrado e um terminal integrado.

Responder4

No Emacs você pode usar Ctrl-C Ctrl-Xpara isso.

informação relacionada