tutorial salir pegar guardar español editar deshacer copiar buscar vim keyboard-shortcuts

salir - Acceso directo para abrir el archivo en Vim



vim linux (18)

Quiero abrir un archivo en Vim como en Eclipse usando Ctrl + Shift + R , o mediante la opción Ctrl + N de autocompletar. Invoque un atajo de teclado, escriba el nombre / patrón de archivo y elija entre todos los nombres de archivos coincidentes.

Sé que abrirlo normalmente como:

:tabe <filepath> :new <filepath> :edit <filepath>

El problema aquí es que tengo que especificar la ruta completa del archivo en estos casos.


Con ctags exuberantes, puede crear archivos de etiquetas con información de archivos:

ctags --extra=+f -R *

Luego, abra el archivo de VIM con

:tag filename

También puede usar <tab> para autocompletar el nombre del archivo.


Conozco tres complementos que permiten abrir archivos, admitir el autocompletado y no requieren ingresar el nombre completo de la ruta del archivo (s) para abrir (siempre que los archivos estén bajo uno de los directorios de la opción &path vim )

Últimamente, he visto otro complemento con una función similar, pero no recuerdo el nombre.

Pronto,: es probable que la autocompleción de la compatibilidad sea compatible: actualmente, en la lista de distribución de vim_dev, están circulando parches sobre este tema.


Considere usar el plugin CtrlP .

Está incluido en Janus Distributive .

Le permite buscar archivos en el directorio actual, abrir búferes o los archivos usados ​​más recientemente usando "concordancia difusa" o expresión regular.


Esto no es exactamente lo que está buscando, pero es bueno en muchos casos (aunque no en todos).

Si abre VIM y hay un nombre de archivo en el búfer, puede colocar el cursor sobre ese nombre de archivo y escribir g f . Esto abre el archivo cuyo nombre está debajo del cursor en el mismo buffer. Es lo mismo que

:e CTRL + r CTRL + w


FuzzyFinder ha sido mencionado, sin embargo, me encanta el comportamiento tipo FuzzyFinderTextmate plugin FuzzyFinderTextmate que amplía el comportamiento para incluir todos los subdires.

Asegúrese de estar utilizando la versión 2.16 de fuzzyfinder.vim: las versiones más avanzadas rompen el complemento.


Instalé FuzzyFinder. Sin embargo, la limitación es que solo encuentra archivos en el directorio actual. Una solución para eso es agregar FuzzyFinderTextmate. Sin embargo, según los documentos y comentarios, eso no funciona de manera confiable. Necesita la versión correcta de FuzzyFinder y necesita que su copia de Vim se compile con el soporte de Ruby.

Una solución alternativa que estoy probando ahora es abrir todos los archivos que probablemente necesite al comienzo de la sesión de edición. Por ejemplo, abra todos los archivos en los directorios clave ...

:args app/** :args config/** :args test/** etc...

(Esto significa que posiblemente tendría decenas de archivos abiertos, sin embargo hasta ahora parece que todavía funciona bien).

Después de eso, puedo usar FuzzyFinder en modo buffer y actuará de alguna manera como el atajo de command-o TextMate ...

:FuzzyFinderBuffer


Lo que normalmente hago es e . (e-space-dot) que me da un directorio actual navegable - entonces puedo / - buscar fragmentos de nombre, al igual que encontrar una palabra en un archivo de texto. En general, creo que es lo suficientemente bueno, simple y rápido.



Puede buscar un archivo en la ruta actual usando ** :

:tabe **/header.h

Pulse la pestaña para ver varias terminaciones si hay más de una coincidencia.


Recientemente me enamoré de fuzzyfinder.vim ... :-)

: FuzzyFinderFile le permitirá abrir archivos al escribir nombres o patrones parciales.


Si está editando archivos en un directorio común, puede :cd a ese directorio, luego use :e en solo el nombre del archivo.

Por ejemplo, en lugar de:

:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb :sp /big/long/path/that/takes/a/while/to/type/or/tab/complete/other_thingy.c :vs /big/long/path/that/takes/a/while/to/type/or/tab/complete/one_more_thingy.java

Tu puedes hacer:

:cd /big/long/path/that/takes/a/while/to/type/or/tab/complete/ :e thingy.rb :sp other_thingy.c :vs one_more_thingy.java

O bien, si ya tiene abierto un archivo en el directorio deseado, puede usar la abreviatura % para el nombre de archivo actual y recortarlo en el directorio actual con el modificador :h ( :help :_%: :

:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb :cd %:h :sp other_thingy.c :vs one_more_thingy.java

Y, como han dicho otros, puede completar con pestañas los nombres de los archivos en la línea ex (consulte :help cmdline-completion para obtener más información).


Si tiene etiquetas (y debería), puede abrir un archivo desde la línea de comando con el nombre de la clase o método o función c, con "vim -t DBPlaylist", y dentro de vim con ": tag ShowList ".


También hay un comando-t que considero que es el mejor del grupo (y los he probado todos). Es una molestia menor instalarlo pero, una vez que está instalado, es un sueño de usar.

https://wincent.com/products/command-t/


Use pestañas, ¡funcionan al ingresar rutas de archivos en el modo de escape vim!


Utilizo un par de accesos directos en mi archivo .vimrc (sintaxis exacta a continuación).

Se basan en el hecho de que en el 90% de los casos, deseo abrir otro archivo en el mismo directorio que el que estoy editando actualmente, o en un directorio que esté muy cerca de la jerarquía de ese archivo editado.

Esto es lo que hacen los comandos:

,cd : cambia el directorio de trabajo actual al directorio donde está el archivo actual en el que estás editando.

,e : abre un archivo con el directorio de trabajo actual ya rellenado, por lo que debe especificar solo el nombre del archivo.

Pon esto en tu .vimrc:

map ,e :e <C-R>=expand("%:p:h") . "/" <CR> map ,cd :cd %:p:h <CR>

Aquí hay una secuencia de eventos:

  1. Está editando un archivo llamado test.java en "/ home / prog"
  2. ,cd -> El directorio de trabajo actual ahora se convierte en "/ home / prog"
  3. ,e -> Se expande a ": e / home / prog" para que pueda completar el nombre del archivo, digamos test.h.
  1. ,e -> Se expande a ": e / home"
  2. tab -> Ciclo a través de subdirectorios de / home
  3. enter -> cd en el directorio que desee decir / home / prog
  4. ,e -> Se expande a ": e / home / prog"

a menos que me falta algo, el nombre de archivo es la forma más rápida que he encontrado.

También puede usar la pestaña para autocompletar el nombre del archivo.


:find es otra opción.

Abrí vim desde la raíz de mi proyecto y tengo la path establecida allí.

Luego, puedo abrir archivos ubicados en cualquier parte del árbol usando:

:find **/filena< tab >

La pestaña se autocompletará a través de varias coincidencias. ( ** le dice que busque recursivamente a través de la ruta).


  • puedes usar (configurar wildmenu)
  • puedes usar tab para autocompletar nombres de archivo
  • también puede usar la coincidencia, por ejemplo: e p*.dat o algo así (como en los viejos ''dos)
  • también podría: navegar confirmar e (para una ventana gráfica)

  • pero probablemente también deberías especificar qué versión de vim estás usando y cómo funciona esa cosa en emacs. Tal vez podríamos encontrar una alternativa vim exacta.