Modalità di inserimento
Movimento
hjkl
Indipendentemente da ciò che Pavel Shved ha detto - che è probabilmente più consigliabile abituarsi alla Escmodalità Inserimento di ap - ecco un esempio di mappature per la navigazione rapida in modalità Inserisci:
" provide hjkl movements in Insert mode via the <Alt> modifier key
inoremap <A-h> <C-o>h
inoremap <A-j> <C-o>j
inoremap <A-k> <C-o>k
inoremap <A-l> <C-o>l
Questo farà Alt+ hin modalità Inserisci andare un carattere a sinistra, Alt+ in jbasso e così via, analogamente a hjklin modalità Normale.
Devi copiare quel codice nel tuo file vimrc per averlo caricato ogni volta che avvii vim (puoi aprirlo digitando a :new $myvimrc
partire dalla modalità normale).
Eventuali movimenti in modalità normale
Poiché il Alttasto modificatore non è mappato (su qualcosa di importante) per impostazione predefinita, è possibile allo stesso modo estrarre altre (o tutte) funzionalità dalla modalità Normale alla modalità Inserisci. Ad esempio:
spostarsi all'inizio della parola corrente con Alt+ b:
inoremap <A-b> <C-o>b
inoremap <A-w> <C-o>w
(Altri usi Altin modalità Inserisci)
Vale la pena ricordare che potrebbero esserci usi migliori per la Altchiave rispetto alla replica del comportamento in modalità Normale: ad esempio, ecco i mapping per copiare da una linea adiacente la porzione dalla colonna corrente fino alla fine della riga:
" Insert the rest of the line below the cursor.
" Mnemonic: Elevate characters from below line
inoremap <A-e>
\<Esc>
\jl
\y$
\hk
\p
\a
" Insert the rest of the line above the cursor.
" Mnemonic: Y depicts a funnel, through which the above line's characters pour onto the current line.
inoremap <A-y>
\<Esc>
\kl
\y$
\hj
\p
\a
(Ho usato la \
continuazione della riga e il rientro per aumentare la chiarezza - i comandi sono interpretati come se fossero scritti su una sola riga.)
Tasti di scelta rapida integrati per la modifica
CTRL-H delete the character in front of the cursor (same as <Backspace>)
CTRL-W delete the word in front of the cursor
CTRL-U delete all characters in front of the cursor (influenced by the 'backspace' option)
(Non ci sono tasti di scelta rapida integrati per lo spostamento in modalità Inserisci.)
Riferimento: :help insert-index
Modalità riga di comando
Questo set di mappature rende disponibili i movimentiAlt + superiori nella riga di comando:hjkl
" provide hjkl movements in Command-line mode via the <Alt> modifier key
cnoremap <A-h> <Left>
cnoremap <A-j> <Down>
cnoremap <A-k> <Up>
cnoremap <A-l> <Right>
In alternativa, questi mapping aggiungono i movimenti sia alla modalità Inserisci che alla modalità riga di comando in una volta sola:
" provide hjkl movements in Insert mode and Command-line mode via the <Alt> modifier key
noremap! <A-h> <Left>
noremap! <A-j> <Down>
noremap! <A-k> <Up>
noremap! <A-l> <Right>
I comandi di mappatura per portare i comandi in modalità normale nella modalità da riga di comando sembrano leggermente diversi dai comandi di mappatura in modalità inserimento (poiché la modalità da riga di comando manca della modalità di inserimento Ctrl+ O):
" Normal mode command(s) go… --v <-- here
cnoremap <expr> <A-h> &cedit. 'h' .'<C-c>'
cnoremap <expr> <A-j> &cedit. 'j' .'<C-c>'
cnoremap <expr> <A-k> &cedit. 'k' .'<C-c>'
cnoremap <expr> <A-l> &cedit. 'l' .'<C-c>'
cnoremap <expr> <A-b> &cedit. 'b' .'<C-c>'
cnoremap <expr> <A-w> &cedit. 'w' .'<C-c>'
Tasti di scelta rapida integrati per spostamento e modifica
CTRL-B cursor to beginning of command-line
CTRL-E cursor to end of command-line
CTRL-F opens the command-line window (unless a different key is specified in 'cedit')
CTRL-H delete the character in front of the cursor (same as <Backspace>)
CTRL-W delete the word in front of the cursor
CTRL-U delete all characters in front of the cursor
CTRL-P recall previous command-line from history (that matches pattern in front of the cursor)
CTRL-N recall next command-line from history (that matches pattern in front of the cursor)
<Up> recall previous command-line from history (that matches pattern in front of the cursor)
<Down> recall next command-line from history (that matches pattern in front of the cursor)
<S-Up> recall previous command-line from history
<S-Down> recall next command-line from history
<PageUp> recall previous command-line from history
<PageDown> recall next command-line from history
<S-Left> cursor one word left
<C-Left> cursor one word left
<S-Right> cursor one word right
<C-Right> cursor one word right
<LeftMouse> cursor at mouse click
Riferimento: :help ex-edit-index
imap jk <Esc>
) in modo da non dover interrompere lo slancio e raggiungere la tastiera per premere il tasto.