Små vilkårlige noter om tips til vim editoren
2013-03-14, Lars Sommer
Nedenstående er primært noter til mig selv.
J joiner linjer (fjerner newlines)
------
Ex commands:
:left, :center og :right aligner tekst
:center
:right
"x<cmd> gemmer en cmd i register x, som kaldes igen med f.eks. "xp
Eks.:
"kdd på en linje med "hest", og så "kp indsætter "hest", uanset hvad der er i den normale yank-buffer
ranges: 1,$,%,
. er actual line
:global/<regexp>,<cmd>
f.eks.; :%,g/hest/# udskriver alle linjer der indeholder hest
:%,g/test/d sletter alle linjer med test
confirm:
med c fåes confirm-valg for hver enkelt;
f.eks. i s/hest/test/gc
------
Buffers, windows, tabs:
:args, :argadd, :argdelete
:ls lister de buffere der er åbne
:n, :N frem og tilbage i arg-listen
:file kan bruges til at omdøbe filen undervejs
:new åbner nyt vindue
:split åbner samme fil igen, i nyt vindue
<C-W> skifter
:vertical new, :vert resize +10 og lign. gør det vertikalt
------
Autocommands:
:e . åbner en file explorer i den aktuelle mappe
vi sftp://[email protected]/hest
vi scp://[email protected]/hest
editerer over nettet
------
Regular Expressions:
^ $ . * [a-z][A-Z][0-9] \{m,n} \(...\) \|
[[:alnum:]] posix style
classes: \a \d \s (alfanumerisk, digits, whitespace)
\n newline, \_s whitespace+newline
Lookaround:
/\(t\)\(est\)\@! find t, der IKKE er efterfulgt af est
Grupperinger med () kan kaldes igen, med \1, \2 osv.. f.eks:
/\(t\|e\)\1 søger på (t|e)(t|e)
\ze fjerner det der følger efter, i matchen. F.eks:
/te\zest matcher test, men markerer kun te
------
Folding:
:set foldenable
:set foldmethod f.eks. =marker
:set foldmarker={{{,}}}
zo zR folder ud
zc zm zM folder sammen
zf laver en fold
{{{
test
{{{
hest
}}}
}}}
------
Automatic Editing:
I stedet for disse, som kræver F8, shift-F8 (se min .vimrc)
nmap <F8> :set ...
nmap <S-F8> :set ...
Så denne, der remapper key'en:
nnoremap \K1 sadf: map K \K2<CR>
nnoremap \K2 sadf: map K \K1<CR>
nmap K \K1
------
Make, grep:
:make
forstår også f.eks. latex-filer, med
:make %
:grep hest %
------
Set options:
:set <option>
Tjek hvad option er sat til:
:set <option>?
------
Vimdiff:
F.eks:
ls -l t* > tmp1
ls -l t* > tmp2
vimdiff tmp1 tmp2
Herefter kan do og dp bruges til at indsætte forskellen i hhv venstre og højre side.
Synkroniser med :diffupdate
------
Andet fedt:
:sort sorterer
:%sort /\%(.\{-}/\)\{2}/
te<C-p> foreslår ord der starter med te, bladr med <C-p> og <C-n>
Tilføjelse d.28. juli 2006, fra foredrag om VIM holdt af Preben Guldberg:
/foo\( bar\)\@=
Søg efter "foo", der er efterfulgt af " bar"
Folding
macro-stuff
foldede stykker, kan flyttes rundt samlet
:syn on/off
{{{
}}}
:foldenable on/off
kan f.eks sættes med indent, markers eller pr syntax
zo og zR expanderer foldede
zc, zm og zM lukker foldede
fdc for at vise folds
set fdc=n, hvor n er hvor mange chars der må bruges til at vise foldsne
Sæt spelling til på mail-filer, men ikke andre filer:
:au FileTyoe * set nospell
:au FileTyoe mail set spell