¿Cómo configurar el directorio de trabajo / actual en Vim?


109

Entonces, cuando quiero crear un nuevo archivo usando el comando: e, no quiero especificar la ruta completa, solo el nuevo nombre de archivo. Se puede hacer?

Respuestas:


144

Como ya se sugirió, puede usar autochdir, que cambiará al directorio del archivo que abrió, la otra opción es

:cd mydirectory

que cambiará el directorio. Esta puede ser una ruta absoluta o relativa, por lo que :cd ..subirá un nivel. O puede usar :cd %:hque también cambiará al directorio en el que se encuentra el archivo actual, pero sin configurar autochdir.

:cd

cambiará el directorio a su directorio de inicio (o en Windows, imprimirá el directorio actual).

:cd -

cambiará el directorio al directorio anterior que visitó.


13
si está utilizando varias ventanas, incluso puede usar: lcd para cambiar el directorio solo para la ventana actual.
Inútil

1
@Useless: interesante ... no creo que quiera eso nunca, pero supongo que es cuestión de gustos. Gracias por la info.
falstro

3
Estoy tratando de averiguar qué significa%: h, ¿alguna ayuda?
Michael

10
@Michael se %traduce al nombre del archivo actual, incluida la ruta, :agrega el modificador, hes head, es decir, la ruta hasta el último separador de ruta, es decir, excluye el nombre del archivo en sí.
falstro

@falstro, ¿sabe cómo: el comando cd se puede aplicar a todas las ventanas dentro de las mismas instancias en ejecución de vim? Ej: cuando se usa split: sp
mgouin

15

Además, si está navegando por el sistema de archivos con el explorador de archivos netrw, puede configurar el directorio actual presionando la tecla c.


también se usa set autochdirpara hacer que 'c' keysurta efecto en shell, de modo que pueda usar !command args bajo dir cambiado.
Pimgeek

9

Intente agregar set autochdira su .vimrc. Si desea cambiarlo solo por esta vez, use :cd(o :cd!para forzarlo).


1
la ayuda dice que esto rompe algunos complementos (no sé cuáles), así que tomé la precaución de agregar mapeo en mi .vimrc: cnoremap cd. lcd %:p:hy en su nnoremap ,cd :cd %:p:h<CR>:pwd<CR>lugar
ErichBSchulz

también se usa 'c' keyen el explorador de archivos netrw para acompañar esto.
pimgeek

3

No sé qué le pasa a vim. Quiero el directorio donde inicio vim como el actual.

Seguí el consejo sobre autochd anterior y lo configuré en noautcd en mi .vimrc.

Todavía no lo he hecho, pero estoy a punto de iniciar vim así a partir de ahora:

vim —cmd 'cd `pwd`'

¡Eso hará que se quede en el directorio actual!


2

Con netrw:además de presionar la ctecla para establecer el directorio actual, también se puede poner:

let g:netrw_keepdir= 0

en tu .vimrc; esto significa que netrwmantendrá el directorio de navegación igual que el directorio actual.


Esto parece tener un comportamiento equivalente a: lcd para cada cambio de carpeta netrw. ¿Tiene una idea de cómo esta configuración podría ser el equivalente a: cd en su lugar (cambiar dir para todas las ventanas)? ¡Gracias!
mgouin

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.