*跳到与光标处一样的单词。
%匹配括号等。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来折叠