Come incrementare vim sotto Windows (dove CTRL-A non funziona...)
-
09-06-2019 - |
Domanda
Mentre CtrlX funziona bene in Vim sotto le finestre, CtrlUN seleziona tutto (duh).
C'è un modo per incrementare un numero premendo un tasto sotto Windows?
Soluzione
Prova Ctrl-Tastierino Numerico + ?
(da qui)
Altri suggerimenti
Tu puoi fare CtrlUN per incrementare Windows aprendo il file 'mswin.vim' nella directory vim e trovando la sezione simile a:
" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG
Commenta tutte queste righe come segue:
" CTRL-A is Select all
"noremap <C-A> gggH<C-O>G
"inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
"cnoremap <C-A> <C-C>gggH<C-O>G
"onoremap <C-A> <C-C>gggH<C-O>G
"snoremap <C-A> <C-C>gggH<C-O>G
"xnoremap <C-A> <C-C>ggVG
e il CtrlUN la pressione del tasto aumenterà.
Questa è un'opzione piuttosto interessante quando la tua tastiera non ha un vero tastierino numerico.
Mi rendo conto che questa è una vecchia domanda, ma oggi mi sono imbattuto in un'altra opzione basata sulla seguente domanda.Far sì che gvim si comporti come su Linux consentirà a CTRL-A di funzionare come previsto:
come fare in modo che gvim su Windows si comporti esattamente come vim della console Linux?
C'è una sezione di _vimrc che contiene i seguenti elementi.Ciò fa sì che molti dei caratteri di controllo si comportino come su Windows.
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
Ho commentato (con "
) le righe mswin e il file set nocompatible
linea.Da lì, ho aggiunto set compatible
.Questo fa sì che gvim si comporti come su Linux.Quindi, il mio assomiglia a qualcosa del genere:
set compatible
source $VIMRUNTIME/vimrc_example.vim
"set nocompatible
"source $VIMRUNTIME/mswin.vim
"behave mswin
Ho appena imparato questo trucco oggi, quindi se le mie informazioni non sono completamente corrette, faccelo sapere.
Ho modificato la soluzione di TMealy in questo modo CtrlUN seleziona ancora tutto (lo trovo utile), while CtrlIO incrementi (anche utili).
noremap <C-I> <C-A>
" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG
Un problema simile si verifica sotto GNU/Linux quando si utilizza Vim con mswin.vim
.Rimappatura Alt+X A Ctrl+UN prima di evocare mswin.vim
risolto il mio problema.
execute "set <A-x>=\ex"
noremap <A-x> <C-A>
source $VIMRUNTIME/mswin.vim
behave mswin
Ora, Alt+X E Ctrl+X rispettivamente aumentano e diminuiscono i numeri in Vim.
Mappatura a Alt le combinazioni di tasti spesso non sono evidenti in Vim;leggi di più a riguardo Qui.
Sto usando il terminale Cygwin + schermo, quindi <c-a> viene catturato dal multiplexer del terminale.Ho utilizzato questa mappatura:
:noremap <c-i> <c-a>
Sembra che il CtrlUN è stato mappato da qualche parte all'avvio.Come suggerito prima, utilizzare:
annulla mappa <c-x>
Vorrei usare unmap, non nunmap.