Zoeken…


Syntaxis

  • : relatienummer instellen
  • : nummer instellen
  • : set nonumber /: set nonu
  • : pwd

Opmerkingen

Dit automatisch herladen gebeurt alleen als u uw vimrc in een versie volledige versie van vim die autocmd ondersteunt.

Snelle "wegwerp" macro's

Voeg dit toe aan je vimrc:

nnoremap Q @q

Gebruik qq om te beginnen met het opnemen van de 'wegwerp'-macro. Druk op q om de opname te beëindigen (in de normale modus voor beide).

Gebruik Q om de opgenomen macro uit te voeren.

Dit is handig voor macro's die u meerdere keren achter elkaar moet herhalen, maar die u daarna waarschijnlijk niet meer zult gebruiken.

De functie voor padaanvulling in Vim gebruiken

Dit is heel gebruikelijk, je onthoudt een pad naar een bestand of map, je opent Vim en probeert te schrijven wat je zojuist hebt onthouden, maar je bent niet 100% zeker dat het correct is, dus je sluit de editor en begint opnieuw.

Wanneer u de functie voor /home/ubuntu/my_folder/my_file wilt, en u een bestand /home/ubuntu/my_folder/my_file en u een ander bestand bewerkt dat verwijst naar het pad van de vorige:

Ga naar de invoegmodus: voer in of doe het zoals je wilt. Schrijf vervolgens /h . Wanneer de cursor onder h , drukt h op Ctrl x en vervolgens op Ctrl f zodat de editor dit voltooit naar /home/ omdat het patroon /h uniek is

Stel nu dat je twee mappen in /home/ubuntu/ genaamd my_folder_1 my_folder_2

en je wilt het pad /home/ubuntu/my_folder_2

zoals gewoonlijk:

Activeer de invoegmodus

schrijf /h en druk op Ctrl x en vervolgens op Ctrl f . Nu heb je /home/ Next voeg je toe na / home / en druk op Ctrl x en vervolgens op Ctrl f . Nu heb je /home/ubuntu/ omdat dat pad uniek is. Schrijf nu my after /home/ubuntu/ en druk op Ctrl x en vervolgens op Ctrl f . De editor voltooit uw woord tot my_folder_ en u ziet de mapstructuur, dus gebruik de pijltoetsen om de gewenste te kiezen.

Schakel relatieve regelnummers in

Als u enkele regels tekst wilt verwijderen als u het exacte aantal te verwijderen regels niet weet, probeert u 10dd , 5dd , 3dd totdat u alle regels hebt verwijderd.

Relatieve regelnummers lossen dit probleem op, stel dat we een bestand hebben met:

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.

Ga naar de NORMALE modus: Esc

Voer nu uit :set relativenumber . Eenmaal gedaan zal het bestand worden weergegeven als:

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.

waarbij 0 het regelnummer is voor de huidige regel en het ook het reële regelnummer voor het relatieve nummer weergeeft, dus nu hoef je niet het aantal regels van de huidige regel te schatten om ze te knippen of te verwijderen of erger, tel ze één bij een.

U kunt nu uw gebruikelijke opdracht zoals 6dd en u bent zeker van het aantal regels.

U kunt ook de korte vorm van dezelfde opdracht gebruiken :set rnu in om relatieve getallen in te schakelen en :set nornu in om hetzelfde uit te schakelen.

Als u ook :set number of hebt :set number al ingeschakeld, krijgt u het regelnummer van de regel waarin de cursor staat.

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. 

Regelnummers bekijken

Voer regelnummers in vanuit Standaardweergave

:set number

Regelnummers verbergen

:set nonumber

Er is ook een snelkoppeling voor hierboven. nu is hetzelfde als number .

:set nonu

Om regelnummers te verbergen, kunnen we ook gebruiken

:set nu!

Toewijzingen voor het verlaten van de invoegmodus

Veel Vim-gebruikers vinden de Esc te moeilijk om te bereiken en vinden uiteindelijk een andere kaart die gemakkelijk te bereiken is vanaf de startrij. Merk op dat Ctrl - [ gelijkwaardig is aan Esc op een Engels toetsenbord en veel gemakkelijker te bereiken is.

j k

inoremap jk <ESC> 

Deze is echt gemakkelijk te activeren; sla je eerste twee vingers tegelijkertijd op de thuisrij. Het is ook moeilijk om per ongeluk te activeren omdat "jk" nooit in een Engels woord voorkomt en als je in de normale modus bent, doet het niets. Als u niet teveel "blackjack" typt, kunt u overwegen ook inoremap kj <ESC> toe te voegen, zodat u zich geen zorgen hoeft te maken over de timing van de twee sleutels.

Caps Lock

Linux

In Linux kunt u xmodmap gebruiken om Caps Lock hetzelfde te laten doen als Esc . Zet dit in een bestand:

!! No clear Lock 
clear lock
!! make caps lock an escape key
keycode 0x42 = Escape

Voer vervolgens het xmodmap file . Hiermee wordt Caps Lock opnieuw toegewezen aan Esc .

ramen

In Windows kunt u gebruik maken SharpKey of AutoHotkey .

MacOS

Als u macOS 10.12.1 of hoger hebt, kunt u Caps Lock opnieuw toewijzen aan Escape met behulp van Systeemvoorkeuren. Selecteer Toetsenbord, ga naar het tabblad Toetsenbord en klik op Modificatietoetsen.

Toetsenbordvoorkeuren

Hoe u de map en / of het pad weet van het bestand dat u bewerkt

Om het pad te weten van de map waarin uw bestand zich bevindt, kunt u het volgende gebruiken:

Esc om de opdrachtmodus te openen

:pwd

Hiermee wordt het pad naar de map onder aan de editor als volgt afgedrukt

I'm a ninja
~
~
~
~
~
/home/ubuntu/myfolder                                                1,5         All

Als u nu de bestandsnaam wilt weten die u bewerkt ten opzichte van de vim-werkmap, kunt u het volgende gebruiken:

Esc om de opdrachtmodus CTRL G te openen

I'm a ninja
~
~
~
~
~
"myfile"[Modified][New file] 1 line --100%--                         1,5         All

Gebruik ten slotte het absolute pad naar het bestand dat u bewerkt

Esc om de opdrachtmodus te openen,

1 en vervolgens CTRL G

I'm a ninja
~
~
~
~
~
"~/myfolder/myfile"[Modified][New file] 1 line --100%--              1,5         All

Zoeken binnen een functieblok

Om te zoeken naar tekst foo binnen een {} blok rond de cursor gebruikt u de volgende opdracht ( <ESC> - escape-toets, <CR> - enter-toets):

vi{<ESC>/\%Vfoo<CR>

nu kun je tussen de wedstrijden in het blok springen door op n en p drukken. Als u de hlsearch optie hebt ingeschakeld, worden alle overeenkomsten gemarkeerd. \%V is een speciaal onderdeel van het zoekpatroon, dat vim vertelt om alleen in het visueel geselecteerde gebied te zoeken. U kunt ook een afbeelding maken zoals deze:

:vnoremap g/ <ESC>/\%V

Hierna wordt het bovenstaande commando ingekort tot het volgende:

vi{g/foo<CR>

Een andere handige truc is om alle lijnen met het patroon af te drukken:

vi{
:'<,'>g/foo/#

Het bereik '<,'> wordt automatisch ingevoegd.

Zie :help range en :help :g .

Gevonden regel kopiëren, verplaatsen of verwijderen

Veel gebruikers bevinden zich in een situatie waarin ze gewoon snel een lijn willen kopiëren, verplaatsen of verwijderen en terugkeren naar waar ze waren.

Als u een regel met het woord lot onder de huidige regel wilt verplaatsen, typt u meestal iets als:

/lot<Esc>dd<C-o>p

Maar om de productiviteit te verhogen, kunt u deze snelkoppeling in deze gevallen gebruiken:

" 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>``

Dus een zoekopdracht als deze:

/lot$m

verplaatst de regel die lot bevat onder de regel waarop uw cursor stond toen u de zoekopdracht startte.

Schrijf een bestand als u vergeet `sudo` voordat u vim start

Met deze opdracht wordt het geopende bestand met sudo-rechten opgeslagen

:w !sudo tee % >/dev/null

Je kunt ook w!! om een bestand als root uit te schrijven

:cnoremap w!! w !sudo tee % >/dev/null

Laad vimrc automatisch opnieuw bij opslaan

Om vimrc automatisch opnieuw te vimrc bij het opslaan, voeg je het volgende toe aan je 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

en typ vervolgens voor de laatste keer:

:so $MYVIMRC

De volgende keer dat u uw vimrc , wordt deze automatisch opnieuw geladen.

nested is handig als u vim-airline gebruikt. Het laden van luchtvaartmaatschappijen activeert een aantal autocommando's, maar aangezien u bezig bent met het uitvoeren van een autocommand worden ze overgeslagen. nested maakt het mogelijk om geneste autocommando's te activeren en laat luchtvaartmaatschappij toe om correct te laden.

Opdrachtregel voltooid

stel het wildmenu in om voltooiingssuggesties voor de opdrachtregel in te schakelen.
Voer het volgende uit

set wildmenu
set wildmode=list:longest,full

Nu als je zegt :color tab,

Je zult krijgen

256-jungle  Benokai  BlackSea  C64  CandyPaper  Chasing_Logic  ChocolateLiquor  
:color 0x7A69_dark


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow