De ninguna manera soy un usuario avanzado de vim, apenas estoy comenzando a comprender los movimientos y comandos avanzados con vim. Pero hay un inconveniente que parece que no puedo evitar.
Crecí con programas gráficos para escribir código, pero recientemente comencé a usar vim sobre ssh y screen para trabajar en proyectos bastante grandes con muchas carpetas.
Tengo curiosidad por saber qué hacen los maestros de vim para trabajar con múltiples archivos de forma rápida y sencilla. Considere una aplicación de rieles como ejemplo. Digamos que quieres editar un controlador para que corras.
vim app/controllers/controller.rb
Pero luego desea cambiar rápidamente a editar una vista o una migración de db, mi primer instinto es :wq
volver a bash para navegar a ese directorio e iniciar vim nuevamente en un nuevo búfer.
Esto obviamente es completamente incorrecto.
He aprendido sobre varias cosas como:
- El servidor de clientes (pero no quiero usar X sobre ssh y esta parece ser la única forma)
:e
abrir otro archivo navegando, pero parece que no puedo hacerlo muy rápido. La pestaña completa realmente me hace tropezar.- Abrir un directorio completo y buscar a través de los buffers.
- NERDTree es prometedor, pero realmente quiero alejarme de cualquier representación gráfica para seguir obligándome a dominar la navegación de línea de comando
Pido disculpas por ser ingenuo, pero realmente quiero aprender la forma correcta de hacerlo, incluso si es muy subjetivo.
¿Cuáles son sus métodos y qué recomendaría?
rails-type-navigation
en la documentación , o:help rails-type-navigation
cuando tenerlo instalado).Respuestas:
Es posible configurar vim para editar múltiples archivos sin tener que salir. Utiliza múltiples buffers y cambia entre ellos. Como está usando vim dentro de la pantalla, puede poner lo siguiente en su ~ / .vimrc para habilitarlo.
Esas asignaciones de teclas se asignan a las teclas de flecha Ctrl-Izquierda y Derecha para cambiar entre buffers. La tecla F4 invoca el mismo menú que mostraría la GUI. Al presionar la pestaña ahora también se muestra un pequeño menú para seleccionar la finalización cuando se presiona la pestaña.
fuente
Ja! Solía ser exactamente como tú, así que sé exactamente de dónde vienes. Incluso ahora que sé lo que estoy haciendo hasta cierto punto (no soy un dios vim, pero espero llegar allí), ocasionalmente haré un: wq y volveré a mi caparazón.
Mira esto , esto podría ayudarte. (También me ayudará, ya que nunca supe sobre esto. Eso es lo asombroso de los sitios de stackexchange: ¡aprendes ayudando a otros a aprender!)
Aquí hay algunas cosas que hago.
El
:e
comando Desde el interior de vim, al editar un archivo, puede hacer algo como:e dir/subdir/otherfile
y lo abrirá en un nuevo búfer, lo que significa que tendrá dos archivos abiertos a la vez.Ctrl-Shift-6
(No sé los valores ascii reales). Si tiene dos buffers abiertos, puede alternar entre ellos en un instante con este conmutador.bd
- Eliminar búfer. Le permite borrar un búfer.Esta es realmente muy útil
:sh
. Si tiene que volver a un shell por algún motivo (por ejemplo, para mirar un directorio y cambiar un archivo), puede invocar el comando de shell de vim, haga exactamente eso. Salir del shell te lleva de vuelta a donde estabas en vim.En la misma categoría que la anterior, escribir
:!
y un comando de Unix luego ejecutarán ese comando. Intenta esto conls
. (Creo que también funciona con conchas incorporadas, pero no estoy seguro).Esos son los que uso todo el tiempo. También hay
:n
para el siguiente y:p
para el archivo anterior, ya que puede tener más de dos búferes abiertos en vim a la vez (aunque generalmente no hago esto).fuente
:sh
,:e
y la gestión de memoria intermedia adecuada, y las cosas se ponen atractivaCtrl+Z
debe suspender el proceso (fg
desde el shell para mostrarlo nuevamente), lo cual es una alternativa a:sh
.Ahí es donde comienzas a usar complementos . Para la administración de archivos (o búfer), el árbol NERD y MiniBufExplorer son opciones comunes. En su caso, buscaría en Google " vim ruby ide " y seguiría uno de los muchos tutoriales que encuentro. Uso Python y los 3 comandos de este tutorial configuran todo lo que necesito de Vim.
fuente
También recomendaría usar ventanas divididas para ver varios archivos a la vez. Agregue algunas habilidades con el manejo de Buffer y Window dentro de VIM, y será un ninja VIM en poco tiempo.
Para la documentación real, lo referiré a la Documentación de Windows de VIM , pero intentaré darle una ventaja aquí.
Inicie VIM con 2 (o más) ventanas divididas horizontalmente, la ventana superior tiene archivo1, la siguiente ventana abajo tiene archivo2, etc.
Inicie VIM con 2 (o más) ventanas divididas verticalmente, la ventana más a la izquierda tiene archivo1, la siguiente ventana tiene archivo2, etc.
Mueva el cursor a una ventana diferente:
Ya estoy editando un archivo, pero también quiero dividir la ventana y editar un archivo diferente:
Para división horizontal y vertical, respectivamente.
También hay comandos para mover ventanas, cambiar su tamaño, etc.
fuente
Use el comando vi: split para abrir una segunda ventana de edición. split puede hacer divisiones horizontales y verticales y más de dos a la vez. He tenido hasta 10 archivos abiertos en la misma sesión vi.
fuente