mac - vim pdf
Cerrar el archivo sin salir de la aplicaciĆ³n VIM? (11)
: bd se puede mapear. Lo mapeo a F4, shift-F4 si necesito un cierre forzado debido a algún cambio que ya no quiero.
Soy nuevo en VIM. Utilizo los comandos :e
y :w
para editar y escribir un archivo que son muy convenientes. ¿No estoy seguro de si hay un comando "cerrar" para cerrar el archivo actual sin dejar VIM?
Sé que el comando :q
se puede usar para cerrar un archivo, pero si es el último archivo, VIM también se cierra; En realidad, en Mac OS, MacVIM se cierra. Solo la ventana de VIM está cerrada y podría usar Control-N para abrir un VIM en blanco nuevamente. Me gustaría que VIM permanezca abierto con una pantalla en blanco.
Como ya se mencionó, está buscando : bd , sin embargo, esto no elimina completamente el búfer, todavía está accesible:
:e foo
:e bar
:buffers
1 #h "foo" line 1
2 %a "bar" line 1
Press ENTER or type command to continue
:bd 2
:buffers
1 %a "foo" line 1
Press ENTER or type command to continue
:b 2
2 bar
En su lugar, puede desear : bw que lo elimina por completo.
:bw 2
:b 2
E86: Buffer 2 does not exist
Sin saber acerca de : bw me molestó durante bastante tiempo.
Esto elimina el búfer (que se traduce para cerrar el archivo)
:bd
Hay un complemento para eso: bufkill (consulte http://www.vim.org/scripts/script.php?script_id=1147 )
Esto agrega BD
etc. para eliminar el búfer sin cerrar ninguna división (como bd
) solo.
He asignado bd a F4 con insertar lo siguiente en su archivo .vimrc y al presionar F4, se cerrará el archivo actual.
:map <F4> :bd<CR>
Mire el complemento de butano para mantener el diseño de la ventana cuando cierre un búfer.
Si modifica un archivo y desea cerrarlo sin salir de VIM y sin guardar, debe escribir :bd!
Si tiene varias ventanas divididas en su ventana vim, entonces: bd cierra la ventana dividida del archivo actual ... así que me gusta usar algo un poco más avanzado:
map fc <Esc>:call CleanClose(1)
map fq <Esc>:call CleanClose(0)
function! CleanClose(tosave)
if (a:tosave == 1)
w!
endif
let todelbufNr = bufnr("%")
let newbufNr = bufnr("#")
if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr))
exe "b".newbufNr
else
bnext
endif
if (bufnr("%") == todelbufNr)
new
endif
exe "bd".todelbufNr
endfunction
Si ya ha guardado el último archivo, entonces: enew es su amigo (: ¡enew! Si no quiere guardar el último archivo). Tenga en cuenta que el archivo original todavía estará en su lista de búferes (el que se puede acceder a través de: ls).
Tengo el mismo problema, así que hice el plugin. Este complemento reemplaza: qy otros comandos y luego evita que la ventana se cierre.
Si todavía tiene algún problema, intente utilizar el siguiente complemento. https://github.com/taka-vagyok/prevent-win-closed.vim
:[N]bd[elete][!] *:bd* *:bdel* *:bdelete* *E516* :bd[elete][!] [N] Unload buffer [N] (default: current buffer) and delete it from the buffer list. If the buffer was changed, this fails, unless when [!] is specified, in which case changes are lost. The file remains unaffected. Any windows for this buffer are closed. If buffer [N] is the current buffer, another buffer will be displayed instead. This is the most recent entry in the jump list that points into a loaded buffer. Actually, the buffer isn''t completely deleted, it is removed from the buffer list |unlisted-buffer| and option values, variables and mappings/abbreviations for the buffer are cleared.