说在前面的话 -- 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 -- 学习摘要的更多相关文章

  1. Linux学习系列之Linux入门(二)Vim学习

    第二篇 Vim学习 主要内容: 基本命令: 插件扩展: 参考资料: vim是一个命令控制的文本编辑器,可以完成几乎我们想要做的所有工作,除了Emacs几乎没有其他的工具能和它匹敌.官方网站是:http ...

  2. Vi/VIM键盘图, Vi/vim学习图

    Vi/vim学习图 引用: Vi键盘图片可视化教程 http://www.cnblogs.com/me115/archive/2010/11/16/1878295.html 网上的文章易流失.感谢分享 ...

  3. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  4. 推荐vim学习教程--《Vim 练级手册》

    非常不错的vim学习资源,讲解的简单明了,可以作为速查工具,在忘记时就翻下.地址如下: <Vim 练级手册>

  5. VIM学习二: VIM配置代码及效果图

    vim学习及插件 参见:http://www.cnblogs.com/caixu/p/6337926.html .vimrc配置 "***************************** ...

  6. vim学习之改头换面(基础配置)

    还记得在线有个维护博客园的学长说过,这网站的前端做的贼丑,今日一看果真如此.其实我想说毕竟干货多,没有那么多花花肠子.下面开始进入正题. 在入坑了sublime.vscode.atom.notepad ...

  7. vim学习、各类插件配置与安装【转】

    转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...

  8. Linux之Vim学习

    Linux之Vim学习 一般模式 光标移动 按键 作用 j或down方向键 向下移动一个字符 k或up方向键 向上移动一个字符 h或left方向键 向左移动一个字符 l或right方向键 向右移动一个 ...

  9. CSS学习摘要-定位实例

    CSS学习摘要-定位实例 注:全文摘自MDN-CSS定位实例 列表消息盒子 我们研究的第一个例子是一个经典的选项卡消息框,你想用一块小区域包括大量信息时,一个非常常用的特征.这包括含有大信息量的应用, ...

随机推荐

  1. C# 委托、事件,lamda表达式

    参考文章 1. 委托Delegate C#中的Delegate对应于C中的指针,但是又有所不同C中的指针既可以指向方法,又可以指向变量,并且可以进行类型转换, C中的指针实际上就是内存地址变量,他是可 ...

  2. Android-Binder 简析

    前言 对于Android来说,Binder的重要性怎么说都不为过.不管是我们的四大组件Activity.Service.BroadcastReceiver.ContentProvider,还是经常在应 ...

  3. [置顶] kubernetes资源对象--ResourceQuotas

    概念 Resource Quotas(资源配额,简称quota)是对namespace进行资源配额,限制资源使用的一种策略. K8S是一个多用户架构,当多用户或者团队共享一个K8S系统时,SA使用qu ...

  4. yarn Fairscheduler与Capacityscheduler

    Capacityscheduler Capacityscheduler允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力.通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源, ...

  5. iOS开发 最近开发了蓝牙模块,在此记录总结一下(转载)

    1.基本概念 <1>中心者模式:常用的(其实99.99%)就是使用中心者模式作为开发,就是我们手机作为主机,连接蓝牙外设.由于开发只用到了中心者模式,所以我也只介绍中心者模式. <2 ...

  6. vue笔记二

    七.列表渲染 1.示例 <ul id="example-2"> <li v-for="(item, index) in items"> ...

  7. python例子三

    例一:匹配长度为1-15的域名 #-*-encoding:utf--*- import re regex=re.compile('^www[.][a-z]{1,15}[.](com|org)') m1 ...

  8. JAVA学习第四十八课 — IO流(二):文件的复制 &amp; 缓冲区1

    一.复制文本文件 将G盘的文本文件拷贝到D盘上 也就是 读取G盘中文本文件的数据.写入D盘中->连读带写 而剪切呢.就是连读带写后,删除原盘的文件 <span style="fo ...

  9. Android中database所在文件夹路径(9.6)

    1 sd----->data---->对应app---->databases----->创建的db 2 push到pc上,可以使用GUI工具SQLiteSpy直接查看datab ...

  10. Spring 应用外部属性文件 配置 context 错误

    在Spring配置文件中出现通配符的匹配很全面, 但无法找到元素 'context:property-placeholder' 的声明这个错误,其实主要是我们在引入命名空间时没有正确引入它的DTD解析 ...