¿Crear un nuevo archivo en el directorio del archivo abierto en vim?

93

Me encuentro en la posición en la que quiero crear un nuevo archivo en el mismo directorio en el que está el archivo abierto. ¿Cómo creo un nuevo archivo en el directorio del archivo abierto en vim? Además, ¿hay algún lugar donde pueda aprender estas cosas por mi cuenta? Buscar en Google no ayudó.

perro
fuente
¿Estás hablando de vim, el editor de texto en Linux?
ianaz

Respuestas:

173

Desde dentro de Vim, se crean nuevos archivos como se editan los archivos existentes, mediante comandos como :edit filenameo :split filename. Para conservarlos en el disco, debe (opcionalmente escribir el contenido y) conservarlos a través de :write.

Como un símbolo del sistema, Vim tiene una noción de directorio actual (lo :pwdenumera). Todas las rutas de archivo son relativas a él. No necesita duplicar la ruta a su archivo actual, hay algunos atajos agradables para ellos: se %refiere al archivo actual, :hes un modificador para su directorio, menos el nombre del archivo (cp. :help filename-modifiers). Entonces,

:e %:h/filename
:w

creará un nuevo archivo llamado filenameen el mismo directorio que el archivo abierto actualmente y lo escribirá.

Alternativamente, a algunas personas les gusta que Vim cambie siempre al directorio del archivo actual. Esto se puede configurar colocando

:set autochdir

en su ~/.vimrcarchivo (que se lee al iniciar Vim). Entonces, arriba se convierte simplemente

:e filename
:w

Finalmente, Vim tiene un gran archivo incorporado :help. ¡Aprenda a navegar y buscarlo!

Ingo Karkat
fuente
2
autochdires escamoso, desafortunadamente, y descubrí que no podía depender de él. En su lugar, puse un autocmd en mi vimrc:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
dash-tom-bang
1
A Dawg también le gustaría votar su respuesta, pero Dawg no tiene el representante necesario. ¡Gracias por la explicación bien escrita!
Dawg
14

deberías probar con el complemento "nerdtree". En la ventana nerdtree, escribió la tecla m, y se le mostrarán las opciones de operación del archivo

Harris
fuente
11

Si desea crear un nuevo archivo y también mostrarlo en la ventana junto a su archivo actual, puede intentar esto:

:vsp newfile

El vsprepresenta vertical split, y se divide la pantalla en dos, uno muestra su imagen actual, la otra mostrando su nuevo archivo (también funciona con tan sólo sp, que es una división horizontal).

Según el comentario de @ MartinLyne anterior, esto creará el archivo en el directorio del archivo en el que lo abrió vim. Para ajustar esto, puede cambiar el directorio de trabajo actual de la siguiente manera:

:cd %:p:h

Este comando cambia el directorio de trabajo actual al directorio del archivo activo, lo que significa que ejecutar el vspcomando (o cualquiera de los comandos anteriores) creará el archivo en ese directorio.

CoheteBurro
fuente
2

Cuando haya abierto vim en una ubicación inexistente como $ vim /etc/<some_folder/<next_folder>/file.cfg

luego, para crear un nuevo directorio mientras está dentro de vim, simplemente ejecute en modo normal :! mkdir -p /etc/<some_folder/<next_folder>y luego guarde su documento como de costumbre :w :x ZZ(lo que quiera)

Eso es

matson kepson
fuente
1

¡Esto es para Gvim! Ingrese esto para ver el directorio actual.

:cd

luego cámbialo con

:cd desktop/somefolder

luego guarda o crea un nuevo archivo allí

:enew asd.cpp

ahora vuelve a ver el archivo

:cd
El flash
fuente
0

Llego bastante tarde a la fiesta, pero otra opción es abrir NERDtree con :Eo :Explore(o sus alternativas de división :Vexplore/ :Sexplore== :Vex/:Sex ).

En NerdTree puedes crear un nuevo archivo con %y escribir el nombre. Automáticamente abrirá el archivo y lo creará después de que lo :wguarde.

mazunki
fuente