大家一起学VIM读书笔记(2)

*跳到与光标处一样的单词。
%匹配括号等。
w 下一个单词的词头,e 下一个单词的词尾。小写e,w 以空格划分单词,大写真正的区分单词。
^ 跳到本行的第一个非空,而0含有空哦。
g_跳到本行的第一个非空,而$含有空哦。
fa 跳到当前行的a字母出现的下一个位置,f很好用哦。
3fa→ 在这行中查找a出现的第三个位置.
f和t对应t为向前查。这样就推导出一个命令  dfa删除从当前光标到下一个字母a。
:e#等同于ctrl+^可以让两个打开的文件相互切换。
多文件切换编辑时的一个主要区别:如果是一次打开多个文件,叫argument list ,如果是在编辑一个文件时,又打开了其它的文件,这时这些文件叫做:bufferlist.

而多个文件切换时的命令:  :n  :N 后一个,前一个文档,只适用于argument list.
:bn :bp 则适用于 bufferlist. :bl 编辑 bufferlist中的最后一个文件。
:b+文件名或编号,可以打开对应的文件。:ls可以显示文件的列表,看到编号和文件名。
在列表符号中:#代表前一次编辑的档案,%代表当前编辑的档案。+表示该文件已经修改过,-号表示bufferlist 中的文件尚未载入。

:e!放弃一切修改,重新载入这个文件,就像刚打开时那样。
:f 或 ctrl+g 会显示当前文件的名称,是否修改过,以及当前光标的位置。
:f +文件名,可以重命名当前文件。

:q! 舍弃修改,强制退出
:x 等同于 ZZ  存档后离开 ,注意区别若无修改则直接关闭,而:wq 即使无修改,退出直前也会再写入一次。
:w + 档名,另存他档,保存另一个文件。
:qa! 强迫中止当前正在进行的动作,而去执行下达的命令。
:set noswf 关掉VIM自动保存的那个紧急回复的文件。.文件名.swp 一般是隐藏的,并且没有密码功能。
:X 大写X会提示输入密码,给文件加密。
:recover +档名 紧急恢复。


:r + 文件名,可以在光标位置插入 这个文件的内容,好强大,有木有。
:35r + 文件名,将文件插入到第36行之后。
标示指令:有三种模式,字符,行,块。分别使用小字v 大写V ,CTRL+v(小写) windows下ctrl+v 是粘贴键,所以用ctrl+q 来进入其中。
可视化块会以列来标示选中,还记得列表只要标题吗,这样就很好用呢!在这个模式下,选中内容后,可以用shift+> 来将内容右移一个TAB位置。相反的符号则相反。
ctrl+w n(是字母,不是数字,可以将视窗上下一分为二),ctrl+w s 将原视窗一分为二,但第二个里的内容仍是第一个里的,即复制一个视窗。ctrl+w q 关闭视窗。
ctrl+w j   ctrl+w k 移至下一个或上一个视窗。
:sp + 文件名,可以新开一个视窗来编辑文件或新建 一个文件来编辑。
Ctrl+w o 使当前视窗成为唯一编辑的视窗,其它的隐藏掉。
@: 這是 Vim 的一個很特殊的指令,可以重複前一次的冒號命令。
:sh(ell) 執行 shell。使用 exit 回到 vim。
按下:后,可以使用上下左右键来找寻之前用过的:命令。
大寫 K 會顯示游標所在處之 word 的 man page 系統線上使用手冊。
:r !commond 這個就妙了!會在游標所在處次一行插入外部指令 commond 執行後的輸出內容。例如 :r !date 就會插入日期時間。
      :h name 這樣就會叫出 name 這個說明檔,如果後面沒接 name, 則會叫出 help.txt
:ver 會顯示版本

几个配置:autoindent[ai]   autowrite[aw] background[bg] backup[bk] writebackup[wb] backupdir[bdir]  browsedir[bsdir]就是菜单项 文件/打开 会弹出的文件浏览选择窗口。cindent[cin] 更适合C语言的缩进。
cmdheight[ch]状态栏的行数,建议设为2行。
compatible[cp]设为和VI兼容,但这样的话 VIM的扩展功能会受抑制。默认为OFF.
 confirm[cf]各种确认动作,预设为OFF.
directory[dir]swap档存放的目录。
ignorecase[ic]寻找时不分大小写,会对中文造成困扰。预设为off.
incsearch[is]加强式搜索,在输入patern时就在文件内移对光标找对应的patern.
hlsearch[hls]符合字串时,会反白表示,预设为OFF.
textwidth[tw]一种折行功能,规定了可以一行有多宽,以放多少字节为单位。
wrapmargin[wm]与tw类似,只是宽度是从视窗右边向左边算起。
wrap假折行,只在屏幕显示,并未插入eof.
wrapscan[ws]预设已开,就是在搜索时若到尾部了,可以从头开始再找。循环。
ruler[ru]在屏幕右下角显示,游标在文档中的位置,如底部,顶部或百分比。
statusline 修改状态列显示的格式。 shiftwidth[sw]设定〉〉移动的多少,可以用作缩进也行。
tabstop[ts]预设为8个字符的宽,为一个tab键的宽度。
showcmd[sc]在状态列显示目前所执行的指令及未未完成的指令片段。
showmde[smd]显示当前的模式,在载入文件时,会在这个地方显示文件名及其总行数,总字数。
visualbell 以屏幕闪动代替beep声。
list 也是一种模式,这样会让TAB的地方以^I的显示,行尾以的EOL显示成$
:set nolist 也就是nooption 可以取消设置。
swapfile[swf]是否需swap至磁碟。
:history[hi]记录所用过的:后的命令频数,默认为20步。
在.vimrc文件里 "是注释的标志,其后内容不起作用。
* 指前所綁住的字元或字元集合,出現 0 次或 0 次以上。
\+ 和 * 作用相同,但不包括出現 0 次。
\= 指前所綁住的字元恰好出現 0 或 1 次。
\| 這是多選,就是 or 的意思,被 \| 隔開的 pattern,任一個符合的話就算符合。
以下是中括号的用法,表示一个范围。
[...] 字元集合,表示中括號中所有字元中的其中一個。
[?..] 這是上述 [. . . ] 的補集,表非中括號內字元的其中一個。
. 除換行字元外的任一單一字元。
? 匹配行首,指其後綁住的字串,出現在行首才符合。
$ 匹配行尾,指其前綁住的字串,出現在行尾才符合。含換行字元。
\< 匹配字(word)首。所謂 word 包括文數字及底線。
\> 匹配字尾。這就是前所提及的限定用法
\{n,m} 指前所綁住的字元或字元集合最少出現 n 次,最多出現 m 次。n就是最小值, m是最大值。{}中若只有一个数字,则表示出现这个限定的次数。
中介字元,用来简化正则表达式的写法,如下:
\s 表空白字元,即 Space 或 Tab。
\S 表非空白字元。
\d 表數目字(digits),即 [0–9]。
\D 表非數目字,即 [^0–9]。
\w 表一般字元(word character),包括底線。即 [0–9a–zA–Z_]。
\W 表非一般字元,即 [^0–9a–zA–Z_]。
\a 表英文字母(alphabetic character),即 [a–zA–Z]。
\A 表非英文字母,即 [^a–zA–Z]。
\l 表小寫字母(lowercase character),即 [a–z]。
\L 表非小寫字母,即 [^a–z]。
\u 表大寫字母(uppercase),即 [A–Z]。
\U 表非大寫字母,即 [^A–Z]。
:g/^\s*$/d  删除空白行的意思。
:%s/^\d\d\d\d\d\d\d\d\d\>/ID:&/g  其中&代表要搜索的符合条件的内容。
\U 在 pattern 的位置的時候是指非大寫字
母的樣式,即 [?A–Z],但如果是在置換字串位置的時候是指將其後的字串通通改成大寫。
折叠:可以在可视模式下,选中行或块,然后用zf来折叠

posted @ 2013-08-29 14:10  xfuture  阅读(518)  评论(0编辑  收藏  举报