Me estoy esforzando mucho por aprender vim después de usar TextMate durante los últimos años.
Comencé a guardar parte de la navegación en el archivo en la memoria, pero tengo problemas para navegar entre varios archivos.
En mi flujo de trabajo, es bastante común que esté cambiando entre un puñado de archivos con bastante regularidad (suficientes archivos como para que las ventanas de panel dividido se vuelvan demasiado pequeñas).
Actualmente estoy usando NERDTree, pero encuentro que profundizar en directorios es engorroso, así como usar constantemente CTRL+ W h/ CTRL+ W lpara saltar de un lado a otro.
Creo que lo haría mejor con pestañas entre las que puedo alternar fácilmente, pero tal vez necesite usar un flujo de trabajo diferente.
También me gustaría un acceso directo "Ir a archivo ..." como CMD+ Ten TextMate. Lo encontré, fuzzy_file_finder
pero requiere que vim se compile con enlaces Ruby, lo que no es el caso de las instalaciones nativas en las que he trabajado.
Si bien podría reconstruir, la razón principal por la que quiero cambiar a vim es para poder tener un entorno de editor que sé que funcionará fácilmente en cualquier plataforma.
Las opciones que existen son abrumadoras, ¡cualquier idea es muy apreciada!
fuente
Respuestas:
No encuentro que profundizar en subdirectorios a través de simple antiguo
:e
sea tan engorroso dada una configuración decente para completar con pestañas.Busque la
'wildmenu'
opción para que Vim muestre una lista de finalizaciones (nombres de archivo) en la línea de modo sobre la línea de comandos. Puede cambiar la'wildmode'
opción para configurar aún más el tipo de finalización de tabulación que hará Vim.Personalmente utilizo
:set wildmode=full
.Mi flujo de trabajo es así:
:cd
en el directorio de nivel superior de mi proyecto.Para abrir el archivo
foo/bar/baz
:Escenario más simple: tipo
:e f<tab>b<tab>b<tab><enter>
.Si hay más de un archivo a partir de
b
uno de esos directorios es posible que tenga que hacer una<left>
o<right>
u otra<tab>
en el teclado para saltar entre ellos (o escribir unas cuantas más cartas para eliminar la ambigüedad).En el peor de los casos, hay archivos y directorios que comparten un nombre y es necesario profundizar en el directorio. En este caso, complete con la pestaña el nombre del directorio y luego escriba
*<tab>
para profundizar.:e
un nuevo archivo en la misma ventana.:b <tab>
para recorrer los búferes que ya están abiertos en segundo plano. Si escribe:b foo<tab>
, coincidirá solo con los archivos abiertos que coincidanfoo
.También utilizo estas asignaciones para que sea más fácil abrir nuevas ventanas y saltar entre ellas porque es algo que hago con mucha frecuencia.
Me toma unos segundos abrir Vim, configurar algunas ventanas y abrir algunos archivos en ellas. Personalmente, nunca he encontrado que ninguno de los scripts de exploración de archivos de terceros sea muy útil.
fuente
Una forma sencilla de explorar el sistema de archivos es el comando:
No me lo estoy inventando :)
fuente
:Vex
si desea dividir la pantalla verticalmente en lugar de horizontalmente:Vex
más práctico, pero:Sex
me alegra el día.:Se
también funciona (lo mismo para lasVe, Te
variantes). No hay necesidad de hacerlo raro :):Sex
,:Vex
,:Tex
Y:Ex
son todos los comandos útiles para la ex (ploring) los archivos en su sistema si desea utilizar algo diferente de:e
(donde
S/V/T
son las abreviaturas de Split / Vertical / Tab)fuente
Si aún no los ha encontrado, es posible que desee consultar:
También tenga en cuenta que puede reasignar atajos de teclas en su .vimrc para que sean menos engorrosos. Yo uso mucho las ventanas divididas; Descubrí que lo siguiente hace que lidiar con ellos sea mucho más fácil:
fuente
¿Conoce las pestañas de Vim? No estoy seguro si se refería a las pestañas de Vim allí, o si suspiraba por las de TextMate. No está claro qué versión de Vim estás usando, pero ha tenido pestañas desde al menos 7.0 (que parece estar instalado en todos los lugares donde miro últimamente), y son increíbles.
:tabe
abre una nueva (abreviatura de "editar pestaña", por ejemplo,:tabe
para vacía o:tabe path/to/file
para abrir un archivo en una nueva pestaña), puede moverse entre pestañas adyacentes congt
/gT
, y también hay un montón de otros comandos de navegación relacionados con pestañas, como que podría esperar de Vim (:help tabs
)Mi flujo de trabajo para proyectos grandes tiende a involucrar un montón de pestañas, cada una con entre 1 y 3 ventanas dependiendo del tipo de contexto que necesite. Esto funciona incluso mejor si tengo una ventana de terminal de doble ancho, ya que puedo dividir verticalmente
:vs
, por lo que una sola pestaña puede mostrarme fácilmente 4 archivos a la vez con mucho espacio para cada uno.Consejo final: a veces utilizo el comando "cambiar búfer" (
:sb <partial_buf_name>
), que se parece un poco al hallazgo difuso de TM, ya que funciona bastante bien, pero solo para búferes ya abiertos. Sigue siendo ideal para cuando tengo una docena o más de archivos abiertos a la vez. (Nota: necesitaba hacerlo:set switchbuf=usetab
en mi vimrc para que esto funcionara en todas las pestañas, pero una vez configurado, es genial).fuente
vim-titlecase
tornillos con las asignaciones gt / gT, pero hay una solución .Encuentro a LustyExplorer el mejor hasta ahora.
Puede abrir un archivo escribiendo solo una parte de su nombre.
Puede abrir un archivo desde el directorio del archivo actual, o el actual
pwd
, o desde la lista de búfer.Si abre un archivo de la lista de búfer, no tiene que navegar a través del árbol de directorios, aunque desafortunadamente para los otros dos modos, todavía tiene que navegar por el árbol. Lo bueno es que no tienes que empezar desde el primer carácter.
Si usted tiene:
y desea abrir
dir_b/file.html
, generalmente puede encontrarlo escribiendob<Tab>h
fuente
Es sorprendente ver que el
:find
comando no se ha mencionado en ninguna de las respuestas. Normalmente trabajo con proyectos de rieles en los que necesito profundizar en la jerarquía de directorios. Entonces, para un archivoapplication.css
, ubicado enapp/assets/stylesheets/
todo lo que tengo que escribir es:find applica
y luego presionar tab para autocompletar e ingresar para abrir.fuente
Consulte el complemento ctrlp como alternativa al complemento Command-T . Es mejor que esto porque es un script de Vim 'nativo' y no necesita que Vim se compile con ruby (u otro soporte) mientras se ejecuta muy rápido y discreto.
fuente
Si el archivo que desea ya está cargado en un búfer (lo cual es probable si está pasando entre un puñado de archivos con regularidad), puede cambiar rápidamente al búfer con el
:b[uffer]
comando.:b
puede tomar un número de búfer como parámetro o (más útil) una cadena que coincida con parte de la ruta / nombre de archivo. Si hay varias coincidencias, puede usar la pestaña para recorrerlas.Si desea dividir la ventana y abrir el búfer en la nueva ventana, utilice
:sb name
Si desea abrir el búfer en una nueva pestaña, utilice
:tab b name
También puede utilizar el
:ls
comando para ver una lista de búferes cargados actualmente.fuente
Utilizo esta función para buscar archivos en subdirectorios, aunque no la escribí. Es de la wiki de vim :
Una cosa que me gusta es que tiene soporte para comodines (*). También se comporta bien para múltiples partidos.
fuente
Además de las
wildmenu
respuestas, uso el complemento BufExplorer y las siguientes asignaciones para saltar rápidamente los búferes:O simplemente puede reemplazar el explorador de búfer con el
:ls
comando, que básicamente muestra lo mismo.El último mapea el
Alt-=
para mostrar el explorador de búfer.No uso mucho Windows, ya que generalmente solo tengo una o dos ventanas.
También modifiqué el
statusline
para incluir el número de búfer%2n
, de modo que siempre sepa qué búfer se está editando. Ver:h statusline
fuente
¿Conoces la aplicación MacVim? Es VIM pulido para OS X, y una de sus características es el soporte para pestañas (CMD + T para abrir una nueva pestaña), tiene cajón, etc ... (lea esto: http://zerokspot.com/weblog/2008 / 08/03 / macvim-como-reemplazo-de-textmate / )
¡Intentalo!
Saludos Michal
fuente
NerdTree es mejor para la navegación de archivos en vim.
El siguiente enlace es una buena introducción a nerdtree.
http://www.catonmat.net/blog/vim-plugins-nerdtree-vim/
fuente
Aquí hay algo bastante trivial que guardo en mi
.vimrc
. Cargará un archivo desde cualquier subdirectorio.Entonces solo puedo decir:
: Er Main.java
y buscará subdirectorios, lo encontrará
Main.java
y lo cargará. No se comporta bien para varios archivos con el mismo nombre, pero es rápido y sencillo.La otra herramienta que utilizo es VTreeExplorer , que proporciona una ventana de archivos / directorios basada en árboles, y no requiere ninguna opción de compilación especial de VIM (es decir, es un complemento de vainilla).
fuente
models.py
,views.py
, etc.Mi flujo de trabajo para buscar archivos es el wildmenu, autocwd y
:e
.Partes relevantes en el
.vimrc
:Y cómo usarlo:
Eso da todos los archivos en el directorio actual que comienzan con myf. Tú también puedes
<Tab>
través de ellos. Use regresar para abrir :)^D
siempre te dará todos los partidos. Debido a que autocmd siempre va a la carpeta del archivo actual, es fácil trabajar con él. Si estás dentrofoo/bar.py
y quieres irfoo/baz.py
, solo hazlo:e baz.py
y estás ahí. Eso también funciona con búferes (:b foo^D
enumera todos los búferes que comienzan con foo)fuente