Vim Tips Blog (NEW) Вім Блог Саветаў (NEW)
Vim @ Squidoo Вім @ Squidoo
ZSH ЗШ
Cygwin Cygwin
Blog Блог
VimTools VimTools
Buy Vim Book Support VIM Купіць кнігу Vim Падтрымка VIM
Submit to Social Websites Адправіць на сацыяльных сайтах | __BEGIN__ __BEGIN__
------------------------------------------------------------------------------ -------------------------------------------------- ----------------------------
" new items marked *N*, corrected items marked *C* "Навінкі, адзначаныя * N * выпраўленая пазначаныя * C *
" searching "Пошуку
/joe/e : cursor set to End of match / Joe / е: курсор усталяваны ў канцы матчу
3/joe/e+1 : find 3rd joe cursor set to End of match plus 1 *C* 3/joe/e +1: знайсці третью Джо курсор усталяваны ў канцы матчу плюс 1 * C *
/joe/s-2 : cursor set to Start of match minus 2 / Joe/s-2: Курсор усталяваны ў пачатак матчу мінус 2
/joe/+3 : find joe move cursor 3 lines down / Joe / 3: знайсці Джо перамясціць курсор 3 радкі ўніз
/^joe.*fred.*bill/ : find joe AND fred AND Bill (Joe at start of line) / ^
Джо.* Фрэд.* законапраект /: знайсці Джо і Фрэд і Біл (Джо ў пачатку радка)
/^[AJ]/ : search for lines beginning with one or more AJ / ^ [AJ] /: пошук радкоў, якія пачынаюцца з адной або некалькімі AJ
/begin\_.*end : search over possible multiple lines / Пачатак \ _. * канец: пошук па нагоды магчымага некалькі радкоў
/fred\_s*joe/ : any whitespace including newline *C* / Fred \ _s * Джо /: любы прабел у тым ліку новага радка * C *
/fred\|joe : Search for FRED OR JOE / Fred \ | Джо: Пошук FRED або Джо
/.*fred\&.*joe : Search for FRED AND JOE in any ORDER! /.* Фрэд \ &.* Джо: Пошук Фрэд і Джо ў любым парадку!
/\<fred\>/ : search for fred but not alfred or frederick *C* / \ <fred\> /: Пошук Фрэд, але не Альфрэд або Фрэдэрык * C *
/\<\d\d\d\d\> : Search for exactly 4 digit numbers / \ <\ D \ D \ D \ D \>: Пошук роўна 4 лічбы нумара
/\D\d\d\d\d\D : Search for exactly 4 digit numbers / \ D \ D \ D \ D \ D \ D: Пошук роўна 4 лічбы нумара
/\<\d\{4}\> : same thing / \ <\ Д \ {4} \>: адно і тое ж
/\([^0-9]\|^\)%.*% : Search for absence of a digit or beginning of line / \ ([^ 0-9] \ | ^ \ )%.*%: Пошук адсутнасць лічбы або пачатак радка
" finding empty lines "Пошук пустых радкоў
/^\n\{3} : find 3 empty lines / ^ \ П \ {3}: Знайсці 3 пустых радкоў
/^str.*\nstr : find 2 successive lines starting with str / ^ Вул.* \ nstr:
Знайсці два паслядоўных радкоў, якія пачынаюцца з вул
/\(^str.*\n\)\{2} : find 2 successive lines starting with str / \ (^ Вул.* \ п \) \ {2}:
Знайсці 2 паслядоўных радкоў, якія пачынаюцца з вул
" using rexexp memory in a search "Выкарыстоўваючы rexexp памяці ў пошуках
/\(fred\).*\(joe\).*\2.*\1 / \ (Фрэд \).* \ (Joe \).* \.* 2 \ 1
" Repeating the Regexp (rather than what the Regexp finds) "Паўтор рэгулярных выразаў (а не тое, што знаходзіць рэгулярных выразаў)
/^\([^,]*,\)\{8} / ^ \ ([^,]*, \) \ {8}
" visual searching "Візуальны пошук
:vmap // y/<CR>"<CR> : search for visually highlighted text : Vmap / / г / <CR> "<CR>: пошук візуальна вылучаны тэкст
:vmap <silent> // y/<CR>=escape(@", '\\/.*$^~[]')<CR><CR> : with spec chars :
Vmap <silent> / / г /; CR = бегчы (@ ", '\ \ /.*$^~[]')< CR> <CR>: з спецыфікацыі знакаў
" \zs and \ze regex delimiters :h /\zs "\ ZS і \ г е рэгулярны выраз падзельнікі: г / \ ZS
/<\zs[^>]*\ze> : search for tag contents, ignoring chevrons / <\ ZS [^>]* \ ге>: пошук змесціва тэга, ігнаруючы шаўроны
" zero-width :h /\@= "Нулявы шырыні: г / \ @ =
/<\@<=[^>]*>\@= : search for tag contents, ignoring chevrons / <\ <=[^>]*> \ @ =: Пошук змесціва тэга, ігнаруючы шаўроны
/<\@<=\_[^>]*>\@= : search for tags across possible multiple lines / <\ @ <= \ _[^>]*> \ @ =: Пошук тэгаў праз магчыма некалькі радкоў
" searching over multiple lines \_ means including newline "Пошук на некалькі радкоў \ _ сродкаў, уключаючы новы радок
/<!--\_p\{-}--> : search for multiple line comments /<!-- \ _p \ {-}-->: Пошук па некалькіх каментарыі лініі
/fred\_s*joe/ : any whitespace including newline *C* / Fred \ _s * Джо /: любы прабел у тым ліку новага радка * C *
/bugs\(\_.\)*bunny : bugs followed by bunny anywhere in file / Памылак \ (\ _. \) * труса: памылкі ідуць труса ў любым месцы файла
:h \_ : help : Ч \ _: дапамога
" search for declaration of subroutine/function under cursor "Пошук дэкларацыі падпраграмы / функцыі пад курсорам
:nmap gx yiw/^\(sub\<bar>function\)\s\+<CR>"<CR> : Птар GX YIW / ^ \ (суб \ <bar> функцыі \) \ з \ + <CR> "<CR>
" multiple file search "Множныя пошук файлаў
:bufdo /searchstr/ : use :rewind to recommence search : Bufdo / searchstr /: выкарыстаць: перамотка аднавіць пошук
" multiple file search better but cheating "Некалькіх пошуку файлаў лепш, але падман
:bufdo %s/searchstr/&/gic : say n and then a to stop : / Bufdo% s. searchstr / і / ДПК: скажам, я і тое, каб спыніць
" How to search for a URL without backslashing "Як шукаць URL без backslashing
?http://www.vim.org/ : (first) search BACKWARDS!!! ? Http: / / www.vim.org/: (першага) пошук НАЗАД! clever huh! разумны ды!
" Specify what you are NOT searching for (vowels) "Пакажыце, што вы не шукалі (галосныя)
/\c\v([^aeiou]&\a){4} : search for 4 consecutive consonants / \ З \ у ([^ AEIOU] & \) {4}: пошук на працягу 4 паслядоўных зычных
/\%>20l\%<30lgoat : Search for goat between lines 20 and 30 *N* / \%> 20 л \% <30lgoat:
У пошуках казы паміж радкамі 20 і 30 * N *
/^.\{-}home.\{-}\zshome/e : match only the 2nd occurence in a line of "home" *N*. / \ {-}
Галоўная \ {-} \ zshome / E:. Матчу толькі другое з'яўленне ў лініі "дома" * N *
:%s/home.\{-}\zshome/alone : Substitute only the occurrence of home in any line *N* :%. /
Яна галоўная \ {-} \ zshome / адзін: Заменіце толькі з'яўленне дома ў любы радку * N *
" find str but not on lines containing tongue «Знайсці вул але не на радкі, якія ўтрымліваюць мову
^\(.*tongue.*\)\@!.*nose.*$ ^ \ (.* Мовай.* \) \ @!.* Нос.* $
\v^((tongue)@!.)*nose((tongue)@!.)*$ \ У ^ ((мова )@!.)* нос ((мова )@!.)*$
.*nose.*\&^\%(\%(tongue\)\@!.\)*$.* Нос.* \ & ^ \% (\% (мова \) \ @!. \) * $
:v/tongue/s/nose/&/gic : У / мовай / з / нос / і / GIC
"---------------------------------------- "----------------------------------------
"substitution "Замены
:%s/fred/joe/igc : general substitute command :% S / Fred / Joe / IGC: агульныя каманды замяніць
:%s//joe/igc : Substitute what you last searched for *N* :% S / / Джо / IGC: Замена, што вы ў апошні раз шукалі * N *
:%s/~/sue/igc : Substitute your last replacement string *N* :% С / ~ / пазоў / IGC: Заменіце ваш апошні радок замены * N *
:%s/\r//g : Delete DOS returns ^M :% З / \ г / / г: Выдаліць DOS вяртае ^ M
" Is your Text File jumbled onto one line? use following
"Ці з'яўляецца ваш тэкставы файл перамяшаныя на адной лініі? Выкарыстоўваць наступныя
:%s/\r/\r/g : Turn DOS returns ^M into real returns :% З / \ г / \ г / г: Уключыце DOS вяртае ^ M ў рэальную аддачу
:%s= *$== : delete end of line blanks :% S = * $ ==: выдаліць канца радка прабеламі
:%s= \+$== : Same thing :% S = \ + $ ==: Тое ж самае
:%s#\s*\r\?$## : Clean both trailing spaces AND DOS returns :% S # \ з * \ г \ $ # #: Чысты і канчатковыя прабелы і DOS вяртае
:%s#\s*\r*$## : same thing :% S # \ з * \ г * $ # #: адно і тое ж
" deleting empty lines "Выдаленне пустых радкоў
:%s/^\n\{3}// : delete blocks of 3 empty lines :% S / ^ \ п \ {3} / /: выдаліць блокі з 3 пустых радкоў
:%s/^\n\+/\r/ : compressing empty lines :% S / ^ \ п \ + / \ г /: сціснуць пустыя радкі
:%s#<[^>]\+>##g : delete html tags, leave text (non-greedy) :% S. #<[^>] \ +> # # г:
выдаленне HTML тэгаў, пакінуць тэкст (не прагны)
:%s#<\_.\{-1,}>##g : delete html tags possibly multi-line (non-greedy) :% S # <\ _. \ {-1,}>## г:
выдаленне HTML тэгаў магчыма мульты-лайн (не прагны)
:%s#.*\(\d\+hours\).*#\1# : Delete all but memorised string (\1) *N* :% S. #.* \ (\ г \ + гадзін \).* # \ # 1:
Выдаленне ўсіх, але запомніў радка (\ 1) * N *
%s#><\([^/]\)#>\r<\1#g : split jumbled up XML file into one tag per line *N* % S #> <\ ([^/] \) #> \ г <\ 1 # г:
спліт перамяшалася XML-файл у адзін тэг у радку * N *
" VIM Power Substitute "Вім харчавання Заменіце
:'a,'bg/fred/s/dick/joe/igc : VERY USEFUL : ',' BG / Фрэд / з / Дзік / Joe / IGC: Вельмі карысна
" duplicating columns "Дубляванне слупкоў
:%s= [^ ]\+$=&&= : duplicate end column :% S = [^] \ +$=&&=: дубляванне калонцы канца
:%s= \f\+$=&&= : same thing :% S = \ F \ +$=&&=: адно і тое ж
:%s= \S\+$=&& : usually the same :% S = \ S \ +$=&&: звычайна ж
" memory "Памяці
%s#.*\(tbl_\w\+\).*#\1# : produce a list of all strings
tbl_* *N* % S. #.* \ (tbl_ \ ш \ + \).* # \ 1 #: скласці спіс усіх радкоў tbl_ * N *
:s/\(.*\):\(.*\)/\2 : \1/ : reverse fields separated by : : З / \ (.* \): \ (.* \) / \ 2: \ 1 /:
зваротны палёў, падзеленых па:
:%s/^\(.*\)\n\1$/\1/ : delete duplicate lines :% S / ^ \ (.* \) \ п \ 1 $ / \ 1 /:
выдаліць паўторныя радкі
:%s/^\(.*\)\(\n\1\)\+$/\1/ : delete multiple duplicate lines *N* :% S / ^ \ (.* \) \ (\ п \ 1 \) \ + $ / \ 1 /:
выдаліць некалькі паўторныя радкі * N *
" non-greedy matching \{-} "Не прагны адпаведнасць \ {-}
:%s/^.\{-}pdf/new.pdf/ : delete to 1st occurence of pdf only (non-greedy) :%. S / ^ \ {-} PDF / new.pdf /: выдаліць,
каб першым з'яўленнем PDF толькі (не прагны)
" use of optional atom \? "Выкарыстанне дадатковага атама \?
:%s#\<[zy]\?tbl_[a-z_]\+\>#\L&#gc : lowercase with optional leading characters :% S # \ <[гу] \ tbl_ [-z_] \ + \?> # \ L & # GC:
малыя з дадатковым галоўных герояў
" over possibly many lines "Па магчымасці шмат ліній
:%s/<!--\_.\{-}-->// : delete possibly multi-line comments :% S. /<!-- \ _. \ {-}-->//: выдаліць магчыма шматрадковае каментары
:help /\{-} : help non-greedy : Дапамога / \ {-}: дапамога не прагны
" substitute using a register "Замяніць выкарыстаннем рэгістра
:s/fred/<cr>a/g : sub "fred" with contents of register "a" : З / Фрэд / <cr> / г: пад "Фрэд" з змесцівам рэгістра ""
:s/fred/<cr>asome_text<cr>s/g : З / Фрэд / <cr> asome_text <cr> с / г
:s/fred/\=@a/g : better alternative as register not displayed : З / Фрэд / \ = @ / г:
лепшая альтэрнатыва, як зарэгістраваць не адлюстроўваецца
" multiple commands on one line "Некалькі каманд у адной радку
:%s/\f\+\.gif\>/\r&\r/g | v/\.gif$/d | %s/gif/jpg/ :..% З / \ е \ + \ малюнак \> / \ г & \ г / г | V / \ малюнак $ / г |% з / GIF / JPG /
:%s/a/but/gie|:update|:next : then use @: to repeat :% С / / але / ГНС |: абнаўленне |:
наступная: затым выкарыстоўваць @: паўтарыць
" ORing "ORing
:%s/goat\|cow/sheep/gc : ORing (must break pipe) :% С / казу \ | карова / авечак / дс: ORing (павінна разарваць трубы)
:'a,'bs#\[\|\]##g : remove [] from lines between markers a and b *N* : ',' BS # \ [\ | \] # # г:
выдаліць [] ад лініі паміж маркерамі і б * N *
:%s/\v(.*\n){5}/&\r : insert a blank line every 5 lines *N* :% З / \ у (.* \ п) {5} / & \ г:
ўставіць пусты радок праз кожныя 5 радкоў * N *
" Calling a VIM function "Выклік функцыі VIM
:s/__date__/\=strftime("%c")/ : insert datestring : З / __date__ / \ = STRFTIME ("% з") /: ўставіць DateString
:inoremap \zd <CR>=strftime("%d%b%y")<CR> : insert date eg 31Jan11 *N* : Inoremap \ в е-д; CR = STRFTIME ("% D% B% Y"); CR: пазначыць дату, напрыклад, 31Jan11 * N *
" Working with Columns sub any str1 in col3 "Праца са слупкамі пад любым str1 ў col3
:%s:\(\(\w\+\s\+\)\{2}\)str1:\1str2: :% З: \ (\ (\ ш \ + \ з \ + \) \ {2} \) str1: \ 1str2:
" Swapping first & last column (4 columns) "Замена першай і апошняй калонцы (4 калонкі)
:%s:\(\w\+\)\(.*\s\+\)\(\w\+\)$:\3\2\1: :% S: \ (\ ш \ + \) \ (.* \ з \ + \) \ (\ ш \ + \) $: \ 3 \ 2 \ 1:
" format a mysql query "Фармат запытаў MySQL
:%s#\<from\>\|\<where\>\|\<left join\>\|\<\inner join\>#\r&#g :% S # \ <from\> \ | \ <where\> \ | \ <LEFT join\> \ | \
<\ ўнутранае злучэнне \> # \ г & # г
" filter all form elements into paste register "Фільтраваць усе элементы формы ў пасту рэгістрацыі
:redir @*|sil exec 'g#<\(input\|select\|textarea\|/\=form\)\>#p'|redir END : Перасылак @ * | SIL EXEC
'г # <\ (уваход \ | выбраць \ | тэкставай \ | / \ = выгляд \) \> # р' | перасылак END
:nmap,z :redir @*<Bar>sil exec 'g@<\(input\<Bar>select\<Bar>textarea\<Bar>/\=form\)\>@p'<Bar>redir END<CR>
: Nmap, г: перасылак @ * <bar> 'г @ <\ (уваход \ <bar> абярыце \ <bar> тэкставай \ <bar> / \ = выгляд \) \> @ р'
SIL Exec <bar> перасылак END <CR>
" substitute string in column 30 *N* "Замяніць радок у калонцы 30 * N *
:%s/^\(.\{30\}\)xx/\1yy/ : (. \ {30 \} \)% з / ^ \ хх / \ 1yy /
" decrement numbers by 3 "Декремент нумары на 3
:%s/\d\+/\=(submatch(0)-3)/ :% З / \ г \ + / \ = (частковае супадзенне (0) -3) /
" increment numbers by 6 on certain lines only "Павялічыць на 6 нумароў на вызначаных лініях толькі
:g/loc\|function/s/\d/\=submatch(0)+6/ : Г / вос \ | функцыю / с / \ D / \ = частковае супадзенне (0) 6 /
" better "Лепш
:%s#txtdev\zs\d#\=submatch(0)+1#g :% S. # txtdev \ ZS \ д # \ = частковае супадзенне (0) 1 # г
:h /\zs : Ч / \ ZS
" increment only numbers gg\d\d by 6 (another way) "Прырашчэнне толькі лічбы гг \ D \ D на 6 (іншы спосаб)
:%s/\(gg\)\@<=\d\+/\=submatch(0)+6/ :% С / \ (гг \) \ @ <= \ D \ + / \ = частковае супадзенне (0) 6 /
:h zero-width : Ч нулявой шырыні
" rename a string with an incrementing number "Пераназваць радок з павялічваецца колькасць
:let i=10 | 'a,'bg/Abc/s/yy/\=i/ |let i=i+1 # convert yy to 10,11,12 etc : Хай я = 10 | ',' BG / Abc / з / гг / \ = я / |
Няхай I = я 1 # канвертаваць гг да 10,11,12 і г.д.
" as above but more precise », Як паказана вышэй, але больш дакладны
:let i=10 | 'a,'bg/Abc/s/xx\zsyy\ze/\=i/ |let i=i+1
# convert xxyy to xx11,xx12,xx13 : Хай я = 10 | ',' BG / Abc / з / хх \ zsyy \ ге / \ = я / | Няхай I = я 1 # канвертаваць XXYY да xx11, xx12, xx13
" find replacement text, put in memory, then use \zs to simplify substitute
"Знайсці замену тэксту, пакласці ў памяці, а затым выкарыстоўваць \ ZS спрасціць замену
:%s/"\([^.]\+\).*\zsxx/\1/ :% З / "\ ([^.] \ + \).* \ zsxx / \ 1 /
" Pull word under cursor into LHS of a substitute "Pull слова пад курсорам у левай частцы замену
:nmap <leader>z :%s#\<<cr>=expand("<cword>")<cr>\># : Птар <leader> г:% s. # \ <= <cr> разгарнуць ("<cword>") <cr> \> #
" Pull Visually Highlighted text into LHS of a substitute "Pull Візуальна Выдзелены тэкст у левай частцы замену
:vmap <leader>z :<CU>%s/\<<cr>*\>/ : Vmap <leader> г: <CU>% з / \ <<cr> * \> /
" substitute singular or plural «Асаблівыя замены або множны
:'a,'bs/bucket\(s\)*/bowl\1/gic *N* : ',' BS / вядро \ (а \) * / міскі \ 1/gic * N *
---------------------------------------- ----------------------------------------
" all following performing similar task, substitute within substitution
"Усе наступныя, якія выконваюць аналагічныя задачы, замяніць на працягу замены
" Multiple single character substitution in a portion of line only "Некалькі адной замены знакаў у частцы лініі толькі
:%s,\(all/.*\)\@<=/,_,g : replace all / with _ AFTER "all/" :% S. \ (усе /.* \) \ <=/,_, г: замяніць усе / з _ ПАСЛЯ "усіх /"
" Same thing "Тое ж самае
:s#all/\zs.*#\=substitute(submatch(0), '/', '_', 'g')# : S # ўсе / \ ZS.* # \ = падставіць (частковае супадзенне (0), '/', '_', 'г') #
" Substitute by splitting line, then re-joining "Замяніць шляхам падзелу лініі, а затым зноў далучэння
:s#all/#&^M#|s#/#_#g|-j! : S # ўсе / # & # ^ M | S #/#_# г |-у!
" Substitute inside substitute "Замяніць ўнутры замену
:%s/.*/\='cp '.submatch(0).' :% S /.* / \ = 'ф' частковае супадзенне (0) '.. all/'.
substitute(submatch(0),'/','_','g')/ ўсіх / '. падставіць (частковае супадзенне (0 ),'/','_',' г') /
---------------------------------------- ----------------------------------------
" global command display "Глабальны дысплей каманду
:g/gladiolli/# : display with line numbers (YOU WANT THIS!) : Г / gladiolli / #: дысплей з нумарамі радкоў (вы хочаце гэтага!)
:g/fred.*joe.*dick/ : display all lines fred,joe & dick : Г / Фрэд.*.* Джо Дзік /: адлюстроўваць усе лініі Фрэд, Джо і Дзік
:g/\<fred\>/ : display all lines fred but not freddy : Г / \ <fred\> /: адлюстроўваць усе лініі Фрэд, але не Фрэдзі
:g/^\s*$/d : delete all blank lines : Г / ^ \ ы * $ / D: выдаліць усе пустыя радкі
:g!/^dd/d : delete lines not containing string : Г! / ^ Дд / D: выдаліце радкі не змяшчаюць радок
:v/^dd/d : delete lines not containing string : V / ^ дд / д: выдаліце радкі не змяшчаюць радок
:g/joe/,/fred/d : not line based (very powerfull) : Г / Джо /, / Fred / д: не арыентуюцца на радкі (вельмі магутны)
:g/fred/,/joe/j : Join Lines *N* : Г / Фрэд /, / Джо / к: Рэгістрацыя Лініі * N *
:g/-------/.-10,.d : Delete string & 10 previous lines : G/-------/.-10, D:. Выдаліць радок і 10 папярэдніх радкоў
:g/{/,/}/- s/\n\+/\r/g : Delete empty lines but only between {...} : Г / {/,/}/- з / \ п \ + / \ г / г:
Выдаленне пустых радкоў, але толькі паміж {...}
:v/\S/d : Delete empty lines (and blank lines ie whitespace) : V / \ S / D:
Выдаляе ўсе пустыя радкі (і пустыя радкі, гэта значыць прабелы)
:v/./,/./-j : compress empty lines : У /./,/./- J: сціснуць пустыя радкі
:g/^$/,/./-j : compress empty lines : Г /^$/,/./- J: сціснуць пустыя радкі
:g/<input\|<form/p : ORing : Г / <ўвод \ | <форма / р: ORing
:g/^/put_ : double space file (pu = put) : Г / ^ / put_: двайны файлавага прасторы (ры = ставіць)
:g/^/m0 : Reverse file (m = move) : Г / ^ / m0: Зваротны файл (х = рух)
:g/^/m$ : No effect! : Г / ^ / м $: Не дзейнічае! *N* * N *
:'a,'bg/^/m'b : Reverse a section a to b : ',' BG / ^ / m'b: Зваротны падзел для б
:g/^/t. : Г / ^ / т. : duplicate every line : Дубляванне кожнага радка
:g/fred/t$ : copy(transfer) lines matching fred to EOF : Г / Фрэд / т $: капіраванне (перанос) радкі, якія супадаюць з Фрэдам EOF
:g/stage/t'a : copy (transfer) lines matching stage to marker a (cannot use.) *C* : Г / этап / т ":
капіраванне (перанос) радкі, якія адпавядаюць стадыі маркерам (не можа выкарыстоўваць.) * C *
:g/^Chapter/t.|s/./-/g : Automatically underline selecting headings *N* :. Г / ^ Кіраўнік / т. | з / / - / г:
Аўтаматычна падкрэсліць выбраўшы рубрыкі * N *
:g/\(^I[^^I]*\)\{80}/d : delete all lines containing at least 80 tabs : Г / \ (^ I [^ ^ я] * \) \ {80} / D:
выдаліць усе радкі, якія ўтрымліваюць не менш за 80 ўкладак
" perform a substitute on every other line "Выконваць замену на любы іншы лініі
:g/^/ if line('.')%2|s/^/zz / : Г / ^ / калі лінія ('.')% 2 | з / ^ / ZZ /
" match all lines containing "somestr" between markers a & b "Знаходжанне ўсіх радкоў, якія змяшчаюць" somestr "паміж маркерамі і б
" copy after line containing "otherstr" "Копію пасля радка, якая змяшчае" otherstr "
:'a,'bg/somestr/co/otherstr/ : co(py) or mo(ve) : ',' BG / somestr / са / otherstr /: са (ру) або месяцаў (VE)
" as above but also do a substitution », Як паказана вышэй, але таксама зрабіць замены
:'a,'bg/str1/s/str1/&&&/|mo/str2/ : ',' Bg/str1/s/str1 /&&&/| mo/str2 /
:%norm jdd : delete every other line :% Нормы JDD: выдаліць усе астатнія лініі
" incrementing numbers (type <ca> as 5 characters) "Павялічваючы ліку (тып <ca> як 5 сімвалаў)
:.,$g/^\d/exe "norm! \<ca>": increment numbers :., $ Г / ^ \ д / EXE "норма \ <ca>!": Лічбы прырашчэнне
:'a,'bg/\d\+/norm! : ',' BG / \ г \ + / норма! ^A : increment numbers ^: Лічбы прырашчэнне
" storing glob results (note must use APPEND) you need to empty reg a first with qaq.
"Захоўванне вынікаў шар (звернеце ўвагу, павінны выкарыстоўваць APPEND), вы павінны вызваліць рэг спачатку з QAQ.
"save results to a register/paste buffer "Захаваць вынікі ў рэгістр / ўставіць буфер
:g/fred/y A : append all lines fred to register a : Г / Фрэд / к: дадаваць да кожнай лініі Фрэд зарэгістравацца
:g/fred/y A | :let @*=@a : put into paste buffer : Г / Фрэд / к |: хай @ *= @: уведзены ў пасту буфер
:let @a=''|g/Barratt/y A |:let @*=@a : Хай @ =''| г / Барратт / к |: хай @ *= @
" filter lines to a file (file must already exist) "Фільтр радкоў файла (файл павінен ужо існаваць)
:'a,'bg/^Error/. : ',' BG / ^ Памылка /. w >> errors.txt W>> errors.txt
" duplicate every line in a file wrap a print '' around each duplicate "Дубляваць кожную радок у файл абгарнуць вакол печати''каждый дублікат
:g/./yank|put|-1s/'/"/g|s/.*/Print '&'/ : Г / / тузаць | пакласці | -1 /'/"/ г | з /.* / Друкаваць "і" /.
" replace string with contents of a file, -d deletes the "mark" "Замяніць радок з змесцівам файла,-D выдаляе" марка "
:g/^MARK$/r tmp.txt | -d : Г / ^ MARK $ / т tmp.txt |-г
" display prettily "Дысплей прыгожа
:g/<pattern>/z#.5 : display with context : Г / <pattern> / г # 0,5: дысплей з кантэкстам
:g/<pattern>/z#.5|echo "==========" : display beautifully : Г / <pattern> / г # 0,5 | рэха "==========": дысплей прыгожа
" Combining g// with normal mode commands "Аб'яднанне г / / з нармальнымі камандамі рэжыме
:g/|/norm 2f|r* : replace 2nd | with a star : Г / | / 2f нормай | г *: замяніць другое | з зоркай
"send output of previous global command to a new window "Даслаць выснову папярэдніх глабальных каманды ў новым акне
:nmap <F3> :redir @a<CR>:g//<CR>:redir END<CR>:new<CR>:put! : Птар <F3>: перасылак @ <CR>: г / / <CR>: перасылак END <CR>: новыя <CR>: пакласці! a<CR><CR> <CR> <CR>
"---------------------------------------- "----------------------------------------
" Global combined with substitute (power editing) "Глабальны спалучэнні з заменай (магутнасць рэдагавання)
:'a,'bg/fred/s/joe/susan/gic : can use memory to extend matching : ',' BG / Фрэд / з / Joe / Сьюзан / ДПК: ці можна выкарыстоўваць памяць пашырыць адпаведныя
:/fred/,/joe/s/fred/joe/gic : non-line based (ultra) : / Fred / / Джо / з / Fred / Joe / ДПК: не-лінія, заснаваная (ультра)
:/biz/,/any/g/article/s/wheel/bucket/gic: non-line based *N* : / Бізнесу /, / любое / г / артыкулы / з / кола / вядро / ДПК: не-лінія, заснаваная * N *
---------------------------------------- ----------------------------------------
" Find fred before beginning search for joe "Знайсці Фрэд перад пачаткам пошуку для Джо
:/fred/;/joe/-2,/sid/+3s/sally/alley/gIC : / Fred /; / joe/-2, / SID / 3 / яна вылазку / алея / GIC
"---------------------------------------- "----------------------------------------
" create a new file for each line of file eg 1.txt,2.txt,3,txt etc
"Стварыць новы файл для кожнага радка ў файле, напрыклад 1.txt, 2.txt, 3, TXT і г.д.
:g/^/exe ".w ".line(".").".txt" : ". W". Г / ^ / EXE лініі (".").". TXT "
"---------------------------------------- "----------------------------------------
" chain an external command "Ланцугу знешняй каманды
:.g/^/ exe ".!sed 's/N/X/'" | s/I/Q/ *N* : Г / ^ / EXE "SED" S / N / X / '. "! | S / I / Q / * N *.
"---------------------------------------- "----------------------------------------
" Operate until string found *N* "Працаваць да радка, знойдзенай * N *
d/fred/ :delete until fred д / Фрэд /: выдаліць, пакуль Фрэд
y/fred/ :yank until fred г / Фрэду /: рывок, пакуль Фрэд
c/fred/e :change until fred end з / Фрэд / е: змены да канца Фрэд
"---------------------------------------- "----------------------------------------
" Summary of editing repeats *N* "Рэзюмэ рэдагавання паўтарае * N *
.. last edit (magic dot) апошнія змены (магія кропка)
:& last substitute : І апошнюю замену
:%& last substitute every line :% & Апошнюю замену кожнай радку
:%&gic last substitute every line confirm :% & ДПК апошнюю замену кожнай радку пацверджання
g% normal mode repeat last substitute г% нармальны рэжым паўтору апошнюю замену
g& last substitute on all lines г і апошнюю замену на ўсіх лініях
@@ last recording @ @ Апошняй запісу
@: last command-mode command @: Апошняя каманда ў рэжыме каманд
:!! :! last :! апошні! command каманда
:~ last substitute : ~ Апошнюю замену
:help repeating : Дапамога паўтаральныя
---------------------------------------- ----------------------------------------
" Summary of repeated searches "Рэзюмэ паўторных пошукаў
; last f, t, F or T, У мінулым F, T, F або Т
, last f, t, F or T in opposite direction Апошні F, T, F або Т ў зваротным кірунку
n last / or ? я апошні / ці? search пошук
N last / or ? N апошніх / ці? search in opposite direction пошук у зваротным кірунку
---------------------------------------- ----------------------------------------
" Absolutely essential "Абсалютна істотна
---------------------------------------- ----------------------------------------
* # g* g# : find word under cursor (<cword>) (forwards/backwards) * # Г * г #: знайсці слова пад курсорам (<cword>) (наперад / назад)
% : match brackets {}[]() %: Спалучаць дужкі {}[]()
.. : repeat last modification : Паўтор апошняй змены
@: : repeat last : command (then @@) @:: Паўтор апошняга: каманда (тады @ @)
matchit.vim : % now matches tags <tr><td><script> <?php etc matchit.vim:% у цяперашні час матчаў тэгі <tr> <td> <script> <PHP і г.д.?
<CN><CP> : word completion in insert mode <CN> <CP>: Завяршэнне слоў у рэжыме ўстаўкі
<CX><CL> : Line complete SUPER USEFUL <CX> <CL>: Лінія поўнай СУПЕР КАРЫСНЫЯ
/<CR><CW> : Pull <cword> onto search/command line / <CR> <CW>: Выцягніце <cword> на пошук / каманднага радка
/<CR><CA> : Pull <CWORD> onto search/command line / <CR> <CA>: Выцягніце <CWORD> на пошук / каманднага радка
:set ignorecase : you nearly always want this : Усталяваць IGNORECASE: вы амаль заўсёды хочам, каб гэтая
:set smartcase : overrides ignorecase if uppercase used in search string (cool) : Усталяваць SmartCase:
адмяняе IGNORECASE калі верхні рэгістр выкарыстоўваецца ў радку пошуку (халодны)
:syntax on : colour syntax in Perl,HTML,PHP etc : Сінтаксіс: каляровы сінтаксіс Perl, HTML, PHP і г.д.
:set syntax=perl : force syntax (usually taken from file extension) : Усталяваць сінтаксіс Perl =:
сіла сінтаксісу (як правіла, ўзятыя з пашырэнне файла)
:h regexp<CD> : type control-D and get a list all help topics containing :
Ч рэгулярных выразаў <CD>: тып кіравання-D і атрымаць спіс усіх пра даведку якія змяшчаюць
regexp (plus use TAB to Step thru list) рэгулярны выраз (плюс выкарыстанне TAB для пераходу па спісе)
---------------------------------------- ----------------------------------------
" MAKE IT EASY TO UPDATE/RELOAD _vimrc "Зрабіць гэта лёгка абнавіць / RELOAD _vimrc
:nmap,s :source $VIM/_vimrc : Nmap, з: крыніца $ VIM / _vimrc
:nmap,v :e $VIM/_vimrc : Nmap, г: е $ VIM / _vimrc
:e $MYVIMRC : edits your _vimrc whereever it might be *N* : Е $ MYVIMRC: вашы праўкі _vimrc ўсюды, дзе гэта можа быць * N *
" How to have a variant in your.vimrc for different PCs *N* "Як мець варыянт у вашым. Vimrc для розных кампутараў * N *
if $COMPUTERNAME == "NEWPC" калі $ COMPUTERNAME == "NEWPC"
ab mypc vista А. Б. MyPC перспектывы
else яшчэ
ab mypc dell25 А. Б. MyPC dell25
endif ENDIF
---------------------------------------- ----------------------------------------
" splitting windows "Вокны расшчаплення
:vsplit other.php # vertically split current file with other.php *N* : Vsplit other.php # вертыкальна падзелены бягучы файл з other.php * N *
---------------------------------------- ----------------------------------------
"VISUAL MODE (easy to add other HTML Tags) "Візуальным рэжыме (лёгка дадаць іншыя HTML-тэгі)
:vmap sb "zdi<b><CR>z</b><ESC> : wrap <b></b> around VISUALLY selected Text : Vmap СА "zdi <b> <CR> г </ B> <ESC>:
абгарнуць <b> </ B> вакол Візуальна абранага тэксту
:vmap st "zdi<?= <CR>z ?><ESC> : wrap <?= ?> around VISUALLY selected Text : Vmap й "zdi <ESC> <= <CR> г?>: <? =>
Абгарнуць вакол Візуальна абранага тэксту
---------------------------------------- ----------------------------------------
"vim 7 tabs "Вім 7 ўкладак
vim -p fred.php joe.php : open files in tabs Вім-р fred.php joe.php: адкрытых файлаў ва ўкладках
:tabe fred.php : open fred.php in a new tab : Табе fred.php: адкрытыя fred.php ў новай укладцы
:tab ball : tab open files : Укладка мячом: ўкладкі адкрытых файлаў
" vim 7 forcing use of tabs from.vimrc "Вім 7 прымушаючы выкарыстання ўкладак з. Vimrc
:nnoremap gf <CW>gf : Nnoremap GF <CW> GF
:cab e tabe : Кабіна электроннай табе
:tab sball : retab all files in buffer (repair) *N* : Укладка sball: retab ўсе файлы ў буфер (рамонт) * N *
---------------------------------------- ----------------------------------------
" Exploring «Вывучэнне
:e. : А. : file explorer : Файлавы мэнэджар
:Exp(lore) : file explorer note capital Ex : Exp (веды): файлавы мэнэджар адзначыць капіталу Ex
:Sex(plore) : file explorer in split window : Пол (Plore): файлавы мэнэджар у падзеленым акне
:browse e : windows style browser : Праглядаць е: вокны стылі браўзэра
:ls : list of buffers : LS: спіс буфераў
:cd.. : CD.. : move to parent directory : Перайсці ў бацькоўскую дырэкторыю
:args : list of files : Аргументы: спіс файлаў
:args *.php : open list of files (you need this!) : Аргументы *. PHP: адкрыць спіс файлаў (вам трэба гэта!)
:lcd %:p:h : change to directory of current file : LCD%: р: ч: змены ў каталог бягучага файла
:autocmd BufEnter * lcd %:p:h : change to directory of current file automatically (put in _vimrc) :
Autocmd BufEnter * LCD%: р: ч: змены ў каталог бягучага файла аўтаматычна (пакласці ў _vimrc)
---------------------------------------- ----------------------------------------
" Changing Case "Змена справа
guu : lowercase line ГУУ: малыя лініі
gUU : uppercase line ГУУ: вялікія лініі
Vu : lowercase line Ву: малыя лініі
VU : uppercase line В.У.: вялікія лініі
g~~ : flip case line г ~ ~: лініі адлюстравання выпадку
vEU : Upper Case Word ВЭУ: Верхні Слова Справа
vE~ : Flip Case Word Ve ~: Пераварот Слова Справа
ggguG : lowercase entire file ggguG: малыя ўвесь файл
" Titlise Visually Selected Text (map for.vimrc) "Titlise Візуальна вылучаны тэкст (карты. Vimrc)
vmap,c :s/\<\(.\)\(\k*\)\>/\u\1\L\2/g<CR> vmap, з: з / \ <(. \) \ \ (\ да * \) \> / \ і \ 1 \ L \ 2 / г <CR>
" Title Case A Line Or Selection (better) "Назва Справа радкі або абранай вобласці (лепш)
vnoremap <F6> :s/\%V\<\(\w\)\(\w*\)\>/\u\1\L\2/ge<cr> *N* vnoremap <F6>: з / \% V \ <\ (\ ш \) \ (\ ш * \) \> / \ і \ 1 \ L \ 2/ge <cr> * N *
" titlise a line "Titlise лініі
nmap,t :s/.*/\L&/<bar>:s/\<./\u&/g<cr> *N* Nmap, т: з /.* / \ L & / <bar>. С / \ </ \ і & / г <cr> * N *
" Uppercase first letter of sentences "Верхні рэгістр першыя літары прапаноў
:%s/[.!?]\_s\+\a/\U&\E/g :% S. /[.!?] \ _s \ + \ / \ U & \ E / г
---------------------------------------- ----------------------------------------
gf : open file name under cursor (SUPER) Джанкарло Фізікелла: адкрытае імя файла пад курсорам (СУПЕР)
:nnoremap gF :view <cfile><cr> : open file under cursor, create if necessary : Nnoremap Джанкарло Фізікелла:
погляд <cfile> <cr>: адкрыць файл пад курсорам, ствараць пры неабходнасці
ga : display hex,ascii value of char under cursor Г. А.: дысплей шаснаццатковым, ASCII значэнне знака пад курсорам
ggVGg? ggVGg? : rot13 whole file : Rot13 ўвесь файл
ggg?G : rot13 whole file (quicker for large file) GGG G:? Rot13 ўвесь файл (хутчэй для вялікіх файлаў)
:8 | normal VGg? : 8 | нармальнай VGG? : rot13 from line 8 : Rot13 ад лініі 8
:normal 10GVGg? : Нармальны 10GVGg? : rot13 from line 8 : Rot13 ад лініі 8
<CA>,<CX> : increment,decrement number under cursor <CA>, <CX>: Павялічваць, памяншаць лік пад курсорам
win32 users must remap CNTRL-A win32 карыстальнікі павінны перапрызначыць CNTRL-
<CR>=5*5 : insert 25 into text (mini-calculator) <CR> = 5 * 5: ўставіць у тэкст 25 (міні-калькулятар)
---------------------------------------- ----------------------------------------
" Make all other tips superfluous "Зрабіць ўсе іншыя парады лішняга
:h 42 : also http://www.google.com/search?q=42 : Ч 42: таксама http://www.google.com/search?q=42
:h holy-grail : Ч святы Грааль
:h! : Ч!
---------------------------------------- ----------------------------------------
" disguise text (watch out) *N* "Схаваць тэкст (будзьце ўважлівыя) * N *
ggVGg? ggVGg? : rot13 whole file (toggles) : Rot13 ўвесь файл (пераключэнне)
:set rl! : Усталяваць RL! : reverse lines right to left (toggles) : Зваротны лініі справа налева (перамыкаецца)
:g/^/m0 : reverse lines top to bottom (toggles) : Г / ^ / m0: зваротнай лініі зверху ўніз (перамыкаецца)
---------------------------------------- ----------------------------------------
" Markers & moving about "Маркеры і перасоўвацца
'. ». : jump to last modification line (SUPER) : Пераход да апошняй радку мадыфікацыі (СУПЕР)
`. `. : jump to exact spot in last modification line : Пераход на дакладнае месца ў апошняй радку мадыфікацыі
g; : cycle thru recent changes (oldest first) г;: цыкл праз апошнія змены (спачатку старыя)
g, : reverse direction г,: зваротным кірунку
:changes : Змены
:h changelist : help for above : Ч спіс змен: дапамога вышэй
<CO> : retrace your movements in file (starting from most recent) <CO>: Паўтарыць Ваш рухаў у файл (пачынаючы з апошняга)
<CI> : retrace your movements in file (reverse direction) <CI>: Паўтарыць Ваш рухаў у файл (у зваротным напрамку)
:ju(mps) : list of your movements : Дзю (м): спіс вашых рухаў
:help jump-motions : Дапамога скакаць-руху
:history : list of all your commands : Гісторыя: спіс усіх каманд
:his c : commandline history : Яго з: камандная гісторыі
:his s : search history : Яго з: гісторыя пошуку
q/ : Search history Window (puts you in full edit mode) (exit CTRL-C) д /:
Гісторыя пошуку Window (ставіць вас у поўным рэжыме рэдагавання) (з'езд CTRL-C)
q: : commandline history Window (puts you in full edit mode) (exit CTRL-C) д::
Акно каманднага радка гісторыі (ставіць вас у поўным рэжыме рэдагавання) (з'езд CTRL-C)
:<CF> : history Window (exit CTRL-C) : <CF>: Гісторыя Window (выхад CTRL-C)
---------------------------------------- ----------------------------------------
" Abbreviations & Maps "Скарачэнні і карт
" Following 4 maps enable text transfer between VIM sessions "Гэтыя 4 карты дазваляюць тэкст перадачы паміж сесіямі VIM
:map <f7> :'a,'bw! : Карта <f7>: ',' масы цела! c:/aaa/x : save text to file x C: / AAA / х: Захаваць тэкст у файл х
:map <f8> :rc:/aaa/x : retrieve text : Карта <f8>: KK: / AAA / х: атрымаць тэкст
:map <f11> :.w! : Карта <f11>. W! c:/aaa/xr<CR> : store current line C: / AAA / XR <CR>: захаванне бягучай радкі
:map <f12> :rc:/aaa/xr<CR> : retrieve current line : Карта <f12>: KK: / AAA / XR <CR>: атрымаць бягучую радок
:ab php : list of abbreviations beginning php : А. Б. PHP: спіс скарачэнняў пачатку PHP
:map, : list of maps beginning, : Карта,: спіс пачатку карты,
" allow use of F10 for mapping (win32) "Дазваляюць выкарыстоўваць F10 для адлюстравання (win32)
set wak=no : :h winaltkeys набор ВАК = няма:: г winaltkeys
" For use in Maps "Для выкарыстання ў картах
<CR> : carriage Return for maps <CR>: Зварот карэткі для карт
<ESC> : Escape <ESC>: Escape
<LEADER> : normally \ <leader>: Нармальна \
<BAR> : | pipe <bar>: | Трубы
<BACKSPACE> : backspace <BACKSPACE>: Забой
<SILENT> : No hanging shell window <SILENT>: Няма вісіць акно абалонкі
#display RGB colour under the cursor eg #445588 # Дысплэй RGB колер пад курсорам напрыклад, # 445588
:nmap <leader>c :hi Normal guibg=#<cr>=expand("<cword>")<cr><cr> : Птар <leader> з:
прывітанне Нармальная guibg = # <cr> = разгарнуць ("<cword>") <cr> <cr>
map <f2> /price only\\|versus/ :in a map need to backslash the \ Карта <f2> / цана толькі \ \ |
па параўнанні з /: у карце неабходна зваротны слэш \
# type table,,, to get <table></table> ### Cool ### # Таблічнага тыпу,,,, каб атрымаць <table> </ TABLE> # # # Cool # # #
imap,,, <esc>bdwa<<esc>pa><cr></<esc>pa><esc>kA IMAP,,, <esc> bdwa <<esc> ра> <cr> </ <esc> ра> <esc> ка
---------------------------------------- ----------------------------------------
" Simple PHP debugging display all variables yanked into register a "Простая адладка PHP адлюстравання ўсіх зменных тузануў ў рэгістр
iab phpdb exit("<hr>Debug <CR>a "); IAB phpdb выхаду ("<hr> Debug <CR>");
---------------------------------------- ----------------------------------------
" Using a register as a map (preload registers in.vimrc) "Выкарыстанне зарэгістравацца ў якасці карты (папярэдняя загрузка рэгістраў. Vimrc)
:let @m=":'a,'bs/" : Хай @ т = ":", "BS /"
:let @s=":%!sort -u" : Хай @ S =":%! роду-У "
---------------------------------------- ----------------------------------------
" Useful tricks "Карысныя трукі
"ayy@a : execute "Vim command" in a text file "Ауу @: выканаць" каманду Vim "ў тэкставы файл
yy@" : same thing using unnamed register уу @ ": тое ж самае, выкарыстоўваючы безназоўны рэгістр
u@. U @. : execute command JUST typed in : Выканаць каманду толькі што ўвялі ў
"ddw : store what you delete in register d *N* "DDW: захоўваць тое, што вы выдаліце ў рэестры д * N *
"ccaw : store what you change in register c *N* "CCAW: захоўваць тое, што вы зменіце ў рэгістры з * N *
---------------------------------------- ----------------------------------------
" Get output from other commands (requires external programs) "Атрымаць выхад з іншых каманд (патрабуе знешніх праграм)
:r!ls -R : reads in output of ls : R! LS-R: у прыватнасці, гаворыцца выхад Ls
:put=glob('**') : same as above *N* : Пакласці шарык = ('**'): тое ж самае, што і вышэй * N *
:r !grep "^ebay" file.txt : grepping in content *N* : Г GREP "^ Ebay" file.txt: grepping па змесце * N *
:20,25 !rot13 : rot13 lines 20 to 25 *N* : 20,25 rot13: rot13 ліній ад 20 да 25 * N *
!!date : same thing (but replaces/filters current line) ! Дата: тое ж самае (але замяняе / фільтры бягучай радкі)
" Sorting with external sort "Сартаванне з вонкавага сартавання
:%!sort -u : use an external program to filter content :% Сартавання і:! Выкарыстоўваць вонкавыя праграмы для фільтрацыі ўтрымання
:'a,'b!sort -u : use an external program to filter content : ',' B! сартавання і: выкарыстоўваць знешнія праграмы для фільтрацыі ўтрымання
!1} sort -u : sorts paragraph (note normal mode!!) ! 1} сартавання і: віды пункта (звернеце ўвагу звычайным рэжыме!)
:g/^$/;/^$/-1!sort : Sort each block (note the crucial ;) : Г /^$/;/^$/- 1 гатунак:
Сартаваць кожнага блока (звернеце ўвагу на вырашальнае значэнне;)!
" Sorting with internal sort "Сартаванне з унутранага роду
:sort /.*\%2v/ : sort all lines on second column *N* : Сартаванне /.* \% 2v /: адсартаваць усе лініі на другую калонку * N *
" number lines (linux or cygwin only) "Колькасць ліній (Linux ці Cygwin толькі)
:new | r!nl # *N* : Новыя | r! п # * N *
---------------------------------------- ----------------------------------------
" Multiple Files Management (Essential) "Некалькі кіравання файламі (асноўныя)
:bn : goto next buffer : Ьп: перайсці наступнага буфера
:bp : goto previous buffer : BP: перайсці папярэдні буфер
:wn : save file and move to next (super) : Ш: захаваць файл і перайсці да наступнага (супер)
:wp : save file and move to previous : WP: захаваць файл і перайсці да папярэдняга
:bd : remove file from buffer list (super) : BD: выдаліць файл з спісу буфераў (супер)
:bun : Buffer unload (remove window but not from list) : Булачка: буфер выгрузіць (выдаліць акно, але не з спісу)
:badd file.c : file from buffer list : Бадзі file.c: файл з спісу буфераў
:b3 : go to buffer 3 *C* : B3: пайсці ў буфер 3 * C *
:b main : go to buffer with main in name eg main.c (ultra) : Б галоўная: пайсці ў буферы з асноўным у імя напрыклад main.c (ультра)
:sav php.html : Save current file as php.html and "move" to php.html : SAV php.html: Захаваць бягучы файл як php.html і "рухацца" да php.html
:sav! : SAV! %<.bak : Save Current file to alternative extension (old way) % <Бак. Захаваць бягучы файл альтэрнатыўныя пашырэння (старым)
:sav! : SAV! %:r.cfm : Save Current file to alternative extension %: R.cfm: Захаваць бягучы файл альтэрнатыўныя пашырэння
:sav %:s/fred/joe/ : do a substitute on file name : SAV%: з / Фрэд / Joe /: зрабіць замену на імя файла
:sav %:s/fred/joe/:r.bak2 : do a substitute on file name & ext. : SAV%: з / Фрэд / Joe /: r.bak2: зрабіць замену на імя файла і доб.
:!mv % %:r.bak : rename current file (DOS use Rename or DEL) : М. В.%%: r.bak:
перайменаваць бягучы файл (DOS выкарыстоўваць Пераназваць ці DEL)
:help filename-modifiers : Дапамажыце файла-мадыфікатары
:e! : E! : return to unmodified file : Зварот у немадыфікаваных файлаў
:wc:/aaa/% : save file elsewhere : Туалет: / AAA /%: захаваць файл у іншым месцы
:e # : edit alternative file (also cntrl-^) : Е #: змяніць альтэрнатыўны файл (таксама CNTRL-^)
:rew : return to beginning of edited files list (:args) : REW: вяртання да пачатку адрэдагаваны спіс файлаў (: аргументы)
:brew : buffer rewind : Заварыць: буфер таму
:sp fred.txt : open fred.txt into a split : С. П. fred.txt: адкрытыя fred.txt ў раскол
:sball,:sb : Split all buffers (super) : Sball,: SB: Спліт ўсе буферы (супер)
:scrollbind : in each split window : Scrollbind: у кожным падзеленым акне
:map <F5> :ls<CR>:e # : Pressing F5 lists all buffer, just type number : Карта <F5>: Ls <CR>: е #:
Націск F5 пералічаныя ўсе буфера, проста набярыце нумар
:set hidden : Allows to change buffer w/o saving current buffer : Набор утоеных: Дазваляе змяніць буфера без эканоміі бягучага буфера
---------------------------------------- ----------------------------------------
" Quick jumping between splits "Хуткія скачкі паміж расколаў
map <CJ> <CW>j<CW>_ Карта <CJ> <CW> ў <CW> _
map <CK> <CW>k<CW>_ Карта <CK> <CW> да <CW> _
---------------------------------------- ----------------------------------------
" Recording (BEST TIP of ALL) "Запіс (лепшы савет з усіх)
qq # record to q QQ # запіс у д
your complex series of commands Вашай складанай паслядоўнасці каманд
q # end recording д # канец запісу
@q to execute @ Д выканаць
@@ to Repeat @ @ Паўтарыць
5@@ to Repeat 5 times 5 @ @ Паўтарыць 5 разоў
qQ@qq : Make an existing recording q recursive *N* QQ @ QQ: Зрабіць існуючыя запісы д рэкурсіўнай * N *
" editing a register/recording "Рэдагаванне зарэгістравацца / запісу
"qp :display contents of register q (normal mode) "QP: дысплей змесціва рэгістра д (нармальны рэжым)
<ctrl-R>q :display contents of register q (insert mode) <ctrl-R> д: адлюстраванне змесціва рэгістра Q (рэжым ўстаўкі)
" you can now see recording contents, edit as required "Вы можаце ўбачыць змесціва запісу, рэдагаваць па меры неабходнасці
"qdd :put changed contacts back into q "Qdd: пакласці змененыя кантакты назад у д
@q :execute recording/register q @ Q: выкананне запісу / рэгістрацыі д
" Operating a Recording on a Visual BLOCK "Аперацыйная Запіс на Візуальны БЛОК
1) define recording/register 1) вызначаюць запісу / рэгістрацыі
qq:s/ to/ from/g^Mq QQ: п / к / з / г ^ Mq
2) Define Visual BLOCK 2) Вызначыць Візуальны БЛОК
V} V}
3) hit : and the following appears 3) ўдар, і на дысплеі з'явіцца наступнае
:'<,'> :'<,'>
4)Complete as follows 4) Поўнае наступным
:'<,'>norm @q :'<,'> Нормай @ д
---------------------------------------- ----------------------------------------
"combining a recording with a map (to end up in command mode) "Спалучэнне запісы з карты (у канчатковым выніку ў камандным рэжыме)
"here we operate on a file with a recording, then move to the next file *N*
"Тут мы працуем на файл з запісам, а затым перайсці да наступнага файла * N *
:nnoremap ] @q:update<bar>bd : Nnoremap] @ д: абнаўленне <bar> BD
---------------------------------------- ----------------------------------------
" Visual is the newest and usually the most intuitive editing mode "Візуальная з'яўляецца самым новым і звычайна найбольш інтуітыўна зразумелы рэжым рэдагавання
" Visual basics "Візуальная асновы
v : enter visual mode У: увайсці ў рэжым візуальнага
V : visual mode whole line V: візуальны рэжым ўсёй лініі
<CV> : enter VISUAL BLOCK mode <CV>: Увядзіце Візуальны рэжым БЛОК
gv : reselect last visual area (ultra) Г. В.: паўторны апошняй галіне візуальных (ультра)
o : navigate visual area аб: рух візуальнай вобласці
"*y or "+y : yank visual area into paste buffer *C* "* У або" + у: тузаць візуальнай вобласці ў буфер пасты * C *
V% : visualise what you match V%: візуалізаваць тое, што вы падыходзьце
V}J : Join Visual block (great) V} J: Рэгістрацыя Візуальны блок (вялікі)
V}gJ : Join Visual block w/o adding spaces V} GJ: Рэгістрацыя Візуальны блок без дадання прасторы
`[v`] : Highlight last insert `[V`]: Вылучыце апошняй ўстаўкі
:%s/\%Vold/new/g : Do a substitute on last visual area *N* :% З / \% Волд / новыя / г: Ці ёсць замена на апошняй візуальнай вобласці * N *
---------------------------------------- ----------------------------------------
" Delete first 2 characters of 10 successive lines "Выдаліць першыя 2 знака з 10 паслядоўных ліній
0<cv>10j2ld (use Control Q on win32) *C* 0 <cv> 10j2ld (выкарыстанне кіравання Q на win32) * C *
---------------------------------------- ----------------------------------------
" how to copy a set of columns using VISUAL BLOCK "Як скапіяваць набор слупкоў з дапамогай Visual БЛОК
" visual block (AKA columnwise selection) (NOT BY ordinary v command) "Візуальны блок (AKA слупках выбар) (НЕ ПА звычайныя каманды ў)
<CV> then select "column(s)" with motion commands (win32 <CQ>) <CV> Затым абярыце "слупок (ы)" з рухам каманд (win32 <CQ>)
then c,d,y,r etc Затым у, г, к, г і г.д.
---------------------------------------- ----------------------------------------
" how to overwrite a visual-block of text with another such block *C* "Як перазапісаць візуальна-тэкставага блока з іншай такой блок * C *
" move with hjkl etc "Рухацца з hjkl г.д.
Pick the first block: ctrl-v move y Абярыце першы блок: Ctrl-V рухацца ў
Pick the second block: ctrl-v move P <esc> Абярыце другі блок: Ctrl-V рухацца P <esc>
---------------------------------------- ----------------------------------------
" text objects :h text-objects *C* "Тэкставыя аб'екты: г тэкставых аб'ектаў * C *
daW : delete contiguous non whitespace каўку: выдаліць сумежных без прабелаў
di< yi< ci< : Delete/Yank/Change HTML tag contents ды <ух <з <: Выдаліць / янкі / Змяніць HTML-змесціва тэга
da< ya< ca< : Delete/Yank/Change whole HTML tag ды <я <CA <: Выдаліць / янкі / Змяніць ўсе тэгі HTML
dat dit : Delete HTML tag pair DAT дит: выдаліць тэгі HTML пары
diB daB : Empty a function {} Диб DAB: Пусты функцыя {}
das : delete a sentence дас: выдаліць прапанову
---------------------------------------- ----------------------------------------
" _vimrc essentials "_vimrc Неабходнасці
:set incsearch : jumps to search word as you type (annoying but excellent) :
Усталяваць IncSearch: скачкі для пошуку словы па меры ўводу (раздражняе, але выдатна)
:set wildignore=*.o,*.obj,*.bak,*.exe : tab complete now ignores these :
Усталяваць wildignore =*. о, *. OBJ, *. Бака, *. EXE: ўкладка поўны цяпер ігнаруе гэтыя
:set shiftwidth=3 : for shift/tabbing : Усталяваць shiftwidth = 3: для змены / табуляцыі
:set vb t_vb=". : set silent (no beep) : Усталяваць VB t_vb = ":. Набору маўчанне (адсутнасць гукавы сігнал)
:set browsedir=buffer : Maki GUI File Open use current directory :
Усталяваць browsedir = буфера: Макі GUI адкрыцця файла выкарыстоўваецца бягучы каталог
---------------------------------------- ----------------------------------------
" launching Win IE "Запускае Win IE
:nmap,f :update<CR>:silent !start c:\progra~1\intern~1\iexplore.exe file://%:p<CR> :
Nmap, F: абнаўленне <CR>: ціхі старт! C: \ PROGRA ~ 1 \ стажор ~ 1 \ iexplore.exe файл ://%: р <CR>
:nmap,i :update<CR>: !start c:\progra~1\intern~1\iexplore.exe <cWORD><CR> : Nmap, я:
абнаўленне <CR>: пачаць C: \ PROGRA ~ 1 \ стажор ~ 1 \ iexplore.exe <cWORD> <CR>
---------------------------------------- ----------------------------------------
" FTPing from VIM "FTPing ад VIM
cmap,r :Nread ftp://209.51.134.122/public_html/index.html CMAP, г: Nread ftp://209.51.134.122/public_html/index.html
cmap,w :Nwrite ftp://209.51.134.122/public_html/index.html CMAP, ш: Nwrite ftp://209.51.134.122/public_html/index.html
gvim ftp://www.somedomain.com/index.html # uses netrw.vim Gvim ftp://www.somedomain.com/index.html # выкарыстоўвае netrw.vim
---------------------------------------- ----------------------------------------
" appending to registers (use CAPITAL) "Даданнем да рэгістраў (выкарыстанне капіталу)
" yank 5 lines into "a" then add a further 5 "Тузаць 5 радкоў у" ", а затым дадаць яшчэ 5
"a5yy "A5yy
10j 10j
"A5yy "A5yy
---------------------------------------- ----------------------------------------
[I : show lines matching word under cursor <cword> (super) [I: паказваць радкі, якія супадаюць слова пад курсорам <cword> (супер)
---------------------------------------- ----------------------------------------
" Conventional Shifting/Indenting "Звычайныя Зрух / Водступы
:'a,'b>> : ',' Б>>
" visual shifting (builtin-repeat) "Візуальны зрух (убудаваныя-паўтор)
:vnoremap < <gv : Vnoremap <<В.
:vnoremap > >gv : Vnoremap>> В.
" Block shifting (magic) "Блок зрушэння (магія)
>i{ > Я {
>a{ > {
" also »Таксама
>% and <% >% І <%
---------------------------------------- ----------------------------------------
" Redirection & Paste register * "Перанакіраванне & Уставіць рэгістрацыі *
:redir @* : redirect commands to paste buffer : Перасылак @ *: перанакіраваць каманды для ўстаўкі буфера
:redir END : end redirect : Перасылак END: канца перасылак
:redir >> out.txt : redirect to a file : Перасылак>> out.txt: перанакіраванне на файл
" Working with Paste buffer "Праца з буферам ўстаўкі
"*yy : yank curent line to paste "* YY: тузаць Бягучы лініі для ўстаўкі
"*p : insert from paste buffer "* Р: ўстаўкі з буфера пасты
" yank to paste buffer (ex mode) "Тузаць, каб ўставіць буфер (былы рэжым)
:'a,'by* : Yank range into paste : ',' На *: капіюе дыяпазон у пасту
:%y* : Yank whole buffer into paste :% У *: капіюе ўсё змесціва буфера ў пасту
:.y* : Yank Current line to paster :. У *: капіюе бягучую радок у Пастэр
" filter non-printable characters from the paste buffer "Фільтр непечатаемых знакаў з пасты буфер
" useful when pasting from some gui application "Карысным пры ўстаўцы з некаторых прыкладанняў з графічным інтэрфейсам
:nmap <leader>p :let @* = substitute(@*,'[^[:print:]]','','g')<cr>"*p :
Птар <leader> р: хай @ * = замяніць (@*,'[^[: друку :]]','',' д ') <cr> "* р
---------------------------------------- ----------------------------------------
" Re-Formatting text "Паўторнае фарматаванне тэксту
gq} : Format a paragraph GQ}: Фармат пункта
gqap : Format a paragraph gqap: Фармат пункта
ggVGgq : Reformat entire file ggVGgq: перафарматаваць ўвесь файл
Vgq : current line Vgq: бягучую радок
" break lines at 70 chars, if possible after a ; "Разрыў лініі на 70 сімвалаў, калі гэта магчыма пасьля;
:s/.\{,69\};\s*\|.\{,69\}\s\+/&\r/g :.. З / \ {69 \}; \ з * \ | \ {69 \} \ з \ + / & \ г / г
---------------------------------------- ----------------------------------------
" Operate command over multiple files "Эксплуатацыя камандаванне над некалькімі файламі
:argdo %s/foo/bar/e : operate on all files in :args : / Argdo% з Foo / Bar / е: дзейнічаюць на ўсе файлы ў: аргументы
:bufdo %s/foo/bar/e : / Bufdo% з Foo / Bar / е
:windo %s/foo/bar/e : / Windo% з Foo / Bar / е
:argdo exe '%!sort'|w! : Argdo EXE '!% Рода' | w! : include an external command : Уключае знешнюю каманду
:bufdo exe "normal @q" | w : perform a recording on open files : Bufdo EXE "нармальнай @ д" | ш: выконваць запіс на адкрытыя файлы
:silent bufdo !zip proj.zip %:p : zip all current files :
Маўчаць bufdo паштовы proj.zip%: р: паштовы ўсе бягучыя файлы
---------------------------------------- ----------------------------------------
" Command line tricks "Трукі каманднага радка
gvim -h : help Gvim-ч: дапамога
ls | gvim - : edit a stream!! LS | Gvim -: рэдагаваць паток!
cat xx | gvim - -c "v/^\d\d\|^[3-9]/d " : filter a stream Кошка хх | Gvim - з "У / ^ \ D \ D \ | ^ [03/09] / д": фільтр паток
gvim -o file1 file2 : open into a horizontal split *C* Gvim-о file1 file2: адкрываюцца ў гарызантальнай раскол * C *
gvim -O file1 file2 : open into a vertical split *N* Gvim-O file1 file2: адкрыць у вертыкальнай раскол * N *
" execute one command after opening file "Выканаць адну каманду пасля адкрыцця файла
gvim.exe -c "/main" joe.c : Open joe.c & jump to "main" gvim.exe-с "/ галоўны" joe.c: Адкрытыя joe.c і перайсці да "асноўны"
" execute multiple command on a single file "Выканаць некалькі каманд на адзін файл
vim -c "%s/ABC/DEF/ge | update" file1.c Вім-з "% з / ABC / DEF / GE | абнавіць" file1.c
" execute multiple command on a group of files "Выканаць некалькі каманд на групу файлаў
vim -c "argdo %s/ABC/DEF/ge | update" *.c Вім-з "argdo% з / ABC / DEF / GE | абнаўлення" *. З
" remove blocks of text from a series of files "Выдаліць блокі тэксту з серыі файлаў
vim -c "argdo /begin/+1,/end/-1g/^/d | update" *.c Вім-з "argdo / пачатак / +1, / end/-1g / ^ / г | абнавіць" *. C
" Automate editing of a file (Ex commands in convert.vim) "Аўтаматызацыя рэдагавання файл (Ex каманды ў convert.vim)
vim -s "convert.vim" file.c Вім-х гадоў "convert.vim" file.c
#load VIM without.vimrc and plugins (clean VIM) # Нагрузка Вім без. Vimrc і ўбудоў (чысты VIM)
gvim -u NONE -U NONE -N Gvim-У-У NONE NONE-N
" Access paste buffer contents (put in a script/batch file) "Доступ пасты змесціва буфера (пакласці ў скрыпт / пакетнага файла)
gvim -c 'normal ggdG"*p' c:/aaa/xp Gvim-з "нармальнымі ggdG" * р 'C: / AAA / XP
" print paste contents to default printer "Друкаваць пасты змесціва друкарка па змаўчанні
gvim -c 's/^/\=@*/|hardcopy!|q!' Gvim-з 'з / ^ / \ =@*/| друкаваным |! Q!'
" gvim's use of external grep (win32 or *nix) "Gvim на выкарыстанне знешніх GREP (win32 ці * nix)
:!grep somestring *.php : creates a list of all matching files *C* : GREP SomeString *. PHP: стварае спіс усіх падыходных файлаў * C *
" use :cn(ext) :cp(rev) to navigate list "Выкарыстанні: сп (доб): пар (абарачэнняў) для навігацыі спіс
:h grep : Ч GREP
" Using vimgrep with copen *N* "Выкарыстанне vimgrep з Copen * N *
:vimgrep /keywords/ *.php : Vimgrep / ключавыя словы / *. PHP
:copen : Copen
---------------------------------------- ----------------------------------------
" GVIM Difference Function (Brilliant) "Розніца GVIM Function (Дыямент)
gvim -d file1 file2 : vimdiff (compare differences) Gvim-й file1 file2: vimdiff (параўнайце адрозненні)
dp : "put" difference under cursor to other file інш: "пакласці" Розніца пад курсорам на іншы файл
do : "get" difference under cursor from other file зрабіць: "атрымаць" Розніца пад курсорам з іншага файла
" complex diff parts of same file *N* "Складаных дэталяў розн. Аднаго і таго ж файла * N *
:1,2yank a | 7,8yank b : 1,2 тузаць | 7,8 тузаць б
:tabedit | put a | vnew | put b : Tabedit | пакласці | vnew | пакласці б
:windo diffthis : Windo diffthis
---------------------------------------- ----------------------------------------
" Vim traps "Вім пасткі
In regular expressions you must backslash + (match 1 or more) У рэгулярных выразах вы павінны зваротны слэш + (матч 1 або больш)
In regular expressions you must backslash | (or) У рэгулярных выразах вы павінны зваротны слэш | (або)
In regular expressions you must backslash ( (group) У рэгулярных выразах вы павінны зваротную касую рысу ((групы)
In regular expressions you must backslash { (count) У рэгулярных выразах вы павінны зваротную касую рысу {(коль-ць)
/fred\+/ : matches fred/freddy but not free / Fred \ + /: запалкі Фрэд / Фрэдзі, але не бясплатна
/\(fred\)\{2,3}/ : note what you have to break / \ (Фрэд \) \ {2,3} /: звернеце ўвагу, што вы павінны зламаць
---------------------------------------- ----------------------------------------
" \v or very magic (usually) reduces backslashing "\ У або вельмі магіі (як правіла) зніжае backslashing
/codes\(\n\|\s\)*where : normal regexp / Коды \ (\ п \ | \ S \) *, дзе: нармальны рэгулярных выразаў
/\vcodes(\n|\s)*where : very magic / \ Vcodes (\ п | \ с) *, дзе: вельмі магіі
---------------------------------------- ----------------------------------------
" pulling objects onto command/search line (SUPER) "Пацягнуўшы аб'ектаў на каманду / пошук радка (СУПЕР)
<CR><CW> : pull word under the cursor into a command line or search <CR> <CW>: Пацягніце слова пад курсорам у камандны радок або пошук
<CR><CA> : pull WORD under the cursor into a command line or search <CR> <CA>: Пацягніце слова пад курсорам у камандны радок або пошук
<CR>- : pull small register (also insert mode) <CR> -: Цягнуць невялікі зарэгіструйцеся (таксама рэжым ўстаўкі)
<CR>[0-9a-z] : pull named registers (also insert mode) <CR> [0-9A-Z]: пацягніце найменных рэгістраў (таксама рэжым ўстаўкі)
<CR>% : pull file name (also #) (also insert mode) <CR>%: Выцягнуць імя файла (таксама #) (таксама рэжым ўстаўкі)
<CR>=somevar : pull contents of a variable (eg :let sray="ray[0-9]") <CR> = Somevar:
выцягнуць змесціва зменнай (напрыклад: хай sray = "прамень [0-9]")
---------------------------------------- ----------------------------------------
" List your Registers "Спіс вашых рэгістры
:reg : display contents of all registers : Рэг: адлюстраванне змесціва ўсіх рэгістраў
:reg a : display content of register a : Рэг: адлюстраванне змесціва рэгістраў
:reg 12a : display content of registers 1,2 & a *N* : Рэг 12а: адлюстраванне змесціва рэгістраў ў 1,2 & * N *
"5p : retrieve 5th "ring" "5p: атрымаць пятую" кольца "
"1p.... : retrieve numeric registers one by one "1p....: атрымаць колькасную рэгістраў адзін за іншым
:let @y='yy@"' : pre-loading registers (put in.vimrc) : Хай у = @ 'YY @ "': папярэдняя загрузка рэгістраў (пакладзеце ў vimrc).
qqq : empty register "q" QQQ: пустыя рэгістр "д"
qaq : empty register "a" QAQ: пустыя рэгістр ""
:reg.-/%:*" : the seven special registers *N* : Рэг.-/%:*": сем спецыяльных рэгістрах * N *
:reg 0 : what you last yanked, not affected by a delete *N* : Рэг 0: тое, што вы ў апошні раз тузануў, не ўплываюць на выдаленне * N *
"_dd : Delete to blackhole register "_, don't affect any register *N* "_dd:
Выдаліць для чорных дзюр у рэгістр" _, не закранае якіх-небудзь рэгістр * N *
---------------------------------------- ----------------------------------------
" manipulating registers "Маніпуляванне рэгістрамі
:let @a=@_ : clear register a : Хай @ = @ _: празрысты рэгістр
:let @a="" : clear register a : Хай @ = "": празрысты рэгістр
:let @a=@" : Save unnamed register *N* : Хай @ = @ ": Захаваць безназоўны рэгістр * N *
:let @*=@a : copy register a to paste buffer : Хай @ *= @: копія рэгістрацыі, каб ўставіць буфер
:let @*=@: : copy last command to paste buffer : Хай *=@:: копія апошняй каманды для ўстаўкі буфера
:let @*=@/ : copy last search to paste buffer : Хай *=@/: копію апошняга пошуку, каб ўставіць буфер
:let @*=@% : copy current filename to paste buffer : Хай *=@%: капіраванне бягучага файла, каб ўставіць буфер
---------------------------------------- ----------------------------------------
" help for help (USE TAB) "Дапамога па дапамогу (АДЭ TAB)
:h quickref : VIM Quick Reference Sheet (ultra) : Ч quickref: Вім Кароткі даведнік Ліст (ультра)
:h tips : Vim's own Tips Help : Ч парады: уласныя парады дапамогуць у Vim
:h visual<CD><tab> : obtain list of all visual help topics : Ч візуальнага <CD> <tab>: атрымаць спіс усіх візуальных тым пра даведку
: Then use tab to step thru them : Затым з дапамогай ўкладкі для пераходу па іх
:h ctrl<CD> : list help of all control keys : Ч Ctrl <CD>: спіс дапамогай усіх кнопак кіравання
:helpg uganda : grep HELP Files use :cn, :cp to find next : Helpg Уганда: GREP Дапамога выкарыстання: сп: пар, каб знайсці наступны
:helpgrep edit.*director: grep help using regexp : Helpgrep рэдагаваць.* дырэктар: GREP дапамогу па выкарыстанні рэгулярных выразаў
:h :r : help for :ex command : Ч: г: дапамога: экс каманду
:h CTRL-R : normal mode : Ч CTRL-R: нармальны рэжым
:h /\r : what's \r in a regexp (matches a <CR>) : Ч / \ г: тое, што \ г у рэгулярных выразаў (адпавядае <CR>)
:h \\zs : double up backslash to find \zs in help : Ч \ \ ZS: падвоіць зваротную касую рысу, каб знайсці \ ZS ў дапамогу
:h i_CTRL-R : help for say <CR> in insert mode : Ч i_CTRL-R: дапамога кажуць <CR> ў рэжыме ўстаўкі
:h c_CTRL-R : help for say <CR> in command mode : Ч c_CTRL-R: дапамога кажуць <CR> ў камандным рэжыме
:h v_CTRL-V : visual mode : Ч v_CTRL-V: візуальным рэжыме
:h tutor : VIM Tutor : Ч Рэпетытар: Вім Tutor
<C-[>, <CT> : Move back & Forth in HELP History <C-[>, <CT>: Калі ласка, вярніцеся і Форт у гісторыі ДАПАМОГА
gvim -h : VIM Command Line Help Gvim-ч: Вім каманднага радка Даведка
:cabbrev h tab h : open help in a tab *N* : Cabbrev г ўкладку ч: адкрытая дапамогу ў закладцы * N *
---------------------------------------- ----------------------------------------
" where was an option set », Дзе была ўсталяваная опцыя
:scriptnames : list all plugins, _vimrcs loaded (super) : Scriptnames: спіс усіх убудоў, _vimrcs загрузкі (супер)
:verbose set history? : Падрабязны набор гісторыі? : reveals value of history and where set : Паказвае значэнне гісторыі і дзе мноства
:function : list functions : Функцыя: спіс функцый
:func SearchCompl : List particular function : Функцыі SearchCompl: Спіс канкрэтных функцый
---------------------------------------- ----------------------------------------
" making your own VIM help "Зрабіць свой уласны дапамогі VIM
:helptags /vim/vim64/doc : rebuild all *.txt help files in /doc :
Helptags / vim/vim64/doc: аднавіць усе файлы *. TXT дапамагчы ў / Дакументацыя
:help add-local-help : Дапамога дапаўненні мясцовага дапамагчы
---------------------------------------- ----------------------------------------
" running file thru an external program (eg php) "Беглы файл праз знешнюю праграму (напрыклад, PHP)
map <f9> :w<CR>:!c:/php/php.exe %<CR> Карта <f9>: ш <CR>: C: / PHP / php.exe% <CR>
map <f2> :w<CR>:!perl -c %<CR> Карта <f2>: ш <CR>: Perl-з% <CR>
---------------------------------------- ----------------------------------------
" capturing output of current script in a separate buffer "Захоп высновы бягучага скрыпту ў асобным буферы
:new | r!perl # : opens new buffer,read other buffer : Новыя | r! Perl #: адкрывае новы буфер, чытаць іншыя буфера
:new! : Новае! x.out | r!perl # : same with named file x.out | r! Perl #: тое ж самае з імем файла
:new+read!ls : Новых + чытаць Ls
---------------------------------------- ----------------------------------------
" create a new buffer, paste a register "q" into it, then sort new buffer "Стварыць новы буфер, устаўце рэгістр" д "у яе, а затым адсартаваць новы буфер
:new +put q|%!sort : Новых + адзначыць д |% роду
---------------------------------------- ----------------------------------------
" Inserting DOS Carriage Returns "Устаўка Вяртае DOS Перавозкі
:%s/$/\<CV><CM>&/g : that's what you type :% S / $ / \ <CV> <CM> & / г: вось, што вы ўводзіце
:%s/$/\<CQ><CM>&/g : for Win32 :% S / $ / \ <CQ> <CM> & / г: для Win32
:%s/$/\^M&/g : what you'll see where ^M is ONE character :% S / $ / \ ^ M & / г, што вы ўбачыце, дзе ^ M адзін сімвал
---------------------------------------- ----------------------------------------
" automatically delete trailing Dos-returns,whitespace "Выдаляць аўтаматычна замыкае Дос-вяртае, прабел
autocmd BufRead * silent! autocmd BufRead * маўчаць! %s/[\r \t]\+$// % С / [\ г \ т] \ + $ / /
autocmd BufEnter *.php :%s/[ \t\r]\+$//e autocmd BufEnter *. PHP:% S / [\ т \ т] \ + $ / / е
---------------------------------------- ----------------------------------------
" perform an action on a particular file or file type "Выконваць дзеянні на канкрэтны файл або тып файла
autocmd VimEnter c:/intranet/note011.txt normal! autocmd VimEnter C: / intranet/note011.txt нармальна! ggVGg? ggVGg?
autocmd FileType *.pl exec('set fileformats=unix') autocmd FileType *. пл Exec ('набор фарматаў файлаў UNIX =')
---------------------------------------- ----------------------------------------
" Retrieving last command line command for copy & pasting into text
"Атрыманне апошняй каманды каманднага радка для капіявання і ўстаўкі ў тэкст
i<cr>: я <cr>:
" Retrieving last Search Command for copy & pasting into text "Атрыманне апошняй каманды пошуку для капіявання і ўстаўкі ў тэкст
i<cr>/ я <cr> /
---------------------------------------- ----------------------------------------
" more completions «Больш папаўненняў
<CX><CF> :insert name of a file in current directory <CX> <CF>: Паглядзець і дадаць імя файла ў бягучым каталогу
---------------------------------------- ----------------------------------------
" Substituting a Visual area "Падстаўляючы Візуальны вобласці
" select visual area as usual (:h visual) then type :s/Emacs/Vim/ etc "Выберыце візуальнай вобласці, як звычайна (: г візуальны) ўвядзіце: з / Emacs / Vim / і г.д.
:'<,'>s/Emacs/Vim/g : REMEMBER you dont type the '<.'> :'<,'> З / Emacs / Vim / г: ПАМЯТАЕЦЕ Вы не тып'<.'>
gv : Re-select the previous visual area (ULTRA) Г. В.: Re-выбару папярэдняга візуальнага вобласць (ULTRA)
---------------------------------------- ----------------------------------------
" inserting line number into file "Устаўка нумары радкі ў файл
:g/^/exec "s/^/".strpart(line(".")." ", 0, 4) : Г / ^ / EXEC "з /^/". strpart (лінія (".")."", 0, 4)
:%s/^/\=strpart(line(".")." ", 0, 5) :% С / ^ / \ = strpart (лінія (".")." ", 0, 5)
:%s/^/\=line('.'). :% С / ^ / \ = радок ('.'). ' ' ''
---------------------------------------- ----------------------------------------
#numbering lines VIM way # Нумарацыі ліній Вім шляху
:set number : show line numbers : Усталяваць нумар: лічбы паказваюць лініі
:map <F12> :set number!<CR> : Show linenumbers flip-flop : Карта <F12>: пэўную колькасць <CR>: Паказаць linenumbers фліп-флоп
:%s/^/\=strpart(line('.')." ",0,&ts) :% С / ^ / \ = strpart (лінія ('.')." ", 0, & TS)
#numbering lines (need Perl on PC) starting from arbitrary number # Нумарацыя радкоў (неабходна Perl на ПК), пачынаючы з адвольным лікам
:'a,'b!perl -pne 'BEGIN{$a=223} substr($_,2,0)=$a++' : ',' B! Perl-PNE 'BEGIN {$ = 223} SUBSTR ($ _, 2,0) = $ + +'
#Produce a list of numbers # Прадукцыя спіс нумароў
#Type in number on line say 223 in an empty file # Калі ласка, увядзіце лік на лініі кажуць 223 у пусты файл
qqmnYP`n^Aq : in recording q repeat with @q qqmnYP `п ^ Aq: у запісу д паўтарыць з @ д
" increment existing numbers to end of file (type <ca> as 5 characters) "Павялічыць існуючыя нумары і да канца файла (тып <ca> як 5 сімвалаў)
:.,$g/^\d/exe "normal! \<ca>" :., $ Г / ^ \ д / EXE "! Нармальных \ <ca>"
" advanced incrementing "Прасунутыя павялічваючы
http://vim.sourceforge.net/tip_view.php?tip_id=150 http://vim.sourceforge.net/tip_view.php?tip_id=150
---------------------------------------- ----------------------------------------
" advanced incrementing (really useful) "Прасунутыя павялічваючы (на самай справе карысна)
" put following in _vimrc "Пакласці наступнае _vimrc
let g:I=0 Няхай G: Я = 0
function! функцыя! INC(increment) INC (павелічэнне)
let g:I =g:I + a:increment Няхай G: I = г: I +: прырашчэнне
return g:I вяртанне г: Я
endfunction EndFunction
" eg create list starting from 223 incrementing by 5 between markers a,b
"Напрыклад, стварыць спіс, пачынаючы з 223 павялічваецца на 5 паміж маркерамі, бы
:let I=223 : Хай Я = 223
:'a,'bs/^/\=INC(5)/ : ',' BS / ^ / \ = МКП (5) /
" create a map for INC "Стварыць карту для МКП
cab viminc :let I=223 \| 'a,'bs/$/\=INC(5)/ Кабіна viminc: хай Я = 223 \ | ',' BS / $ / \ = МКП (5) /
---------------------------------------- ----------------------------------------
" generate a list of numbers 23-64 "Генераваць спіс нумароў 23-64
o23<ESC>qqYp<CA>q40@q O23 <ESC> qqYp <CA> Q40 @ д
---------------------------------------- ----------------------------------------
" editing/moving within current insert (Really useful) "Рэдагаванне / перасоўванне ў межах бягучай ўстаўкі (Really карысна)
<CU> : delete all entered <CU>: Выдаліць усе ўведзеныя
<CW> : delete last word <CW>: Выдаліць апошняе слова
<HOME><END> : beginning/end of line <Home> <END>: Пачатак / канец радка
<C-LEFTARROW><C-RIGHTARROW> : jump one word backwards/forwards <C-LEFTARROW> <C-RIGHTARROW>: Скачок адно слова назад / наперад
<CX><CE>,<CX><CY> : scroll while staying put in insert <CX> <ce>, <CX> <CY>: Прагортка падчас знаходжання пакласці ў ўстаўкі
---------------------------------------- ----------------------------------------
#encryption (use with care: DON'T FORGET your KEY) # Шыфраванне (выкарыстоўвайце асцярожна: не забывайце ваш KEY)
:X : you will be prompted for a key : X: Вам будзе прапанавана ўвесці ключ
:h :X : Ч: X
---------------------------------------- ----------------------------------------
" modeline (make a file readonly etc) must be in first/last 5 lines "Рэжымнай (зрабіць толькі для чытання файла і г.д.) павінны быць у першыя / апошнія 5 радкоў
// vim:noai:ts=2:sw=4:readonly: / / Vim: noai: TS = 2: SW = 4: толькі для чытання:
" vim:ft=html: : says use HTML Syntax highlighting "Vim: П = HTML:: кажа выкарыстаць HTML падсвятлення сінтаксісу
:h modeline : Ч рэжымнай
---------------------------------------- ----------------------------------------
" Creating your own GUI Toolbar entry "Стварэнне ўласнай панэлі інструментаў GUI ўступлення
amenu Modeline.Insert\ a\ VIM\ modeline <Esc><Esc>ggOvim:ff=unix ts=4 ss=4
<CR>vim60:fdm=marker<esc>gg AMENU Modeline.Insert \ \ VIM \ рэжымнай <Esc> <Esc> ggOvim: FF = UNIX ц = 4 сс = 4 <CR> vim60: FDM = маркер <esc> гг
---------------------------------------- ----------------------------------------
" A function to save word under cursor to a file "Функцыя для захавання слова пад курсорам у файл
function! функцыя! SaveWord() SaveWord ()
normal yiw нармальныя YIW
exe ':!echo '.@0.' EXE.. ': рэха' @ 0 ' >> word.txt' >> Word.txt '
endfunction EndFunction
map,p :call SaveWord() Карта, р: тэлефануйце SaveWord ()
---------------------------------------- ----------------------------------------
" function to delete duplicate lines ", Каб выдаліць паўторныя радкі
function! функцыя! Del() Дэль ()
if getline(".") == getline(line(".") - 1) калі GetLine (".") == GetLine (лінія (".") - 1)
norm dd нормай дд
endif ENDIF
endfunction EndFunction
:g/^/ call Del() : Г / ^ / выклік Дэль ()
---------------------------------------- ----------------------------------------
" Digraphs (non alpha-numerics) "Орграфов (не літарна-лікавыя)
:digraphs : display table : Орграфов: адлюстраванне табліцы
:h dig : help : Ч капаць: дапамога
i<CK>e' : enters é я <CK> е ': ўваходзіць é
i<CV>233 : enters é (Unix) я <CV> 233: ўваходзіць é (Unix)
i<CQ>233 : enters é (Win32) я <CQ> 233: ўваходзіць é (Win32)
ga : View hex value of any character Г. А.: Прагляд шаснаццатковае значэнне любога характару
#Deleting non-ascii characters (some invisible) # Выдаленне не-ASCII сімвалаў (нябачная)
:%s/[\x00-\x1f\x80-\xff]/ /g : type this as you see it :% S / [\ x00-\ x1F \ x80-\ XFF] / / г, тыпу гэтага, як вы яго бачыце
:%s/[<CV>128-<CV>255]//gi : where you have to type the Control-V :% S / [<CV> 128 - <CV> 255] / / GI: дзе вы павінны ўвесці Control-V
:%s/[€-ÿ]//gi : Should see a black square & a dotted y :% С / [€-Y] / / Г. І.: Калі паглядзець чорны квадрат і пункцірнай ў
:%s/[<CV>128-<CV>255<CV>01-<CV>31]//gi : All pesky non-asciis :% S / [<CV> 128 - 255 <CV> <CV> 01 - <CV> 31] / / Г. І.:
Усе без надакучлівых asciis
:exec "norm /[\x00-\x1f\x80-\xff]/" : same thing : EXEC "норму / [\ x00-\ x1F \ x80-\ XFF] /": адно і тое ж
#Pull a non-ascii character onto search bar # Выцягніце не-ASCII сімвалаў на радок пошуку
yl/<CR>" : глей / <CR> ":
/[^a-zA-Z0-9_[:space:][:punct:]] : search for all non-ascii / [^-Za-z0-9_ [: плошча:] [: Punct:]]: пошук для ўсіх не-ASCII
---------------------------------------- ----------------------------------------
" All file completions grouped (for example main_c.c) "Усе файлавыя дапаўненні згрупаваныя (напрыклад main_c.c)
:e main_<tab> : tab completes : Электронная main_ <tab>: ўкладка завяршае
gf : open file under cursor (normal) Джанкарло Фізікелла: адкрыць файл пад курсорам (нармальны)
main_<CX><CF> : include NAME of file in text (insert mode) main_ <CX> <CF>: ўключаць у сябе імя файла ў тэксце (рэжым устаўкі)
---------------------------------------- ----------------------------------------
" Complex Vim "Комплекс Vim
" swap two words "Своп два словы
:%s/\<\(on\|off\)\>/\=strpart("offon", 3 * ("off" == submatch(0)), 3)/g :% З / \ <\ (аб \ | з \) \> / \ = strpart ("offon", 3 *
("выключана" == частковае супадзенне (0)), 3) / г
" swap two words "Своп два словы
:vnoremap <CX> <Esc>`.``gvP``P :. Vnoremap <CX> <Esc> `` ``` GVP P
" Swap word with next word "Swap слова наступнага слова
nmap <silent> gw "_yiw:s/\(\%#\w\+\)\(\_W\+\)\(\w\+\)/\3\2\1/<cr><co><cl> *N*
Nmap <silent> GW "_yiw: з / \ (\% # \ ш \ + \) \ (\ _w \ + \) \ (\ ш \ + \) / \ 3 \ 2 \ 1 / <cr> <са > <cl> * N *
---------------------------------------- ----------------------------------------
" Convert Text File to HTML "Пераўтварэнне тэкставых файлаў у HTML
:runtime! : Выкананне! syntax/2html.vim : convert txt to html syntax/2html.vim: пераўтварэнне TXT ў HTML
:h 2html : Ч 2html
---------------------------------------- ----------------------------------------
" VIM has internal grep "Вім мае ўнутраныя GREP
:grep some_keyword *.c : get list of all c-files containing keyword : GREP some_keyword *. C:
атрымаць спіс усіх з-файлаў, якія змяшчаюць ключавыя словы
:cn : go to next occurrence : Сп: перайсці да наступнага ўваходжанню
---------------------------------------- ----------------------------------------
" Force Syntax coloring for a file that has no extension.pl "Форс-падсвятленне сінтаксісу для файла, які не мае пашырэння. Пл
:set syntax=perl : Усталяваць сінтаксіс Perl =
" Remove syntax coloring (useful for all sorts of reasons) "Прыбраць падсвятленне сінтаксісу (карысна для ўсіх відаў прычын)
:set syntax off : Усталёўка ад сінтаксісу
" change coloring scheme (any file in ~vim/vim??/colors) "Змяніць каляровую схему (любы файл ў ~ VIM / Vim? / Колеры)
:colorscheme blue : ColorScheme сіні
" Force HTML Syntax highlighting by using a modeline "Форс-Падсвятленне сінтаксісу HTML, выкарыстоўваючы рэжымнай
# vim:ft=html: # Vim: П = HTML:
" Force syntax automatically (for a file with non-standard extension) "Форс-сінтаксісу аўтаматычна (для файлаў з нестандартным пашырэннем)
au BufRead,BufNewFile */Content.IE?/* setfiletype html АС BufRead, BufNewFile * / Content.IE? / * Setfiletype HTML
---------------------------------------- ----------------------------------------
:set noma (non modifiable) : Prevents modifications : Усталяваць Нома (не змяняюцца): Прадухіляе змены
:set ro (Read Only) : Protect a file from unintentional writes
---------------------------------------- ----------------------------------------
" Sessions (Open a set of files)
gvim file1.c file2.c lib/lib.h lib/lib2.h : load files for "session"
:mksession : Make a Session file (default Session.vim)
:mksession MySession.vim : Make a Session file named file *C*
:q
gvim -S : Reload all files (loads Session.vim) *C*
gvim -S MySession.vim : Reload all files from named session *C*
---------------------------------------- ----------------------------------------
#tags (jumping to subroutines/functions)
taglist.vim : popular plugin
:Tlist : display Tags (list of functions)
<C-]> : jump to function under cursor
---------------------------------------- ----------------------------------------
" columnise a csv file for display only as may crop wide columns
:let width = 20
:let fill=' ' | while strlen(fill) < width | let fill=fill.fill | endwhile
:%s/\([^;]*\);\=/\=strpart(submatch(1).fill, 0, width)/ge
:%s/\s\+$//ge
" Highlight a particular csv column (put in.vimrc)
function! CSVH(x)
execute 'match Keyword /^\([^,]*,\)\{'.a:x.'}\zs[^,]*/'
execute 'normal ^'.a:x.'f,'
endfunction
command! -nargs=1 Csv :call CSVH(<args>)
" call with
:Csv 5 : highlight fifth column
---------------------------------------- ----------------------------------------
zf1G : fold everything before this line *N*
" folding : hide sections to allow easier comparisons
zf} : fold paragraph using motion
v}zf : fold paragraph using visual
zf'a : fold to mark
zo : open fold
zc : re-close fold
" also visualise a section of code then type zf *N*
:help folding
zfG : fold everything after this line *N*
---------------------------------------- ----------------------------------------
" displaying "non-asciis"
:set list
:h listchars
---------------------------------------- ----------------------------------------
" How to paste "normal commands" w/o entering insert mode
:norm qqy$jq
---------------------------------------- ----------------------------------------
" manipulating file names
:h filename-modifiers : help
:w % : write to current file name
:w %:r.cfm : change file extention to.cfm
:!echo %:p : full path & file name
:!echo %:p:h : full path only
:!echo %:t : filename only
:reg % : display filename
<CR>% : insert filename (insert mode)
"%p : insert filename (normal mode)
/<CR>% : Search for file name in text
---------------------------------------- ----------------------------------------
" delete without destroying default buffer contents
"_d : what you've ALWAYS wanted
"_dw : eg delete word (use blackhole)
---------------------------------------- ----------------------------------------
" pull full path name into paste buffer for attachment to email etc
nnoremap <F2> :let @*=expand("%:p")<cr> :unix
nnoremap <F2> :let @*=substitute(expand("%:p"), "/", "\\", "g")<cr> :win32
---------------------------------------- ----------------------------------------
" Simple Shell script to rename files w/o leaving vim
$ vim
:r! ls *.c
:%s/\(.*\).c/mv & \1.bla
:w !sh
:q!
---------------------------------------- ----------------------------------------
" count words/lines in a text file
g<CG> # counts words
:echo line("'b")-line("'a") # count lines between markers a and b *N*
:'a,'bs/^//n # count lines between markers a and b
:'a,'bs/somestring//gn # count occurences of a string
---------------------------------------- ----------------------------------------
" example of setting your own highlighting
:syn match DoubleSpace " "
:hi def DoubleSpace guibg=#e0e0e0
---------------------------------------- ----------------------------------------
" reproduce previous line word by word
imap ] @@@<ESC>hhkyWjl?@@@<CR>P/@@@<CR>3s
nmap ] i@@@<ESC>hhkyWjl?@@@<CR>P/@@@<CR>3s
" Programming keys depending on file type
:autocmd bufenter *.tex map <F1> :!latex %<CR>
:autocmd bufenter *.tex map <F2> :!xdvi -hush %<.dvi&<CR>
---------------------------------------- ----------------------------------------
" reading Ms-Word documents, requires antiword
:autocmd BufReadPre *.doc set ro
:autocmd BufReadPre *.doc set hlsearch!
:autocmd BufReadPost *.doc %!antiword "%"
---------------------------------------- ----------------------------------------
" a folding method
vim: filetype=help foldmethod=marker foldmarker=<<<,>>>
A really big section closed with a tag <<<
--- remember folds can be nested ---
Closing tag >>>
---------------------------------------- ----------------------------------------
" Return to last edit position (You want this!) *N*
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
---------------------------------------- ----------------------------------------
" store text that is to be changed or deleted in register a
"act< : Change Till < *N*
---------------------------------------- ----------------------------------------
# using gVIM with Cygwin on a Windows PC
if has('win32')
source $VIMRUNTIME/mswin.vim
behave mswin
set shell=c:\\cygwin\\bin\\bash.exe shellcmdflag=-c shellxquote=\"
endif
---------------------------------------- ----------------------------------------
" Just Another Vim Hacker JAVH
vim -c ":%s%s*%Cyrnfr)fcbafbe[Oenz(Zbbyranne%|:%s)[[()])-)Ig|norm Vg?"
---------------------------------------- ----------------------------------------
__END__
---------------------------------------- ----------------------------------------
"Read Vimtips into a new vim buffer (needs w3m.sourceforge.net)
:tabe | :r ! w3m -dump http://zzapper.co.uk/vimtips.html *N*
---------------------------------------- ----------------------------------------
updated version at http://www.zzapper.co.uk/vimtips.html
---------------------------------------- ----------------------------------------
Please email any errors, tips etc to
david@rayninfo.co.uk
" Information Sources
---------------------------------------- ----------------------------------------
www.vim.org
Vim Wiki *** VERY GOOD *** *N*
Vim Use VIM newsgroup *N*
comp.editors
groups.yahoo.com/group/vim "VIM" specific newsgroup
VIM Webring
Vim Book
Searchable VIM Doc
VimTips PDF Version (PRINTABLE!)
---------------------------------------- ----------------------------------------
" : commands to neutralise < for HTML display and publish
" use yy@" to execute following commands
:w!|sav! vimtips.html|:/^__BEGIN__/,/^__END__/s#<#\<#g|:w!|:!vimtipsftp
---------------------------------------- ----------------------------------------
Popular Linksgreylist policy service info, best vps host, pasdoc development , webhosting, complete graph server, copyright info, computer literacy info, perl php translation, etech presentation, self organizing systems, self archiving, best wordpress hosting, universal usability highlight, info about soar, visual basic
|