path – ¿Es redundante la opción 'ruta' predeterminada de Vim?

Pregunta:

Desde el documento de ayuda de Vim (ver :help 'path' ):

Cadena 'ruta' (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 que . y ,, no tienen diferencia en la opción 'ruta'. Ambos se refieren al directorio actual.

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

Respuesta:

"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 qué es con :pwd y lo cambias con :cd o :lcd o configurando la opción autochdir . 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 que la path 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

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım