Opción 1: ¡use vim, emacs, geany y muchos más!

Opción 1: ¡use vim, emacs, geany y muchos más!

A menudo cambio un pequeño script en gedit y luego lo ejecuto desde una terminal. ¿No existe un editor de texto simple con un botón "Ejecutar" o algo para simplificar esto? Incluso en Eclipse no es trivial. Estoy buscando sugerencias específicas sobre qué editores de texto admiten esto o cómo se pueden ampliar para admitirlo.

Respuesta1

Opción 1: ¡use vim, emacs, geany y muchos más!

En vimy utilizar :!bash file.sho simplemente crear un acceso directo para ello en.vimrc

En Emacs, usas M-!. Entonces mantienes presionado Alty luego presionas !. Incluso puedes pasar texto en tu búfer actual a un comando seleccionando lo que deseas pasar a un comando y luego presionando M-|. Para que pueda resaltar su código y pasarlo al comando bash.

¡Cada herramienta tiene su propia manera!

Opción 2: usar findyentr

Ejecute este comando para que cada vez que CUALQUIER .sharchivo en el directorio cambie, se ejecute nuevamente automáticamente:

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

Opción 3: use una combinación de tmux, vimy entrpara codificación en vivo

Escribí esto hace mucho tiempo c++y luego lo usé más en otros lenguajes y ahora también puedes usarlo para programación de shell.

Así es como se verá:

cppshell

Para que el programa se ejecute, todo lo que tengo que hacer es guardarlo en vim ( :w) y se ejecutará.

Guarda esto en ~/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}

Luego cree ~/bin/templates/simpledirectorios y coloque main.shen ellos un archivo simple que será su punto de partida cuando ejecute ideel comando. También puedes crear más y más plantillas (cada una en un directorio diferente en ~/bin/templates/el directorio).

Añádelo /home/$USER/bina tu camino para que puedas correr ide.

Para ejecutar el script puedes utilizar estas 3 formas:

  • Para pruebas simples: ide(creará un directorio temporal con mktemp -del comando
  • Para guardar el archivo en ~/cppshell/[something]/el directorio:ide -n=something
  • Para utilizar una plantilla diferente (punto de partida):ide -t=not-simple -n=some_name

Como dije, puedes usar este script para crear una herramienta similar a un shell para ejecutar Python, C++, bash o incluso agregar la tuya propia.

Actualizar: desde que escribí esta respuesta, he actualizado mi propia versión muchas veces con nuevas funciones y un soporte más amplio. Aquí está unenlace a la página de GitHub para este script de shell. También puedes ver más detalles en elPágina Léame.

Respuesta2

De:

Complementos de Gedit

Utilice geditun complemento de terminal externo

Puede usarlo geditcon el complemento de terminal. Los pasos son bastante sencillos:

  1. Habilitar el repositorio "Universo"
  2. Instalargedit-plugins
  3. Activar "Terminal integrada"
  4. Utilice Ctrl+ F9para abrir la terminal
  5. Otros geditcomplementos

Paso 1. Habilite el repositorio "Universo"

El primer paso es asegurarse de que Universeel repositorio esté activado desde Settings-> Software & Updates-> Ubuntu Softwarey asegurarse de que la tercera opción esté marcada:

repositorio de complementos de gedit.png

Paso 2. Instalargedit-plugins

Instalar gedit-plugscon el comando:

sudo apt install gedit-plugins

Paso 3. Active la "Terminal integrada"

Abra gedit(no use sudo) y seleccione Edit-> Preferences-> Pluginsy marque Embedded Terminal:

gedit terminal integrado.png

Paso 4. Usa Ctrl+ F9para abrir la terminal

En el GIF a continuación usamos Ctrl+ F9para obtener una pequeña ventana con el símbolo del sistema. Utilice el ratón para arrastrar la línea divisoria hacia arriba.

complemento de terminal gedit.gif

Paso 5. Otros geditcomplementos

Como se mencionó en el Paso 4, puede tomar la barra separadora para agrandar la ventana del terminal. Así es como se ve en una imagen normal ((no en un GIF).

Hay otros tres complementos que uso actualmente en la geditventana de codificación:

  • complemento para mostrar un corte de 80 caracteres con diferente color de fondo
  • complemento para mostrar el documento completo en miniatura que puede arrastrar para ir rápidamente a la sección de código
  • Resaltar corchetes coincidentes

línea terminal gedit wrap.png

Para obtener más información, consulte:

Respuesta3

Si te sientes cómodo con vim, puedes ejecutar

:w !bash

(substituya el shell de su elección) y eso ejecutará el script en el búfer actual.

En un entorno gráfico, uso VS Code. Es un IDE liviano que es extensible, tiene soporte GIT incorporado y una terminal integrada.

Respuesta4

En Emacs puedes usar Ctrl-C Ctrl-Xpara eso.

información relacionada