• <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>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            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

          1. 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
            ----------------------------------------
          2. 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 楊粼波 閱讀(1787) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記

            精品久久久噜噜噜久久久 | 久久无码AV中文出轨人妻| 97久久综合精品久久久综合| 国内精品久久久久影院亚洲| 久久人人爽人人爽人人片AV东京热| 久久国产高清字幕中文| www.久久热.com| 久久亚洲国产午夜精品理论片| www.久久精品| 99国内精品久久久久久久| 99热成人精品热久久669| 精品国产一区二区三区久久久狼| 久久精品中文无码资源站| 99久久国产精品免费一区二区| 中文字幕人妻色偷偷久久| 久久天天躁夜夜躁狠狠| 欧美午夜精品久久久久免费视| 色欲综合久久中文字幕网| 成人免费网站久久久| 青青草原综合久久| 欧美与黑人午夜性猛交久久久| 伊人久久一区二区三区无码| 狠狠色丁香久久婷婷综合| 成人国内精品久久久久一区| 久久综合狠狠综合久久激情 | 国产精品久久久久乳精品爆 | 久久精品天天中文字幕人妻| 99久久人妻无码精品系列蜜桃| 国产成人香蕉久久久久| 欧美粉嫩小泬久久久久久久| 99久久99久久精品国产片果冻| 99re这里只有精品热久久| 久久无码国产| 国内精品久久久久影院免费| 欧美麻豆久久久久久中文| 久久久久女人精品毛片| 久久国产高清一区二区三区| 亚洲乱码精品久久久久..| 久久久久久久综合日本| 久久精品国产亚洲AV高清热| 久久久久这里只有精品|