a byte of vim -- 学习摘要

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

附上最新版的下载链接 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 [email protected]

13.What Next

The other important resources -> "Best of Vim Tips"  :help user-manual -> the all-important

:help new-7

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 02:35:15

a byte of vim -- 学习摘要的相关文章

Vim学习笔记

1.复制粘贴操作 vim有12个粘贴板,分别是0.1.2.....9.a.".+: 用:reg命令可以查看各个粘贴板里的内容.在vim中简单用y只是复制到"(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny(注意带引号)完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下

Vim学习第二天

Vim学习第二天 1.w:   向后移动一个单词, b: 向前移动一个单词, 3w, 3b.... 2.$:  移动光标到行的末尾 , ^:  移动光标到行的第一个非空字符的位置 3.fx:  向后寻找本行中的x字符, Fx:向前寻找本行中的x字符 4.tx: 向后寻找本行中的x字符, 光标定位在x字符的前一个字符.Tx: 向前寻找本行的x字符,光标定位在x的前一个字符 5.3G:定位到第三行,1G:定位到第一行, G:定位到文件的末尾 6.:set number    显示行号, :set n

菜鸟vimer成长记——第0章、我眼中的vim学习

这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟.与此同时也想分享出来给大家,欢迎大家互相讨论和学习. 在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim.该系列文章里有些基础概念可能不会涉及到或者不会多做解释.一个是因为有些基础概念我目前也解释不清楚.越基础的解释起来越需要能力,目前鄙人还不具备.另一个是因为我相信各位大神们,你们已经有很好的搜索功能.当然有问题也欢迎大家互相讨论和学习. 这篇主要讲的是我当前对vim学习的理解.后面的一系列文章会针对于学

Vim学习第四天

Vim学习第四天 1. p:   粘贴, P:  粘贴(放在光标所在位置的前面) 2. m[a-z]:标记, ‘[a-z]:  跳到标记所在行, '[a-z]: 跳到标记所在行和列,  d‘[a-z]:删除标记内容 3. :marks    :列出所有的标记 4. :marks args   : 列出具体的标记,也就是不是特殊的标记 5.  y:  复制整个文本 6. yy:  复制当前行 7. y’a:  复制标记内容 8.  Y:  复制一行 9  :vi file.txt:切换到下一个文件

Vim学习第三天

Vim学习第三天 1.  /string:   查找某个字符串,查找特殊字符需要加上\,例如查找. , /\. 2./Enter:查找下一个字符串, 或者命令n 3.  按下/,然后按上下键,能够得到最近查找的内容 4.:set hlsearch  高亮显示查找到的结果,  :set nohlsearch 5.  :set  incsearch,    :set noincsearch 6.  ?:向后搜索, n:搜索方向和前一个命令一样 7.N:改变搜索方向 8.  ^和$: 匹配行的开始和结

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

vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在vimtutor之后再进行观看 查看vim自带的简易版本学习教程vimtutor,ubuntu可以直接通过shell命令行下输入: vimtutor //vimtutor is a application and is started by calling its name vimtutor有在线版本(chr

vim学习之以退为进——可重复移动和可重复修改的美妙结合

时间:2014.06.29 地点:基地 ---------------------------------------------------------------------------------- 一.任务1:使修改可重复 在指定字符前后各添加一个字符.比如在连接字符串的 + 号操作前后均流出一个空格( [ ]+[ ] ) 我们知道 s命令可以删除光标下的字符进入插入模式,现在我们还可以总结一下进入插入模式的几种方式: 1. i 命令:当前光标前插入 2. a命令:当前光标后插入 3.

《代码大全》学习摘要(五)软件构建中的设计(下)

这次的学习内容主要是设计过程中的启发式方法和设计实践中的一些经验. 对于具体的编程工作来说,期待确定性的行为是很正常的,由于软件设计是非确定性的,灵活熟练地运用一组有效的启发方法(试探法),便成了合理的软件设计的核心工作. 1.在确定设计方案时,首选且最流行的方法是面向对象的方法,此方法的要点是辨别现实世界中的对象以及人造的对象.这个过程分为以下几步:辨识对象及其属性.确定可以对各个对象进行的操作.确定各个对象能对其他对象进行的操.确定对象的哪些部分对其他对象可见.定义每个对象的公开接口. 2.

《代码大全》学习摘要(四)伪代码编程过程

今天阅读的是<代码大全>的第9章--"伪代码编码过程".看罢本章,我对于编程的方式方法又有了新的认识,可谓是我觉得收获最大的一章,决心按书中的方法去自己实践一下. 正如作者在这一章末尾提到的,"这本书的一个目的就是告诉你怎样脱离那种先东拼西凑,然后通过运行来看代码是否工作的怪圈"(就我自己写代码的过程来看,与这种方式非常相似),在没有完全想好类和子程序的具体功能和流程就开始编码的结果就是做出一个勉强能运行的程序,它可能漏洞百出,但你不知道问题究竟出在哪里