modifica vim: funzione x per cancellare il buffer invece di salvare e uscire

Voglio settare :x in vim gui-mode per delete buffer perché uccido sempre l’intero gvim, che è piuttosto fastidioso. So che posso impostare in modo specifico problemi di gui con if has("gui running") ma non so come rimappare :x

Grazie in anticipo

ps .: forse il tag / term remap è sbagliato ma non conosco il termine corretto, ecco perché google non ha fornito alcun aiuto.

Trovo l’alternativa più sicura è quella di usare un’abbreviazione dell’espressione:

 cnoreabbrev  x getcmdtype() == ":" && getcmdline() == 'x' ? 'bd' : 'x' 

Questo assicurerà che l’abbreviazione sarà estesa a bd quando :x è usato altrimenti basta espandere a x .

Per ulteriore aiuto:

 :h map- :h getcmdtype() :h getcmdline() 

Dopo un’ulteriore ispezione sembra esserci un plugin che fa esattamente questo da Hari Krishna Dara chiamato cmdalias.vim . Usa una variante della tecnica di cui sopra.

Non è così facile come sembra. :map non funziona con i comandi e :command accetta solo comandi che iniziano con una lettera maiuscola. Ma puoi usare :cabbrev :

 if has("gui_running") cabbrev x bd endif 

AGGIORNAMENTO:: :cmap potrebbe essere effettivamente utilizzato:: :cmap x bd , ma non funziona a destra: ogni occorrenza di x in un comando viene immediatamente sostituita da bd .

EDIT: Questa domanda è un duplicato di Can (ri) mappare i comandi Ex in vim? .