¿Cómo creo un archivo con el nombre file2.ext si mi cursor está dentro de file2.ext? Algo así como gfsolo para crear nuevos archivos (esta es una situación hipotética, solo que podría ser útil algún día).
Pero hay una solución Vim pura portátil en todas las plataformas. La función incorporada writefileescribe una lista en un archivo, línea por línea. Naturalmente, cuando la lista de entrada está vacía, crea un archivo vacío. (Consulte :help writefilepara más detalles.) Podemos aprovechar este efecto secundario:
Tomé la excelente respuesta de ib arriba y la expandí de la siguiente manera. Mi objetivo era usar vim para crear nuevos archivos de rebajas según sea necesario para una wiki (en este caso, una wiki de Gollum)
lo anterior funciona como se indica en la respuesta. Sin embargo, al principio pensé que no estaba funcionando porque en realidad no vi el archivo abrirse en vim. El uso del segundo bit de código a continuación abrirá un nuevo archivo; esto es más de lo que estaba buscando. Entonces los combiné e intenté:
map <leader>cf :e <cfile><cr>
pero eso no funciona para una wiki porque cuando intentas crear un nuevo archivo en la wiki usando una sintaxis como [[the-new-file]]la sintaxis wiki no permite la extensión del archivo entre paréntesis. Sin embargo, Vim necesita conocer la extensión al crear un nuevo archivo para que esto funcione. En este caso usé:
map <leader>cf :e <cfile>.md<cr>
para poder crear nuevos archivos de rebajas. Hay formas de personalizar aún más esto (por ejemplo, sin codificar la extensión), pero lo anterior funciona bien para mis necesidades. Si alguna vez necesito otra extensión (por ejemplo, para guardar un archivo .wiki), probablemente solo tome la ruta simple y haga otro mapa como:
map <leader>cwf :e <cfile>.wiki<cr>
Como beneficio adicional, puede usar el mismo comando para abrir el archivo Markdown ya existente (el gfcomando estándar no funcionará aquí porque falta la extensión del archivo).
gffunciona si set suffixesadd=.wiki. Una versión mejorada de su cfsería una que respeta suffixesadd, al menos en el caso de que solo contenga un elemento.
<cfile>
lugar de<C-r><C-f>
Tomé la excelente respuesta de ib arriba y la expandí de la siguiente manera. Mi objetivo era usar vim para crear nuevos archivos de rebajas según sea necesario para una wiki (en este caso, una wiki de Gollum)
Primero probé:
lo anterior funciona como se indica en la respuesta. Sin embargo, al principio pensé que no estaba funcionando porque en realidad no vi el archivo abrirse en vim. El uso del segundo bit de código a continuación abrirá un nuevo archivo; esto es más de lo que estaba buscando. Entonces los combiné e intenté:
pero eso no funciona para una wiki porque cuando intentas crear un nuevo archivo en la wiki usando una sintaxis como
[[the-new-file]]
la sintaxis wiki no permite la extensión del archivo entre paréntesis. Sin embargo, Vim necesita conocer la extensión al crear un nuevo archivo para que esto funcione. En este caso usé:para poder crear nuevos archivos de rebajas. Hay formas de personalizar aún más esto (por ejemplo, sin codificar la extensión), pero lo anterior funciona bien para mis necesidades. Si alguna vez necesito otra extensión (por ejemplo, para guardar un archivo .wiki), probablemente solo tome la ruta simple y haga otro mapa como:
Como beneficio adicional, puede usar el mismo comando para abrir el archivo Markdown ya existente (el
gf
comando estándar no funcionará aquí porque falta la extensión del archivo).fuente
gf
funciona siset suffixesadd=.wiki
. Una versión mejorada de sucf
sería una que respetasuffixesadd
, al menos en el caso de que solo contenga un elemento.