Pregunta

Haciendo uso de la función remoto en vim, es posible la reutilización de una instancia de vim para cargar varios archivos según sea necesario.

Será agradable tener esa instalación desde dentro de la misma terminal de instancia.

Yo soy más interesados en tener una ficha basada en la interfaz, la cual en vim 7+ El escenario debe ser

  1. Abra el terminal
  2. vim file1.cpp
  3. Editar - Guardar: Ctrl+Z para llegar a símbolo del sistema
  4. abrir otro archivo
    • vim file2.cpp
  5. Ahora tenemos file1.cpp y file2.cpp se abre en el mismo editor

Es eso posible?!

¿Fue útil?

Solución

Tengo un par de sugerencias para ti, aunque tampoco es exactamente de lo que estás hablando. El primero es NERD Tree , que le ofrece un agradable árbol basado explorador de archivos para abrir otros archivos. Muy útil. También configuré una tecla de acceso rápido (ctrl+o) para abrir NERD Tree para mi. Mantengo un alias de cualquier proyecto en el que esté en ~/curr/trunk, así que esto siempre funciona para mí:

map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>

La otra cosa que sugeriría es eliminar ctrl + z. Es algo torpe, y todos los que conozco que usan ese método tienden a perderse y terminan con 3 o 4 vim ejecutándose en segundo plano. Echa un vistazo a cómo abrir un caparazón por ti mismo. Utilizo un mapa para; s para ejecutar un script de shell:

map ;s :!~/.vim/shell.sh<CR>

Que se ejecuta:

#!/bin/sh
/usr/local/bin/bash -l;

También tengo un poco de magia en mi .profile por hacer obvio que estoy en VIM:

if [ "$VIMRUNTIME" != "" ] ; then
    export PS1="\u@\h \W \t$ vim> "
fi

< / 2 centavos >

Otros consejos

No estoy seguro de si esto se puede hacer exactamente de la manera que está especificando, pero algo muy similar probablemente se puede hacer usando un servidor vim que se ejecuta en su máquina local.

Busque en :help remote.txt en Vim.

Si su versión de vim se compiló con +clientserver puede usar vim para crear un servidor vim y luego ejecutar comandos en él, p. abriendo otro archivo.
El conmutador --servername puede crear un nuevo servidor y el conmutador --remote puede enviarle comandos o archivos adicionales.

por ejemplo

vim --servername test file1.txt
vim --servername test --remote file2.txt

He echado un vistazo, y el vim que estoy usando como estándar en xubuntu en una de mis computadoras no lo tiene, pero hay algunas instrucciones aquí que puede ayudar si el suyo lo tiene compilado. Si no es así, instalar gvim y symlinking es aparentemente una opción (ya que gvim lo tiene incluido por defecto), o compilar los binarios desde la fuente.

Editar:
He jugado más con gvim y no parece posible hacerlo dentro del terminal. Control-Z suspende el trabajo a nivel de proceso. Pensé que podría funcionar con la pantalla, pero parece que no hay comunicación a menos que gvim se haya lanzado en una ventana gráfica,

Esto es fácil de hacer si usted compilado con VIM +clientserver, como Andy sugirió en una respuesta anterior.

Hice lo siguiente:

Empecé de VIM como un servidor:

vim --servername abc

Me suspendieron con CTRL+Z y lo hizo:

vim --servername abc --remote ~/.cshrc
fg 

Ahora VIM había ~/.cshrc abrir.

Luego hice:

vim --servername abc --remote ~/.aliases
fg 

Ahora VIM había un búfer con ~/.cshrc y otro con ~/.aliases.

Luego hice:

vim --servername abc --remote-tab ~/foo_bar
fg 

Y ahora me VIM había una ficha con los dos anteriores buffers abiertos y otra pestaña con ~/foo_bar abrir.

En la convocatoria de casos de VIM se estaba ejecutando en el terminal, no como una interfaz gráfica de usuario.

Puede dividir la pantalla actual y abrir dos (o más) archivos de la siguiente manera:

Para una división horizontal, haga:

:sp 'filename'

y para una división vertical, haga:

:vsp 'filename'

Para tabular entre los dos, presione Ctrl + W, luego use una tecla de flecha para navegar al archivo que desee editar.

Además, si solo desea cambiar archivos (y solo tener uno abierto), puede hacer esto:

:e 'filename'

G'day,

O si desea tener varios archivos pero usa toda la ventana vim para un archivo a la vez, puede ingresar

:e 'filename'

para abrir el nuevo archivo. Puedes hacer esto varias veces. Para ver lo que tiene abierto actualmente, ingrese

:ls

Para rebotar entre los archivos que tiene abiertos, puede usar cntl- ^ (shift-cnt-6) y eso alternará entre los archivos principal y secundario (se muestra con un% y # en la lista de archivos)

O puedes ingresar

:n b

donde n es el número al comienzo del archivo que desea en la lista que se muestra en el comando 'ls'.

HTH

aplausos,

Puede configurar la función hidden en vim, para permitirle tener múltiples archivos abiertos:

:set hidden

Luego puede abrir tantos archivos como desee, sin molestarse en guardarlos cada vez que desee cambiar un " buffer " ;:

:e 'filename'

Tiene varios comandos para navegar por los buffers:

:bnext
:bprev
:buffers

Por supuesto, como lo menciona samoz, puede dividir su pantalla para ver múltiples buffers en la misma ventana.

Sugeriría leer this para una buena introducción sobre vim, it te ahorrará mucho tiempo.

¡Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top