Pregunta:
¿Cómo puedo abrir la ruta al archivo actual en la línea de comando para escribir un nombre de archivo similar? No quiero una abreviatura que sea reemplazada por el nombre del archivo actual, quiero editar el nombre del archivo, completo con su ruta de directorio. Por ejemplo, quiero :edit
un archivo con un nombre similar, o en un directorio similar, p. Ej.
vim src/submodule/frontend/frobnicate2.c
y ahora quiero editar ../trunk/src/submodule/frontend/frobnicate.c
, y solo quiero insertar el ../trunk
y eliminar el 2
, no volver a escribir la ruta completa.
Por supuesto, puedo volver al shell y usar su historial de comandos, o podría copiar y pegar la ruta a través de la GUI, pero estoy buscando una forma más eficiente que no requiera salir de Vim.
Respuesta:
Además de insertar el registro %
como lo ha descubierto usted mismo, también puede usar :edit %<Tab>
.
In Ex commands, at places where a file name can be used, the following
characters have a special meaning. These can also be used in the expression
function `expand()`.
% Is replaced with the current file name. :_% c_%
Entonces puedes, por ejemplo, usar:
:edit %.orig
para editar file.txt.orig
. Para su ejemplo, escribiría :e ../trunk/%
, presione <Tab>
para obtener el nombre del archivo con la ruta relativa y elimine el 2
antes de presionar <Enter>
.
Puede agregar algunos modificadores a la ruta para modificarla; Encontré que :h
es particularmente útil, obtiene el "dirname" (o "head" en Vim-speak ") de la ruta actual:
:edit file/in/a/deeply/nested/subdirectory/here.txt
:edit %:h/in_same_dir_as_above.txt
Incluso puede usar :h
varias veces. Por ejemplo:
:edit %:h:h:h/file.txt
Abrirá el file/in/a/deeply/file.txt
También hay :p
que le da la ruta completa y que podría ser útil en su caso: escriba :e %:p
, presione <Tab>
y edite la ruta como desee. Incluso puede utilizar varios modificadores, por ejemplo :e %:p:h
.
Consulte :help filename-modifiers
de :help filename-modifiers
para obtener la lista completa.
Nota: si <Tab>
, Vim expandirá el %
. Si usa <Cd>
, Vim no expandirá el %
(pero sustituirá el %
mientras completa la ruta).