tutorial salir guardar comandos comando cambios archivo vim remap

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? .