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.

Preferenze della tastiera

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow