Tips til vim editoren

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *