首页 > 代码库 > a byte of vim -- 学习摘要

a byte of vim -- 学习摘要

说在前面的话 -- a byte of vim 是我见过的最介绍vim 最好的书,想了解强大的vim的人,或者是已经在使用vim而打算进一步了解的人,我感觉都应该看看这个,内容精炼但涵盖非常广,……“vim为什么这么强大”,当看完这本书时,我想你就能全然的了解了……此外。本书是一英文版,但非常easy,学语言的同一时候学习英语非常不多……

附上最新版的下载链接 http://download.csdn.net/detail/wuzhimang/8933257  ,当然上官网才是硬道理


下面是自己针对a byte of vim 做的学习摘要。原文的内容,方便自己以后使用与回顾 —— 由于好书(哪怕是工具书)读一两遍是不够的


## A Byte of Vim

1.Perface
    "There is no great writing, only great rewriting." -- Louis Brandeis
    "Vim if one of the few pieces of software that I use for nearly 10 hours a day." -- Authors
    The mantra is *Concepts. Examples. Pithy*
    Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.

2.Introduction
    Powerful means following the paradigm of "Minimal effort. Maximal effect."

    Press *        Run :sp        Run :50        Run :,100s/old/new/g    Press gf
    Run :colorscheme desert        Run :nmap <c-s> :w<CR>
    Run :mksession ~/latest_session.vim -> vim -S ~/latest_session.vim
    Run :syntax on -> :set filetype=Wikipedia
    Run :set foldmethod=indent    Run :tabedit <file>
    Press ctrl-n    Run :0,10s/form/to/gc    Run :%s/from/to/g    
    Run :help vim-modes-intro    Run :edit hello.txt    Run :e hello.txt
    Run :help notation    Run :help keycodes
    Press db    Press dw    Press 2d3w

3.Modes
    There are three basic modes in Vim - normal, insert and visual

    Run :echo "hello world"        Run :help usr_toc    
    Run :help index    
    Run :help vim-modes-intro    Run :help mode-switching
    a,A i,I o,O r,R s,S     v,V

4.Typing Skills
    vi/vim graphical cheat sheet    

    Press } { ( )         ~Press 3fh~
    Press ctrl-o    Press ctrl-i
    Press ^ $ ctrl-f crtl-b
    Press G H M L     Press : help word-motions
    Press :help cursor-motions
    Press :help text-objects    Press :help motion/various motions

5.Help
    Run :help    Run :help usr-manual
    Run :help abbreviate     Press ctrl-]    
    Run :helpgrep gt    Run :cnext Run :cprev Run:clist
    Press ma -> Press ‘a     Press ~
    Run :let &keywordprg=‘:help‘

    "The true delight is in the finding out rather than in the knowing"

6.Editing Basics
    Run :swapname    Run :help swap-file

    nmap <c-s> :w<CR>
    imap <c-s> <Esc>:w<CR>a
    Run :e ../tmp/test.txt    cd    pwd
    Run :e C:\\shopping\\monday.txt
    y -> yank
    1G and | -> moves to the first line and the first column respectively
    Run :dl    dw
    yy -> operation name twice, it will operate on the
    yap -> yank the current paragraph    
    xp -> swap two characters
    dwwP -> swap two words
    m{a-zA-z} -> ‘{a-zA-Z}

    "If I had eight hours to chop down a tree, I‘d spent six hours sharpening my axe" -- Abraham Lincoln

    u/U <-> ctrl-r --> undolevels    :earlier 4m    :later 45s
    :undolist    Run :help :undolist/undo-redo/usr_32.txt

    set incsearch/ignorecase/smartcase --> /step /Step
    Run :help vimrc-intro    :help pattern
    Run :/\<step\>    /\d\+    /\d\*    

7.Multiplicity
    :set foldmethod=indent --> zc zo za
    :nnoremap <space> za --> noremap

    Run :help buffer-list    :buffers    :ls    :bd 1
    :e test.txt    
    :sp or ctrl-w s        :vsp or ctrl-w v
    ctrl-w r --> rotate the windows
    ctrl-w K --> move the current windows to the topmost position
    ctrl-w _ --> make the cutternt windows as big as possible
    ctrl-w = --> make the windows ‘equal‘ in height again
    :resize 10
    :help windows

    :tabnew        :tabc    :help tabpage
    :tab help tabpage    :tabmove 0    :tabdo    
    :help setting-guitablabel

8.Personal Information Management


9.Scripting
    qa --> to start recording the macro named as a (register)
    gUl --> to switch the first letter to upper case
    g# # g* *
    q --> stop recording the macro
    @a --> apply this to other lines
    . --> repeat the last action    
    :colorscheme desert --> <tab> to cycle through the available schemes

    :echo strlen(getline(‘.‘))
            
    :let len = strlen(getline(‘.‘))
    :echo "We have ‘len‘ characters in this line."
        
    :echo $HOME    :echo &filetype        :echo @a
    :help function-list

    :source capitalize.vim        :call Capitalize()
    :echo has("python")
        
    :help eval    :help python-commands    :help perl-using    
    :help ruby-commands    

    
10.Plugins
    There are various kinds of plugins that can be written
    --> vimrc     --> global plugin    --> filetype plugin
    --> syntax highlighting plugin        --> compiler plugin

    vimrc --> for general customizations
    gvimrc --> for GUI specific customizations
    :help vimrc

    the colon is optional when writing scripts in files

    vim -u NONE -> start up Vim without any initialization scripts being run
    :hlep -u        :help starting

    
11.Programmers Editor
    "Let‘s me reiterate that typing skills is critical for a programmer"
    "We are typists first, programmers second"

    :set filetype=vim       $VIMRUNTIME/syntax --> the list of language types available
    svn diff | vim -R -
    :set autoindent     :set smartindent
    % -> bounce(curly bracket)
    ! -> shell commands     :sh -> a full-fledged shell     :%!sort

    gf -> open the file     gd -> move to the local definition of the variable name
    gD -> the global declaration        ]] ->
    :help object-motions    [I -> display all lines that contain they keyword under the cursor

    :Vex ->         :Sex ->

    ctags   cscope  :make
    omnicompletion -> pythoncomplete.vim -> ftplugin/<language>complete.vim
    :runtime! autoload/pythoncomplete.vim
    ~/.vimrc -> autocmd FiltType python runtime! autoload/pythoncomplete.vim
    ctrl-n  ctrl-p
    :help new-omni-completion
    imap <c-space> <c-x><c-o> -> omnicompletion
    snippet -> SnippetsEmu
    :source %       :runtime! ftplugin/python_snippets.vim

    
12.More
    Modeline -> vim: noexpandtab
    Portable Vim -> GVimPortable.exe
    Upgrade plugins -> :GLVS(which stands for ‘G‘et ‘L‘atest ‘V‘im ‘S‘cripts)
                    -> :help getscript
    Dr.Chip‘s plugins -> drawit.vim
    Blog from Vim -> Vimpress plugin
    Make Firefox work like Vim -> Vimperator add-on
    Contribute to Vim -> :help development
    Bram‘s talk on the seven habits -> "Seven habit of effective text editing"
    Community -> hang out at the vim@vim.org


13.What Next
    The other important resources -> "Best of Vim Tips"  :help user-manual -> the all-important
    :help new-7



a byte of vim -- 学习摘要