vim
Consigli e suggerimenti per aumentare la produttività
Ricerca…
Sintassi
- : imposta relativenumber
- : imposta il numero
- : set nonum /: imposta nonu
- : pwd
Osservazioni
Questo ricaricamento automatico avverrà solo se modifichi il tuo vimrc
in una versione completa di vim che supporta autocmd
.
Macro "usa e getta" veloci
Aggiungi questo al tuo vimrc:
nnoremap Q @q
Per iniziare a registrare la macro "usa e getta", usa qq
. Per terminare la registrazione, premi q
(in modalità normale per entrambi).
Per eseguire la macro registrata, utilizzare Q
Questo è utile per i macro che è necessario ripetere più volte di seguito ma non sarà più possibile utilizzarli nuovamente in seguito.
Utilizzando la funzione di completamento del percorso all'interno di Vim
Questo è molto comune, memorizzi il percorso di un file o di una cartella, apri Vim e prova a scrivere ciò che hai appena memorizzato, ma non sei sicuro al 100% che sia corretto, quindi chiudi l'editor e ricomincia da capo.
Quando si desidera la funzionalità di completamento del percorso e si dispone di un file /home/ubuntu/my_folder/my_file
e si sta modificando un altro file facendo riferimento al percorso del precedente:
Entra nella modalità di inserimento: inserisci o fai come vuoi. Quindi, scrivi /h
. Quando il cursore è sotto h
, premi Ctrl x e quindi Ctrl f in modo che l'editor lo completi a /home/
perché il pattern /h
è univoco
Ora, supponiamo di avere due cartelle dentro /home/ubuntu/
chiamate my_folder_1
my_folder_2
e vuoi il percorso /home/ubuntu/my_folder_2
come di solito:
Entra nella modalità di inserimento
scrivi /h
e premi Ctrl x e quindi Ctrl f . Ora hai /home/
Successivo aggiungi te dopo / home / e premi Ctrl x e poi Ctrl f . Ora hai /home/ubuntu/
perché quel percorso è unico. Ora, scrivi il my
after /home/ubuntu/
e premi Ctrl x e quindi Ctrl f . L'editor completerà la tua parola fino a my_folder_
e vedrai l'albero delle directory, quindi usa i tasti freccia per scegliere quello che desideri.
Attiva i numeri di riga relativi
Per eliminare alcune righe di testo quando non conosci il numero esatto di righe da eliminare, prova 10dd
, 5dd
, 3dd
fino a rimuovere tutte le linee.
I numeri di riga relativi risolvono questo problema, supponiamo di avere un file contenente:
sometimes, you see a block of
text. You want to remove
it but you
cannot directly get the
exact number of
lines to delete
so you try
10d , 5d
3d until
you
remove all the block.
Entra in modalità NORMAL: Esc
Ora esegui :set relativenumber
. Una volta fatto il file verrà visualizzato come:
3 sometimes, you see a block of 2 text. You want to remove 1 it but you 0 cannot directly get the 1 exact number of 2 lines to delete 3 so you try 4 10d , 5d 5 3d until 6 you 7 remove all the block.
dove 0
è il numero di linea per la linea corrente e mostra anche il numero di linea reale davanti al numero relativo, quindi ora non devi stimare il numero di linee dalla linea corrente da tagliare o eliminare o peggio contarle una da uno.
Ora puoi eseguire il tuo solito comando come 6dd
e sei sicuro del numero di linee.
Puoi anche usare la forma abbreviata dello stesso comando :set rnu
per attivare numeri relativi e :set nornu
per disattivare lo stesso.
Se anche tu :set number
o hai :set number
già attivo, otterrai il numero di riga della linea in cui si trova il cursore.
3 sometimes, you see a block of 2 text. You want to remove 1 it but you 4 cannot directly get the 1 exact number of 2 lines to delete 3 so you try 4 10d , 5d 5 3d until 6 you 7 remove all the block.
Visualizzazione dei numeri di riga
Per visualizzare i numeri di riga dalla visualizzazione predefinita, immettere
:set number
Per nascondere i numeri di riga
:set nonumber
C'è anche una scorciatoia per sopra. nu
è uguale al number
.
:set nonu
Per nascondere i numeri di riga, possiamo anche usare
:set nu!
Mappature per l'uscita dalla modalità di inserimento
Molti utenti di Vim trovano l' Esc troppo difficile da raggiungere e finiscono per trovare un'altra mappatura facilmente raggiungibile dalla home row. Nota che Ctrl - [ potrebbe essere equivalente a Esc su una tastiera inglese, ed è molto più facile da raggiungere.
j k
inoremap jk <ESC>
Questo è veramente facile da innescare; basta distruggere le prime due dita sulla fila di casa contemporaneamente. È anche difficile innescare accidentalmente poiché "jk" non appare mai in nessuna parola inglese, e se sei in modalità normale non fa nulla. Se non digiti troppo "blackjack", considera anche l'aggiunta di inoremap kj <ESC>
modo da non inoremap kj <ESC>
preoccupare del timing dei due tasti.
Blocco maiuscole
Linux
Su Linux, puoi usare xmodmap
per fare in modo che Caps Lock faccia la stessa cosa di Esc . Metti questo in un file:
!! No clear Lock
clear lock
!! make caps lock an escape key
keycode 0x42 = Escape
Quindi esegui il xmodmap file
. Rimappa Caps Lock su Esc .
finestre
Su Windows è possibile utilizzare SharpKey o AutoHotkey .
Mac OS
Se hai macOS 10.12.1 o successivo, puoi rimappare Caps Lock in Escape usando le Preferenze di Sistema. Seleziona Tastiera, vai alla scheda Tastiera e fai clic su Tasti di modifica.
Come conoscere la directory e / o il percorso del file che si sta modificando
Per conoscere il percorso della directory in cui si trova il tuo file puoi utilizzare:
Esc per accedere alla modalità di comando
:pwd
Questo stamperà il percorso nella directory in fondo all'editor, come questo
I'm a ninja
~
~
~
~
~
/home/ubuntu/myfolder 1,5 All
Ora, se vuoi conoscere il nome del file che stai modificando relativamente alla directory di lavoro di vim, puoi usare:
Esc per accedere alla modalità di comando CTRL G
I'm a ninja
~
~
~
~
~
"myfile"[Modified][New file] 1 line --100%-- 1,5 All
Infine, per ottenere il percorso assoluto del file che stai modificando, usa
Esc per entrare in modalità comando,
1 e poi CTRL G
I'm a ninja
~
~
~
~
~
"~/myfolder/myfile"[Modified][New file] 1 line --100%-- 1,5 All
Cerca all'interno di un blocco funzione
Per cercare il testo foo
all'interno di un blocco {}
attorno al cursore, utilizzare il seguente comando ( <ESC>
- tasto escape, <CR>
- tasto invio):
vi{<ESC>/\%Vfoo<CR>
ora puoi saltare tra le partite all'interno del blocco premendo n
e p
. Se hai abilitato l'opzione hlsearch
, questo evidenzierà tutte le corrispondenze. \%V
è una parte del modello di ricerca speciale, che indica a vim di cercare solo nell'area visivamente selezionata. Puoi anche fare una mappatura come questa:
:vnoremap g/ <ESC>/\%V
Dopo questo il comando di cui sopra è abbreviato al seguente:
vi{g/foo<CR>
Un altro trucco utile è stampare tutte le linee contenenti il modello:
vi{
:'<,'>g/foo/#
L'intervallo '<,'>
viene inserito automaticamente.
Vedi :help range
e :help :g
.
Copia, sposta o cancella la linea trovata
Molti utenti si trovano in una situazione in cui vogliono semplicemente copiare, spostare o eliminare una riga rapidamente e tornare a dove erano.
Di solito, se vuoi spostare una riga che contiene il lot
parole sotto la riga corrente devi digitare qualcosa come:
/lot<Esc>dd<C-o>p
Ma per aumentare la produttività puoi usare questa scorciatoia in questi casi:
" It's recommended to turn on incremental search when doing so
set incsearch
" copy the found line
cnoremap $t <CR>:t''<CR>
" move the found line
cnoremap $m <CR>:m''<CR>
" delete the found line
cnoremap $d <CR>:d<CR>``
Quindi una ricerca come questa:
/lot$m
sposterebbe la linea che contiene lot
sotto la linea su cui si trovava il cursore quando hai iniziato la ricerca.
Scrivi un file se ti dimentichi di "sudo" prima di avviare vim
Questo comando salverà il file aperto con diritti sudo
:w !sudo tee % >/dev/null
Puoi anche mappare w!!
scrivere un file come root
:cnoremap w!! w !sudo tee % >/dev/null
Ricarica automaticamente vimrc al salvataggio
Per ricaricare automaticamente vimrc
al salvataggio, aggiungi quanto segue al tuo vimrc
:
if has('autocmd') " ignore this section if your vim does not support autocommands
augroup reload_vimrc
autocmd!
autocmd! BufWritePost $MYVIMRC,$MYGVIMRC nested source %
augroup END
endif
e poi per l'ultima volta, digita:
:so $MYVIMRC
La prossima volta che salvi il tuo vimrc
, verrà automaticamente ricaricato.
nested
è utile se stai usando vim-airline. Il processo di caricamento della compagnia aerea attiva alcuni autocomandi, ma dal momento che si sta eseguendo un autocomando essi vengono saltati. nested
consente l'attivazione di autocomandi nidificati e consente alla compagnia aerea di caricarsi correttamente.
Completamento della riga di comando
imposta wildmenu
per attivare i suggerimenti di completamento per la riga di comando.
Esegui il seguente
set wildmenu
set wildmode=list:longest,full
Ora se lo dici :color
scheda :color
,
Otterrai
256-jungle Benokai BlackSea C64 CandyPaper Chasing_Logic ChocolateLiquor :color 0x7A69_dark