Quiero abrir un archivo en Vim como en Eclipse usando Ctrl+ Shift+ R, o mediante la opción Ctrl+ Nde autocompletar. Invoque un atajo de teclado, escriba el nombre / patrón del archivo y elija entre todos los nombres de archivos coincidentes.
Sé 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.
vim
keyboard-shortcuts
Techmaddy
fuente
fuente
:tabe
que abrirá el archivo en una nueva pestaña,:new
dividirá horizontalmente la ventana y:edit
cerrará el archivo actual antes de abrir el nuevo.Respuestas:
Recientemente me enamoré de fuzzyfinder.vim ... :-)
: FuzzyFinderFile le permitirá abrir archivos escribiendo nombres o patrones parciales.
fuente
Lo que normalmente hago es
e .
(e-space-dot) que me da un directorio actual navegable, luego puedo/
, buscar fragmentos de nombre, al igual que encontrar una palabra en un archivo de texto. Creo que, en general, es lo suficientemente bueno, simple y rápido.fuente
:e.
):e.
y:E
: si el archivo actual se ha editado y aún no se ha guardado, el primero se quejará (como:edit
) debido a "no escribir desde el último cambio", mientras que el segundo dividirá horizontalmente la ventana (como:new
) para permitir la apertura de un nuevo archivo (mientras que ambos reemplazarán el archivo actual con el nuevo archivo si no se ha modificado (como:edit
)).:find
Es otra opción.Abro vim desde la raíz de mi proyecto y tengo el
path
conjunto allí.Entonces, puedo abrir archivos ubicados en cualquier parte del árbol usando:
La pestaña se completará automáticamente a través de varias coincidencias. (
**
le dice que busque recursivamente a través del camino).fuente
:find
ya que para obtener la ruta relativa al directorio de trabajo. Vea la pregunta y @romainl respuesta aquí: stackoverflow.com/questions/28224168/… . Encuentro más interesante la respuesta @strager para que la ruta relativa al directorio de trabajo sea más fácil.Puede buscar un archivo en la ruta actual utilizando
**
:Presione la pestaña para ver varias finalizaciones si hay más de una coincidencia.
fuente
:tabe **/*der.h
si no recuerda el nombre completo del archivo.Considere usar el complemento CtrlP .
Está incluido en Janus Distributive .
Le permite encontrar archivos en el directorio actual, abrir búferes o archivos usados más recientemente utilizando "coincidencia difusa" o expresión regular.
fuente
a menos que me falte algo: el nombre de archivo es la forma más rápida que he encontrado.
También puede usar la pestaña para completar automáticamente el nombre del archivo.
fuente
Me gusta: FuzzyFinderTextMate (o Ctrl+ F) en mi configuración. Ver http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim
fuente
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, quiero abrir otro archivo en el mismo directorio que el archivo que estoy editando actualmente, o en un directorio que está muy cerca en la jerarquía de ese archivo editado.
Esto es lo que hacen los comandos:
,cd
: Cambie el directorio de trabajo actual al directorio en el que se encuentra el archivo actual que está editando.,e
: Abre un archivo con el directorio de trabajo actual ya completado, por lo que debe especificar solo el nombre de archivo.Pon estos en tu .vimrc:
Aquí hay una secuencia de eventos:
,cd
-> El directorio de trabajo actual ahora se convierte en "/ home / prog",e
-> Se expande a ": e / home / prog" para que pueda completar el nombre del archivo, por ejemplo, test.h.,e
-> Se expande a ": e / home"tab
-> Recorrer los subdirectorios de / homeenter
->cd
al directorio que quieras decir / home / prog,e
-> Se expande a ": e / home / prog"fuente
También hay command-t que considero el mejor del grupo (y los he probado todos). Instalarlo es una molestia menor, pero una vez que está instalado, es un sueño usarlo.
https://wincent.com/products/command-t/
fuente
¡Use pestañas, funcionan al ingresar rutas de archivos en modo de escape vim!
fuente
Si tiene etiquetas (y debería hacerlo), puede abrir un archivo desde la línea de comandos simplemente por el nombre de la clase o método o función c, con "vim -t DBPlaylist", y dentro de vim con ": etiqueta ShowList ".
fuente
Si está editando archivos en un directorio común, puede
:cd
hacerlo en ese directorio y luego usar:e
solo el nombre del archivo.Por ejemplo, en lugar de:
Tu puedes hacer:
O, 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:h
modificador (:help :_%:
):Y, como han dicho otros, puede completar con tabulación los nombres de archivo en la línea externa (consulte
:help cmdline-completion
para más información).fuente
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 un archivo en el búfer, puede colocar el cursor en ese nombre de archivo y escribir gf. Esto abre el archivo cuyo nombre está debajo del cursor en el mismo búfer. Es lo mismo que
:e CTRL+r CTRL+w
fuente
:b oldname
Conozco tres complementos que permiten abrir archivos, admiten la finalización automática y no requieren ingresar el nombre de ruta completo de los archivos para abrir (siempre que los archivos estén en uno de los directorios de la
&path
opción vim) ::e
/:find
, sino en acciones divididas)Últimamente, he visto otro complemento con una función similar, pero no recuerdo el nombre.
Pronto: es probable que find encuentre compatibilidad con la finalización automática: los parches sobre este tema circulan en la lista de correo vim_dev en estos días.
fuente
p*.dat
o algo así (como en los viejos 'dos)También podría: examinar confirmar e (para una ventana gráfica)
pero también deberías especificar qué versión de vim estás usando y cómo funciona eso en emacs. Quizás podamos encontrarle una alternativa vim exacta.
fuente
Se ha mencionado FuzzyFinder, sin embargo, me encanta el comportamiento similar al textmate del complemento FuzzyFinderTextmate que extiende el comportamiento para incluir todos los subdirectorios.
Asegúrese de estar utilizando la versión 2.16 de fuzzyfinder.vim: las versiones superiores rompen el complemento.
fuente
Con las etiquetas exuberantes, puede crear archivos de etiquetas con información de archivo:
Luego, abra el archivo de VIM con
También puede usar
<tab>
para autocompletar el nombre del archivo.fuente
En GVIM, el archivo se puede examinar utilizando el diálogo abrir / leer / escribir;
{comando} - abrir / leer / escribir
abrir - Abre el archivo de lectura - Añade el archivo de escritura - Guardar como diálogo
fuente
Instalé FuzzyFinder. Sin embargo, la limitación es que solo encuentra archivos en el directorio actual. Una solución alternativa 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 diferente 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 directorios clave ...
(Esto significa que posiblemente tendría decenas de archivos abiertos, sin embargo, hasta ahora parece funcionar bien).
Después de eso, puedo usar FuzzyFinder en modo búfer y actuará de manera similar al
command-o
acceso directo de TextMate ...fuente