青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

[vim]Best of Vim Tips

  • zzapper's Tips Page
    ------------------------------------------------------------------------------
    __BEGIN__
    ------------------------------------------------------------------------------
    # searching
    /joe/e????????????????????? : cursor set to End of match
    /joe/e+1??????????????????? : cursor set to End of match plus 1
    /joe/s-2??????????????????? : cursor set to Start of match minus 2
    /^joe.*fred.*bill/????????? : normal
    /^[A-J]\+/????????????????? : search for lines beginning with one or more A-J
    /begin\_.*end?????????????? : search over possible multiple lines
    /fred\_s*joe/i????????????? : any whitespace including newline
    /fred\|joe????????????????? : Search for FRED OR JOE
    /\([^0-9]\|^\)%.*%????????? : Search for absence of a digit or beginning of line
    /.*fred\&.*joe????????????? : Search for FRED AND JOE in any ORDER!
    /\<fred\>/i???????????????? : search for fred but not alfred or frederick
    /\<\d\d\d\d\>?????????????? : Search for exactly 4 digit numbers
    /\D\d\d\d\d\D?????????????? : Search for exactly 4 digit numbers
    /\<\d\{4}\>???????????????? : same thing
    # finding empty lines
    /^\n\{3}??????????????????? : find 3 empty lines
    # Specify what you are NOT searching for (vowels)
    /\c\v([^aeiou]&\a){4}?????? : search for 4 consecutive consanants
    # using rexexp memory in a search
    /\(fred\).*\(joe\).*\2.*\1
    # Repeating the Regexp (rather than what the Regexp finds)
    /^\([^,]*,\)\{8}
    # visual searching
    :vmap // y/<C-R>"<CR>?????? : search for visually highlighted text
    :vmap <silent> //??? y/<C-R>=escape(@", '\\/.*$^~[]')<CR><CR> : with spec chars
    # searching over multiple lines \_ means including newline
    /<!--\_p\{-}-->?????????????????? : search for multiple line comments
    /fred\_s*joe/i??????????????????? : any whitespace including newline
    /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\+<C-R>"<CR>
    # multiple file search
    :bufdo /searchstr
    :argdo /searchstr
    # How to search for a URL without backslashing
    ?http://www.vim.org/??????? : search BACKWARDS!!! clever huh!
    ----------------------------------------
    #substitution
    :%s/fred/joe/igc??????????? : general substitute command
    :%s/\r//g?????????????????? : Delete DOS returns ^M
    # Is your Text File jumbled onto one line? use following
    :%s/\r/\r/g???????????????? : Turn DOS returns ^M into real returns
    :%s=? *$==????????????????? : delete end of line blanks
    :%s= \+$==????????????????? : Same thing
    :%s#\s*\r\?$##????????????? : Clean both trailing spaces AND DOS returns
    :%s#\s*\r*$##?????????????? : same thing
    # deleting empty lines
    :%s/^\n\{3}//?????????????? : delete blocks of 3 empty lines
    :%s/^\n\+/\r/?????????????? : compressing empty lines
    %s#<[^>]\+>##g????????????? : delete html tags, leave text
    # IF YOU ONLY WANT TO KNOW ONE THING
    :'a,'bg/fred/s/dick/joe/igc : VERY USEFUL
    # duplicating columns
    :%s= [^ ]\+$=&&=??????????? : duplicate end column
    :%s= \f\+$=&&=????????????? : same thing
    :%s= \S\+$=&&?????????????? : usually the same
    # memory
    :s/\(.*\):\(.*\)/\2 : \1/?? : reverse fields separated by :
    :%s/^\(.*\)\n\1/\1$/??????? : delete duplicate lines
    # non-greedy matching \{-}
    :%s/^.\{-}pdf/new.pdf/????? : delete to 1st pdf only
    # use of optional atom \?
    :%s#\<[zy]\?tbl_[a-z_]\+\>#\L&#gc : lowercase with optional leading characters
    # over possibly many lines
    :%s/<!--\_.\{-}-->//??????? : delete possibly multi-line comments
    :help /\{-}???????????????? : help non-greedy
    # substitute using a register
    :s/fred/<c-r>a/g??????????? : sub "fred" with contents of register "a"
    :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/
    # ORing
    :%s/suck\|buck/loopy/gc???? : ORing (must break pipe)
    # Calling a VIM function
    :s/__date__/\=strftime("%c")/ : insert datestring
    # Working with Columns sub any str1 in col3
    :%s:\(\(\w\+\s\+\)\{2}\)str1:\1str2:
    # Swapping first & last column (4 columns)
    :%s:\(\w\+\)\(.*\s\+\)\(\w\+\)$:\3\2\1:
    # filter all form elements into paste register
    :redir @*|sil exec 'g#<\(input\|select\|textarea\|/\=form\)\>#p'|redir END
    :nmap ,z :redir @*<Bar>sil exec 'g@<\(input\<Bar>select\<Bar>textarea\<Bar>/\=form\)\>@p'<Bar>redir END<CR>
    # decrement numbers by 3
    :%s/\d\+/\=(3-submatch(0))/
    # increment numbers by 6 on certain lines only
    :g/loc\|function/s/\d/\=submatch(0)+6/
    # better
    :%s#txtdev\zs\d#\=submatch(0)+1#g
    :h /\zs
    # increment only numbers gg\d\d? by 6 (another way)
    :%s/\(gg\)\@<=\d\+/\=submatch(0)+6/
    :h zero-width
    # find replacement text, put in memory, then use \zs to simplify substitute
    :%s/"\([^.]\+\).*\zsxx/\1/
    # Pull word under cursor into LHS of a substitute
    :nmap <leader>z :%s#\<<c-r>=expand("<cword>")<cr>\>#
    # Pull Visually Highlighted text into LHS of a substitute
    :vmap <leader>z :<C-U>%s/\<<c-r>*\>/
    ----------------------------------------
    # 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/"
    # Same thing
    :s#all/\zs.*#\=substitute(submatch(0), '/', '_', 'g')#
    # Substitute by splitting line, then re-joining
    :s#all/#&^M#|s#/#_#g|-j!
    # Substitute inside substitute
    :%s/.*/\='cp '.submatch(0).' all/'.substitute(submatch(0),'/','_','g')/
    ----------------------------------------
    # global command display (see tip 227)
    :g/fred.*joe.*dick/???????? : display all lines fred,joe & dick
    :g/\<fred\>/??????????????? : display all lines fred but not freddy
    :g/<pattern>/z#.5?????????? : display with context
    :g/<pattern>/z#.5|echo "=========="? : display beautifully
    :g/^\s*$/d????????????????? : delete all blank lines
    :g!/^dd/d?????????????????? : delete lines not containing string
    :v/^dd/d??????????????????? : delete lines not containing string
    :g/fred/,/joe/d???????????? : not line based (very powerfull)
    :g/{/ ,/}/- s/\n\+/\r/g???? : Delete empty lines but only between {...}
    :v/\S/d???????????????????? : Delete empty lines (both types)
    :v/./.,/./-1join??????????? : compress empty lines
    :g/^$/,/./-j??????????????? : compress empty lines
    :g/<input\|<form/p????????? : ORing
    :g/^/put_?????????????????? : double space file (pu = put)
    :g/^/m0???????????????????? : Reverse file (m = move)
    :g/^/t.???????????????????? : duplicate every line
    :g/fred/t$????????????????? : copy lines matching fred to EOF
    :g/stage/t'a??????????????? : copy lines matching stage to marker a
    # match all lines containing "somestr" between markers a & b
    # copy after line containing "otherstr"
    :'a,'bg/somestr/co/otherstr/ : co(py) or mo(ve)
    # as above but also do a substitution
    :'a,'bg/str1/s/str1/&&&/|mo/str2/
    :%norm jdd????????????????? : delete every other line
    # incrementing numbers (type <c-a> as 5 characters)
    :.,$g/^\d/exe "norm! \<c-a>": increment numbers
    :'a,'bg/\d\+/norm! ^A?????? : increment numbers
    # storing glob results (note must use APPEND)
    :g/fred/y A???????????????? : append all lines fred to register a
    :'a,'b g/^Error/ . w >> errors.txt
    # duplicate every line in a file wrap a print '' around each duplicate
    :g/./yank|put|-1s/'/"/g|s/.*/Print '&'/
    # replace string with contents of a file, -d deletes the "mark"
    :g/^MARK$/r tmp.ex | -d
    ----------------------------------------
    # Global combined with substitute (power editing)
    :'a,'bg/fred/s/joe/susan/gic :? can use memory to extend matching
    :g/fred/,/joe/s/fred/joe/gic :? non-line based (ultra)
    ----------------------------------------
    # Find fred before beginning search for joe
    :/fred/;/joe/-2,/sid/+3s/sally/alley/gIC
    ----------------------------------------
    # Absolutely essential
    ----------------------------------------
    * # g* g#?????????? : find word under cursor (<cword>) (forwards/backwards)
    %?????????????????? : match brackets {}[]()
    .?????????????????? : repeat last modification
    matchit.vim???????? : % now matches tags <tr><td><script> <?php etc
    <C-N><C-P>????????? : word completion in insert mode
    <C-X><C-L>????????? : Line complete SUPER USEFUL
    /<C-R><C-W>???????? : Pull <cword> onto search/command line
    /<C-R><C-A>???????? : Pull <CWORD> onto search/command line
    :set ignorecase???? : you nearly always want this
    :syntax on????????? : colour syntax in Perl,HTML,PHP etc
    :h regexp<C-D>????? : type control-D and get a list all help topics containing
    ????????????????????? regexp (plus use TAB to Step thru list)
    ----------------------------------------
    # MAKE IT EASY TO UPDATE/RELOAD _vimrc
    :nmap ,s :source $VIM/_vimrc
    :nmap ,v :e $VIM/_vimrc
    ----------------------------------------
    #VISUAL MODE (easy to add other HTML Tags)
    :vmap sb "zdi<b><C-R>z</b><ESC>? : wrap <b></b> around VISUALLY selected Text
    :vmap st "zdi<?= <C-R>z ?><ESC>? : wrap <?=?? ?> around VISUALLY selected Text
    ----------------------------------------
    # Exploring
    :Exp(lore)????????????????????? : file explorer note capital Ex
    :Sex(plore)???????????????????? : file explorer in split window
    :ls???????????????????????????? : list of buffers
    :cd ..????????????????????????? : move to parent directory
    :args?????????????????????????? : list of files
    :lcd %:p:h????????????????????? : change to directory of current file
    :autocmd BufEnter * lcd %:p:h?? : change to directory of current file automatically (put in _vimrc)
    ----------------------------------------
    # Buffer Explorer (Top Ten Vim Script)
    # needs bufexplorer.vim? http://www.vim.org/script.php?script_id=42
    \be???????????????????????????? : buffer explorer list of buffers
    \bs???????????????????????????? : buffer explorer (split window)
    ----------------------------------------
    # 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
    ggguG?????????????????????????? : lowercase entire file
    # Titlise Visually Selected Text (map for .vimrc)
    vmap ,c :s/\<\(.\)\(\k*\)\>/\u\1\L\2/g<CR>
    # Uppercase first letter of sentences
    :%s/[.!?]\_s\+\a/\U&\E/g
    ----------------------------------------
    gf????????????????????????????? : open file name under cursor (SUPER)
    :nnoremap gF :view <cfile><cr>? : open file under cursor, create if necessary
    ga????????????????????????????? : display hex,ascii value of char under cursor
    ggVGg?????????????????????????? : rot13 whole file
    ggg?G?????????????????????????? : rot13 whole file (quicker for large file)
    :8 | normal VGg???????????????? : rot13 from line 8
    :normal 10GVGg????????????????? : rot13 from line 8
    <C-A>,<C-X>???????????????????? : increment,decrement number under cursor
    ????????????????????????????????? win32 users must remap CNTRL-A
    <C-R>=5*5?????????????????????? : insert 25 into text (mini-calculator)
    ----------------------------------------
    # Makes all other tips superfluous
    :h 42??????????? : also http://www.google.com/search?q=42
    :h holy-grail
    :h!
    ----------------------------------------
    # Markers & moving about
    '.?????????????? : jump to last modification line (SUPER)
    `.?????????????? : jump to exact spot in last modification line
    g;?????????????? : cycle thru recent changes (oldest first) (new in vim6.3)
    g,?????????????? : reverse direction (new in vim6.3)
    :changes
    :h changelist??? : help for above
    <C-O>??????????? : retrace your movements in file (starting from most recent)
    <C-I>??????????? : retrace your movements in file (reverse direction)
    :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
    q:?????????????? : commandline history Window
    :<C-F>?????????? : history Window
    ----------------------------------------
    # Abbreviations & maps
    :map?? <f7>?? :'a,'bw! c:/aaa/x
    :map?? <f8>?? :r c:/aaa/x
    :map?? <f11>? :.w! c:/aaa/xr<CR>
    :map?? <f12>? :r c:/aaa/xr<CR>
    :ab php????????? : list of abbreviations beginning php
    :map ,?????????? : list of maps beginning ,
    # allow use of F10 for mapping (win32)
    set wak=no?????? : :h winaltkeys
    # For use in Maps
    <CR>???????????? : carriage Return for maps
    <ESC>??????????? : Escape
    <LEADER>???????? : normally \
    <BAR>??????????? : | pipe
    <BACKSPACE>????? : backspace
    #display RGB colour under the cursor eg #445588
    :nmap <leader>c :hi Normal guibg=#<c-r>=expand("<cword>")<cr><cr>
    ----------------------------------------
    # Using a register as a map (preload registers in .vimrc)
    :let @m=":'a,'bs/"
    :let @s=":%!sort -u"
    ----------------------------------------
    # List your Registers
    :reg???????????? : display contents of all registers
    :reg a?????????? : display content of individual registers
    "1p....????????? : retrieve numeric registers one by one
    :let @y='yy@"'?? : pre-loading registers (put in .vimrc)
    ----------------------------------------
    # Useful tricks
    "ayy@a?????????? : execute "Vim command" in a text file
    yy@"???????????? : same thing using unnamed register
    u@.????????????? : execute command JUST typed in
    ----------------------------------------
    # Get output from other commands (requires external programs)
    :r!ls.exe??????? : reads in output of ls
    !!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
    !1} sort -u????? : sorts paragraph (note normal mode!!)
    ----------------------------------------
    # Multiple Files Management (Essential)
    :bn????????????? : goto next buffer
    :bp????????????? : goto previous buffer
    :wn????????????? : save file and move to next (super)
    :wp????????????? : save file and move to previous
    :bd????????????? : remove file from buffer list (super)
    :bun???????????? : Buffer unload (remove window but not from list)
    :badd file.c???? : file from buffer list
    :b 3???????????? : go to buffer 3
    :b main????????? : go to buffer with main in name eg main.c (ultra)
    :sav php.html??? : Save current file as php.html and "move" to php.html
    :sav! %<.bak???? : Save Current file to alternative extension
    :sav! %:r.cfm??? : Save Current file to alternative extension
    :e!????????????? : return to unmodified file
    :w c:/aaa/%????? : save file elsewhere
    :e #???????????? : edit alternative file (also cntrl-^)
    :rew???????????? : return to beginning of edited files list (:args)
    :brew??????????? : buffer rewind
    :sp fred.txt???? : open fred.txt into a split
    :sball,:sb?????? : Split all buffers (super)
    :scrollbind????? : in each split window
    :map?? <F5> :ls<CR>:e # : Pressing F5 lists all buffer, just type number
    :set hidden????? : Allows to change buffer w/o saving current buffer
    ----------------------------------------
    # Quick jumping between splits
    map <C-J> <C-W>j<C-W>_
    map <C-K> <C-W>k<C-W>_
    ----------------------------------------
    # Recording (BEST TIP of ALL)
    qq? # record to q
    your complex series of commands
    q?? # end recording
    @q to execute
    @@ to Repeat
    5@@ to Repeat 5 times
    # editing a register/recording
    "qp?????????????????????????????? :display contents of register q (normal mode)
    <ctrl-R>q???????????????????????? :display contents of register q (insert mode)
    # you can now see recording contents, edit as required
    "qdd????????????????????????????? :put changed contacts back into q
    @q??????????????????????????????? :execute recording/register q
    # Operating a Recording on a Visual BLOCK
    1) define recording/register
    qq:s/ to/ from/g^Mq
    2) Define Visual BLOCK
    V}
    3) hit : and the following appears
    :'<,'>
    4)Complete as follows
    :'<,'>norm @q
    ----------------------------------------
    # Visual is the newest and usually the BEST editing mode
    # Visual basics
    v?????????????????????????????? : enter visual mode
    V?????????????????????????????? : visual mode whole line
    <C-V>?????????????????????????? : enter VISUAL BLOCK mode
    gv????????????????????????????? : reselect last visual area (ultra)
    o?????????????????????????????? : navigate visual area
    "*y???????????????????????????? : yank visual area into paste buffer
    V%????????????????????????????? : visualise what you match
    V}J???????????????????????????? : Join Visual block (great)
    V}gJ??????????????????????????? : Join Visual block w/o adding spaces
    ----------------------------------------
    # Delete first 2 characters of 10 successive lines
    0<c-v>10j2ld
    ----------------------------------------
    # how to copy a set of columns using VISUAL BLOCK
    # visual block (AKA columnwise selection) (NOT BY ordinary v command)
    <C-V> then select "column(s)" with motion commands (win32 <C-Q>)
    then c,d,y,r etc
    ----------------------------------------
    # how to overwrite a visual-block of text with another such block
    Pick the first block: ctrl-v move "ay
    Pick the second block: ctrl-v move c ctrl-o "aP <esc>
    ----------------------------------------
    # _vimrc essentials
    :set incsearch : jumps to search word as you type (annoying but excellent)
    :set wildignore=*.o,*.obj,*.bak,*.exe : tab complete now ignores these
    :set shiftwidth=3???????????????????? : for shift/tabbing
    :set vb t_vb=".?????????????????????? : set silent (no beep)
    :set browsedir=buffer???????????????? : Maki GUI File Open use current directory
    ----------------------------------------
    # launching Win IE
    :nmap ,f :update<CR>:silent !start c:\progra~1\intern~1\iexplore.exe file://%:p<CR>
    :nmap ,i :update<CR>: !start c:\progra~1\intern~1\iexplore.exe <cWORD><CR>
    ----------------------------------------
    # FTPing from VIM
    cmap ,r? :Nread ftp://209.51.134.122/public_html/index.html
    cmap ,w? :Nwrite ftp://209.51.134.122/public_html/index.html
    gvim ftp://209.51.134.122/public_html/index.html
    ----------------------------------------
    # appending to registers (use CAPITAL)
    # yank 5 lines into "a" then add a further 5
    "a5yy
    10j
    "A5yy
    ----------------------------------------
    [I???? : show lines matching word under cursor <cword> (super)
    ----------------------------------------
    # Conventional Shifting/Indenting
    :'a,'b>>
    # visual shifting (builtin-repeat)
    :vnoremap < <gv
    :vnoremap > >gv
    # Block shifting (magic)
    >i{
    >a{
    # also
    >% and <%
    ----------------------------------------
    # Redirection & Paste register *
    :redir @*??????????????????? : redirect commands to paste buffer
    :redir END?????????????????? : end redirect
    :redir >> out.txt??????????? : redirect to a file
    # Working with Paste buffer
    "*yy???????????????????????? : yank to paste
    "*p????????????????????????? : insert from paste buffer
    # yank to paste buffer (ex mode)
    :'a,'by*???????????????????? : Yank range into paste
    :%y*???????????????????????? : Yank whole buffer into paste
    # filter non-printable characters from the paste buffer
    # useful when pasting from some gui application
    :nmap <leader>p :let @* = substitute(@*,'[^[:print:]]','','g')<cr>"*p
    ----------------------------------------
    # Re-Formatting text
    gq}????????????????????????? : Format a paragraph
    ggVGgq?????????????????????? : Reformat entire file
    Vgq????????????????????????? : current line
    # break lines at 70 chars, if possible after a ;
    :s/.\{,69\};\s*\|.\{,69\}\s\+/&\r/g
    ----------------------------------------
    # Operate command over multiple files
    :argdo %s/foo/bar/e????????? : operate on all files in :args
    :bufdo %s/foo/bar/e
    :windo %s/foo/bar/e
    :argdo exe '%!sort'|w!?????? : include an external command
    :bufdo /foo/
    ----------------------------------------
    # Command line tricks
    gvim -h??????????????????? : help
    ls | gvim -??????????????? : edit a stream!!
    cat xx | gvim - -c "v/^\d\d\|^[3-9]/d " : filter a stream
    gvim -o file1 file2??????? : open into a split
    # execute one command after opening file
    gvim.exe -c "/main" joe.c? : Open joe.c & jump to "main"
    # execute multiple command on a single file
    vim -c "%s/ABC/DEF/ge | update" file1.c
    # execute multiple command on a group of files
    vim -c "argdo %s/ABC/DEF/ge | update" *.c
    # remove blocks of text from a series of files
    vim -c "argdo /begin/+1,/end/-1g/^/d | update" *.c
    # Automate editing of a file (Ex commands in convert.vim)
    vim -s "convert.vim" file.c
    #load VIM without .vimrc and plugins (clean VIM)
    gvim -u NONE -U NONE -N
    # Access paste buffer contents (put in a script/batch file)
    gvim -c 'normal ggdG"*p' c:/aaa/xp
    # print paste contents to default printer
    gvim -c 's/^/\=@*/|hardcopy!|q!'
    # gvim's use of external grep (win32 or *nix)
    :grep somestring *.php???? : creates a list of all matching files
    # use :cn(ext) :cp(rev) to navigate list
    :h grep
    ----------------------------------------
    # GVIM Difference Function (Brilliant)
    gvim -d file1 file2??????? : vimdiff (compare differences)
    dp???????????????????????? : "put" difference under cursor to other file
    do???????????????????????? : "get" difference under cursor from other file
    ----------------------------------------
    # Vim traps
    In regular expressions you must backslash + (match 1 or more)
    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\)\{2,3}/?????????? : note what you have to break
    ----------------------------------------
    # \v or very magic (usually) reduces backslashing
    /codes\(\n\|\s\)*where? : normal regexp
    /\vcodes(\n|\s)*where?? : very magic
    ----------------------------------------
    # pulling objects onto command/search line (SUPER)
    <C-R><C-W> : pull word under the cursor into a command line or search
    <C-R><C-A> : pull WORD under the cursor into a command line or search
    <C-R>-????????????????? : pull small register (also insert mode)
    <C-R>[0-9a-z]?????????? : pull named registers (also insert mode)
    <C-R>%????????????????? : pull file name (also #) (also insert mode)
    <C-R>=somevar?????????? : pull contents of a variable (eg :let sray="ray[0-9]")
    ----------------------------------------
    # manipulating registers
    :let @a=@_????????????? : clear register a
    :let @a=""????????????? : clear register a
    :let @*=@a????????????? : copy register a to paste buffer
    map?? <f11> "qyy:let @q=@q."zzz"
    ----------------------------------------
    # help for help
    :h quickref???????????? : VIM Quick Reference Sheet (ultra)
    :h tips???????????????? : Vim's own Tips Help
    :h visual<C-D><tab>???? : obtain? list of all visual help topics
    ??????????????????????? : Then use tab to step thru them
    :h ctrl<C-D>??????????? : list help of all control keys
    :helpg uganda?????????? : grep HELP Files use :cn, :cp to find next
    :h :r?????????????????? : help for :ex command
    :h CTRL-R?????????????? : normal mode
    :h /\r????????????????? : what's \r in a regexp (matches a <CR>)
    :h \\zs???????????????? : double up backslash to find \zs in help
    :h i_CTRL-R???????????? : help for say <C-R> in insert mode
    :h c_CTRL-R???????????? : help for say <C-R> in command mode
    :h v_CTRL-V???????????? : visual mode
    :h tutor??????????????? : VIM Tutor
    <C-[>, <C-T>??????????? : Move back & Forth in HELP History
    gvim -h???????????????? : VIM Command Line Help
    ----------------------------------------
    # where was an option set
    :scriptnames??????????? : list all plugins, _vimrcs loaded (super)
    :verbose set history??? : reveals value of history and where set
    :function?????????????? : list functions
    :func SearchCompl?????? : List particular function
    ----------------------------------------
    # making your own VIM help
    :helptags /vim/vim63/doc? : rebuild all *.txt help files in /doc
    :help add-local-help
    ----------------------------------------
    # running file thru an external program (eg php)
    map?? <f9>?? :w<CR>:!c:/php/php.exe %<CR>
    map?? <f2>?? :w<CR>:!perl -c %<CR>
    ----------------------------------------
    # capturing output of current script in a separate buffer
    :new | r!perl #?????????????????? : opens new buffer,read other buffer
    :new! x.out | r!perl #??????????? : same with named file
    ----------------------------------------
    # Inserting DOS Carriage Returns
    :%s/nubian/<C-V><C-M>&/g????????? :? that's what you type
    :%s/nubian/<C-Q><C-M>&/g????????? :? for Win32
    :%s/nubian/^M&/g????????????????? :? what you'll see where ^M is ONE character
    :%s/nubian/\r&/g????????????????? :? better
    ----------------------------------------
    # automatically delete trailing Dos-returns,whitespace
    autocmd BufRead * silent! %s/[\r \t]\+$//
    autocmd BufEnter *.php :%s/[ \t\r]\+$//e
    ----------------------------------------
    # perform an action on a particular file or file type
    autocmd VimEnter c:/intranet/note011.txt normal! ggVGg?
    autocmd FileType *.pl exec('set fileformats=unix')
    ----------------------------------------
    # Retrieving last command line command for copy & pasting into text
    i<c-r>:
    # Retrieving last Search Command for copy & pasting into text
    i<c-r>/
    ----------------------------------------
    # more completions
    <C-X><C-F>??????????????????????? :insert name of a file in current directory
    ----------------------------------------
    # Substituting a Visual area
    # select visual area as usual (:h visual) then type :s/Emacs/Vim/ etc
    :'<,'>s/Emacs/Vim/g?????????????? : REMEMBER you dont type the '<.'>
    gv??????????????????????????????? : Re-select the previous visual area (ULTRA)
    ----------------------------------------
    # inserting line number into file
    :g/^/exec "s/^/".strpart(line(".")."??? ", 0, 4)
    :%s/^/\=strpart(line(".")."???? ", 0, 5)
    :%s/^/\=line('.'). ' '
    ----------------------------------------
    #numbering lines VIM way
    :set number?????????????????????? : show line numbers
    :map <F12> :set number!<CR>?????? : Show linenumbers flip-flop
    :%s/^/\=strpart(line('.')."??????? ",0,&ts)
    #numbering lines (need Perl on PC) starting from arbitrary number
    :'a,'b!perl -pne 'BEGIN{$a=223} substr($_,2,0)=$a++'
    #Produce a list of numbers
    #Type in number on line say 223 in an empty file
    qqmnYP`n^Aq?????????????????????? : in recording q repeat with @q
    # increment existing numbers to end of file (type <c-a> as 5 characters)
    :.,$g/^\d/exe "normal! \<c-a>"
    # advanced incrementing
    http://vim.sourceforge.net/tip_view.php?tip_id=150
    ----------------------------------------
    # advanced incrementing (really useful)
    " put following in _vimrc
    let g:I=0
    function! INC(increment)
    let g:I =g:I + a:increment
    return g:I
    endfunction
    " eg create list starting from 223 incrementing by 5 between markers a,b
    :let I=223
    :'a,'bs/^/\=INC(5)/
    " create a map for INC
    cab viminc :let I=223 \| 'a,'bs/$/\=INC(5)/
    ----------------------------------------
    # editing/moving within current insert (Really useful)
    <C-U>???????????????????????????? : delete all entered
    <C-W>???????????????????????????? : delete last word
    <HOME><END>?????????????????????? : beginning/end of line
    <C-LEFTARROW><C-RIGHTARROW>?????? : jump one word backwards/forwards
    <C-X><C-E>,<C-X><C-Y>???????????? : scroll while staying put in insert
    ----------------------------------------
    #encryption (use with care: DON'T FORGET your KEY)
    :X??????????????????????????????? : you will be prompted for a key
    :h :X
    ----------------------------------------
    # modeline (make a file readonly etc) must be in first/last 5 lines
    // vim:noai:ts=2:sw=4:readonly:
    # vim:ft=html:??????????????????? : says use HTML Syntax highlighting
    :h modeline
    ----------------------------------------
    # Creating your own GUI Toolbar entry
    amenu? Modeline.Insert\ a\ VIM\ modeline <Esc><Esc>ggOvim:ff=unix ts=4 ss=4<CR>vim60:fdm=marker<esc>gg
    ----------------------------------------
    # A function to save word under cursor to a file
    function! SaveWord()
    ?? normal yiw
    ?? exe ':!echo '.@0.' >> word.txt'
    endfunction
    map ,p :call SaveWord()
    ----------------------------------------
    # function to delete duplicate lines
    function! Del()
    if getline(".") == getline(line(".") - 1)
    ?? norm dd
    endif
    endfunction

    :g/^/ call Del()
    ----------------------------------------
    # Digraphs (non alpha-numerics)
    :digraphs???????????????????????? : display table
    :h dig??????????????????????????? : help
    i<C-K>e'????????????????????????? : enters ?
    i<C-V>233???????????????????????? : enters ? (Unix)
    i<C-Q>233???????????????????????? : enters ? (Win32)
    ga??????????????????????????????? : View hex value of any character
    #Deleting non-ascii characters (some invisible)
    :%s/[<C-V>128-<C-V>255]//gi?????? : where you have to type the Control-V
    :%s/[€-?]//gi???????????????????? : Should see a black square & a dotted y
    :%s/[<C-V>128-<C-V>255<C-V>01-<C-V>31]//gi : All pesky non-asciis
    :exec "norm /[\x00-\x1f\x80-\xff]/"??????? : same thing
    #Pull a non-ascii character onto search bar
    yl/<C-R>"???????????????????????? :
    ----------------------------------------
    # All file completions grouped (for example main_c.c)
    :e main_<tab>???????????????????? : tab completes
    gf??????????????????????????????? : open file under cursor? (normal)
    main_<C-X><C-F>?????????????????? : include NAME of file in text (insert mode)
    ----------------------------------------
    # Complex Vim
    # swap two words
    :%s/\<\(on\|off\)\>/\=strpart("offon", 3 * ("off" == submatch(0)), 3)/g
    # swap two words
    :vnoremap <C-X> <Esc>`.``gvP``P
    ----------------------------------------
    # Convert Text File to HTML
    :runtime! syntax/2html.vim??????? : convert txt to html
    :h 2html
    ----------------------------------------
    # VIM has internal grep
    :grep some_keyword *.c??????????? : get list of all c-files containing keyword
    :cn?????????????????????????????? : go to next occurrence
    ----------------------------------------
    # Force Syntax coloring for a file that has no extension .pl
    :set syntax=perl
    # Remove syntax coloring (useful for all sorts of reasons)
    :set syntax off
    # change coloring scheme (any file in ~vim/vim??/colors)
    :colorscheme blue
    # Force HTML Syntax highlighting by using a modeline
    # vim:ft=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)
    :q
    gvim -S Session.vim?????????????? : Reload all files
    ----------------------------------------
    #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
    ----------------------------------------
    # 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
    ----------------------------------------
    # displaying "invisible characters"
    :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
    <C-R>%??????????????????????????? : insert filename (insert mode)
    "%p?????????????????????????????? : insert filename (normal mode)
    /<C-R>%?????????????????????????? : 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 in a text file
    g<C-G>
    ----------------------------------------
    # example of setting your own highlighting
    :syn match DoubleSpace "? "
    :hi def DoubleSpace guibg=#e0e0e0
    ----------------------------------------
    # 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 >>>
    ----------------------------------------
    # Just Another Vim Hacker JAVH
    vim -c ":%s%s*%Cyrnfr)fcbafbe[Oenz(Zbbyranne%|:%s)[[()])-)Ig|norm Vg?"
    ----------------------------------------
    __END__
    ----------------------------------------
    If you liked these please return to www.vim.org
    and vote for this tip (It does encourage me!!)
    Tip 305
    ----------------------------------------
    Please email any errors, tips etc to
    david@rayninfo.co.uk
    ----------------------------------------
    updated version at http://www.rayninfo.co.uk/vimtips.html
    ----------------------------------------
    # Information Sources
    ----------------------------------------
    www.vim.org
    comp.editors "VIM" newsgroup
    VIM Webring
    Vim Book
    Searchable VIM Doc
    VIM FAQ
    VimTips in Chinese
    ----------------------------------------
    # : commands to neutralise < for HTML display and publish
    # use yy@" to execute following commands
    :w!|sav! vimtips.html|:/^__BEGIN__/,/^__END__/s#<#\<#g|:w!|/tip[f]tp/|:!tipftp
    ----------------------------------------
  • 2005-07-06
    http://blog.china-pub.com/more.asp?name=linxd&id=10929 # note 015 : Best of Vim Tips????????????????????????????????????????? current
    ------------------------------------------------------------------------------
    David Rayner (zzapper) 15 Years of Vi + 3 years of Vim and still learning
    11Mar05 : Last Update
    ?

    posted on 2006-08-10 18:18 楊粼波 閱讀(1800) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記

    青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲韩国青草视频| 开心色5月久久精品| 亚洲精品久久久久久下一站| 免费看亚洲片| 日韩亚洲视频| 亚洲免费视频成人| 狠狠久久亚洲欧美| 亚洲国产一区二区三区高清| 欧美日本韩国一区二区三区| 亚洲制服丝袜在线| 久久精品国产69国产精品亚洲| 一区二区三区无毛| 亚洲看片网站| 国产亚洲成精品久久| 免费亚洲电影在线| 欧美视频不卡| 另类成人小视频在线| 欧美高清hd18日本| 午夜精品视频在线| 久久精品30| 在线一区二区三区四区| 久久爱www.| 亚洲视频一二三| 欧美在线观看网站| 宅男精品视频| 久久久久久999| 亚洲一区bb| 噜噜噜在线观看免费视频日韩 | 久久激五月天综合精品| 亚洲精品乱码久久久久久蜜桃麻豆| 99精品国产热久久91蜜凸| 国产视频不卡| 亚洲精品一区在线| 影音先锋日韩有码| 亚洲在线视频一区| 99精品国产在热久久婷婷| 欧美怡红院视频| 亚洲一区二区在线免费观看视频| 久久影音先锋| 久久久久久网| 国产欧美日本一区二区三区| 日韩午夜剧场| 亚洲精品日韩在线观看| 久久精品夜夜夜夜久久| 亚洲欧美日本国产专区一区| 欧美激情亚洲视频| 欧美成年人视频网站欧美| 国产亚洲精品一区二555| 99在线精品视频在线观看| 亚洲精品老司机| 久热精品视频| 免费观看国产成人| 黄色小说综合网站| 久久大综合网| 久久久久一区二区三区| 国产免费成人| 亚洲欧美日韩国产一区| 午夜精品久久久久久久蜜桃app| 欧美精品高清视频| 最新成人在线| 亚洲欧洲午夜| 欧美成人精品高清在线播放| 欧美高清成人| 亚洲成人在线视频播放| 欧美专区一区二区三区| 久久成人一区| 国产一区二区精品久久| 亚洲美女一区| 亚洲一区二区三区四区中文| 欧美视频在线观看免费| 亚洲视频综合| 久久成年人视频| 国产一区二区av| 久久亚洲风情| 最新热久久免费视频| 99视频日韩| 国产精品久久一区二区三区| 亚洲自啪免费| 久久综合电影一区| 亚洲人成精品久久久久| 欧美日韩卡一卡二| 亚洲一二区在线| 久久人人爽人人爽爽久久| 亚洲国产精品一区在线观看不卡| 欧美成人久久| 国产精品99久久久久久久女警| 欧美一区二区三区免费视| 狠狠色香婷婷久久亚洲精品| 欧美高清在线一区| 亚洲一级黄色| 欧美成年人在线观看| 一区二区三区四区五区精品视频| 国产精品一区免费观看| 美日韩丰满少妇在线观看| 亚洲毛片播放| 久久综合九色综合欧美就去吻| 亚洲精品一区二区三区樱花| 国产精品久久久久久久久果冻传媒 | 国产精品日韩在线一区| 久久精品一区二区三区中文字幕 | 亚洲成在人线av| 亚洲欧美国产精品va在线观看| 黑人中文字幕一区二区三区| 欧美精品久久99久久在免费线| 亚洲欧美激情视频| 91久久视频| 久久夜色精品国产欧美乱极品| 夜夜嗨av色综合久久久综合网| 国产亚洲一级高清| 欧美日韩国产在线看| 久久国产精品久久久久久电车| 亚洲日本成人女熟在线观看| 久久久www成人免费无遮挡大片 | 欧美一区二区三区另类| 亚洲精品影视| 在线观看国产日韩| 国产精品一区二区在线观看网站| 欧美成人综合在线| 久久综合九色欧美综合狠狠| 亚洲一区尤物| 一区二区三区精品视频| 亚洲国产欧美日韩精品| 久久在线视频| 久久精品人人做人人综合| 亚洲视频欧洲视频| 日韩小视频在线观看| 亚洲第一主播视频| 国产综合欧美| 国产午夜精品美女视频明星a级| 欧美三级网址| 欧美日韩精品免费看| 欧美激情精品久久久| 蘑菇福利视频一区播放| 久热这里只精品99re8久| 久久久久.com| 久久久久免费观看| 久久精品国产久精国产一老狼| 亚洲免费在线视频| 亚洲性人人天天夜夜摸| 一区二区三欧美| 国产精品99久久不卡二区| 亚洲精品乱码久久久久久蜜桃麻豆 | 99在线精品观看| 一区二区电影免费在线观看| 亚洲美女免费视频| 亚洲另类春色国产| 99在线精品观看| 亚洲中字在线| 欧美在线观看你懂的| 欧美一区视频| 美女免费视频一区| 国内精品视频一区| 久久综合伊人77777蜜臀| 亚洲激情专区| 久热精品视频在线免费观看| 亚洲一区二区三区在线看 | 久久综合一区| 欧美高清自拍一区| 欧美色大人视频| 国产日韩欧美在线视频观看| 国内精品免费午夜毛片| 亚洲欧洲另类| 亚洲欧美日韩在线一区| 久久久久成人精品| 91久久精品国产91久久性色tv | 亚洲一区制服诱惑| 久久天天躁狠狠躁夜夜av| 欧美精品国产一区| 国产精品亚洲视频| 亚洲国产高清视频| 亚洲一区激情| 免费成人性网站| 一本一本久久a久久精品牛牛影视| 亚洲欧美文学| 欧美大片在线影院| 国产日韩精品一区二区浪潮av| 亚洲第一在线综合网站| 亚洲欧美国产77777| 欧美成人免费小视频| 亚洲国产精品va在线看黑人动漫| 夜夜嗨av一区二区三区| 欧美一级大片在线观看| 欧美精品日韩三级| 国产一区久久久| av成人动漫| 老巨人导航500精品| 一卡二卡3卡四卡高清精品视频| 久久九九全国免费精品观看| 欧美成人亚洲| 狠狠色狠狠色综合| 亚洲欧美中文字幕| 亚洲欧洲日产国码二区| 久久精品中文| 国产精品久久久久毛片大屁完整版| 激情久久中文字幕| 亚洲欧美区自拍先锋| 99re热精品| 欧美jizz19性欧美| 在线成人www免费观看视频| 午夜免费在线观看精品视频|