¿La opción de 'ruta' predeterminada de Vim es redundante?


10

Del documento de ayuda de Vim (ver:) :help 'path':

Cadena 'path' (predeterminada en Unix: " .,/usr/include,,")

-Para buscar en relación con el directorio del archivo actual, use:

:set path=.

-Para buscar en el directorio actual, use una cadena vacía entre dos comas:

:set path=,,

Parece eso .y ,,no tiene diferencia en la opción 'ruta'. Ambos significan el directorio actual.

No puedo entender por qué necesitamos poner ambos .y ,,la opción de ruta. ¿Cuál es la diferencia entre :set path=.y :set path=,,?

Respuestas:


14

"Directorio actual" y "directorio del archivo actual" son dos cosas diferentes.

El "directorio actual" es por defecto el directorio en el que inició Vim. Le preguntas a Vim con qué está :pwdy lo cambias con :cdo :lcdconfigurando la autochdiropción. Si nunca lo cambia, permanecerá igual hasta que cierre la sesión actual.

El "directorio del archivo actual" es exactamente lo que dice ser. Si el archivo actual está en el "directorio actual", ambos tienen el mismo valor. Si el archivo actual está en otro directorio, tienen valores diferentes.

Para pathque sea útil, es necesario abordar esos dos escenarios con .y ,,.

Ejemplo:

$ cd /foo/bar/baz
$ vim filename
:pwd                   -->  /foo/bar/baz
:echo expand("%:p:h")  -->  /foo/bar/baz
:e ../file
:pwd                   -->  /foo/bar/baz
:echo expand("%:p:h")  -->  /foo/bar

7

El directorio del archivo actual y el directorio actual son dos cosas completamente diferentes (que, en ocasiones, pueden tener el mismo valor).

Considerar:

cd /tmp; vim /etc/bash.bashrc

A menos que tenga autochdir(o algo similar) configurado, el directorio actual es /tmp, pero el directorio del archivo actual es /etc.

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.