vim - salir - vi ir al final del archivo
vim change: función x para eliminar el búfer en lugar de guardar y salir (2)
Quiero establecer :x
en vim gui-mode para delete buffer
porque siempre mato a todo el gvim, lo cual es un poco molesto. Sé que puedo establecer específicamente problemas de interfaz gráfica de usuario con if has("gui running")
pero no sé cómo reasignar :x
gracias por adelantado
ps .: tal vez la etiqueta / término remap
es incorrecta, pero no sé el término correcto, es por eso que Google no brindó ninguna ayuda.
Encuentro que la alternativa más segura es usar una abreviatura de expresión:
cnoreabbrev <expr> x getcmdtype() == ":" && getcmdline() == ''x'' ? ''bd'' : ''x''
Esto asegurará que la abreviatura solo se expanda a bd
cuando :x
se usa de otra manera simplemente expanda a x
.
Para más ayuda:
:h map-<expr>
:h getcmdtype()
:h getcmdline()
Tras una inspección adicional, parece haber un complemento que hace exactamente esto por Hari Krishna Dara llamado cmdalias.vim . Utiliza una variación de la técnica anterior.
Esto no es tan fácil como parece. :map
no funcionará con comandos y :command
solo acepta comandos que comienzan con una letra mayúscula. Pero puedes usar :cabbrev
:
if has("gui_running")
cabbrev x bd
endif
ACTUALIZACIÓN:: :cmap
podría utilizarse: :cmap x bd
, pero no funciona bien: cada ocurrencia de x
en un comando se reemplaza inmediatamente por bd
.
EDITAR: Esta pregunta es un duplicado de ¿Puedo (re) asignar comandos Ex en vim? .