废话不多说,直接上菜:
一、关于配置
syntax on "打开语法高亮
set background=light "设置背景色,每种配色有两种方案,一个light、一个dark
set nu "显示行号
set cindent "设置缩进有三个取值cindent(c风格)、smartindent(智能模式,其实不觉得有什么智能)、autoindent(简单的与上一行保持一致)
set expandtab "用空格键替换制表符
set tabstop=4 "制表符占4个空格
set shiftwidth=4 "默认缩进4个空格大小
set filetype=c
highlight WhitespaceEOL ctermbg=red guibg=red
match WhitespaceEOL /\s\+$/
set hlsearch "高亮显示搜索结果
set incsearch "增量式搜索(亲身体验,用处不大)
filetype on "检测文件类型
一般情况下,以上就够用了。不懂的请自行google。
二、行间移动
先说下基本的移动命令:h 表示向前一个字符; l 表示向后一个字符; j 表示向下一行; k 表示向上一行。
1、普通模式下使用“数字+G”的方式是行间移动的常用方式。比如要跳到33行,在普通模式下输入33再按下G,就可以直接跳到33行。(注:数字 + gg也可以达到相同的效果)
2、当你用"G"命令从一个地方跳转到另一个地方时,Vim会记得你起跳的位置。这个位置在Vim中是一个标记。使用命令“``”可以使你跳回到你刚才的出发点。这个“`”是Tab键之上的那个键。连 按两下就会回到刚才的位置。换句话说,“``”命令会让你在两个位置之间来回跳跃。
3、那么有没有办法可以跳出这个死循环呢?答案是:CTRL + O/I。CTRL + O 会让你一直往回跳,而CTRL + I恰好相反。
4、精确匹配:* 和 #: 命令匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)。当然他们之前也可以加上数字,表示移动到第几个匹配的单词。
5、n + <Enter>: n 为数字。光标向下移动 n 行。
6、gg回到文件开头;G直接到结尾。
7、数字 + % :跳到文件相应的百分比位置。
8、H/M/L:分别跳到屏幕的顶端/中间/底端
9、zz,zt,zb:这个自己体验下~~
10、来个高端的:Vim允许你在文本中定义你自己的标记。命令"ma"将当前光标下的位置名之为标记"a"。从a到z一共可以使用26个自定义的标记。定义后的标记在屏幕上也看不出来。不过Vim在内部记录了它们所代表的位置。要跳转到一个你定义过的标记,使用命令`{mark}, {mark}就是你定义的标记的名字。就象这样:`a命令'mark(单引号,或者叫呼应单引号)会使你跳转到mark所在行的行首。这与`mark略有不同,`mark会精准地把你带到你定义mark时所在的行和列。
三、翻页
1、CTRL + F/B : F表示向下翻一页;B表示向上翻一页。
2、CTRL + D/U : D向下半页;U向下半页。
3、CTRL + E/Y :E向下一行;Y向上一行。
四、行内移动
1、0(是数字零)表示移动到光标所在行的行首;$表示移动到行尾。
2、^ 移动到本行第一个非空白字符,简单说就是第一个字出现的地方;g_ 移动到最后一个字。
3、w 到下一个单词的开头; b 到上一个单词的开头。
4、e 到下一个单词的结尾; ge 到上一个单词的结尾。
5、对应于3和4有:W/B/E/gE。自己体会下。
6、精确匹配:f + x 表示寻找下一个字符x。f前面可以有数字,表示第几个。F与f作用相同,但是方向相反。
7、t和T也是行内精确匹配一对命令组合:同样也是作用相同方向相反。自己体会下他们与f/F有何区别。
注:这4个命令都可以用";"来重复。以","也是重复同样的命令,但是方向与原命令的方向相反2 。无论如何,这4个命令都不会使光标跑到其它行
8、以匹配一个括号为目的的移动
写程序的时候很容易被层层嵌套的()给弄糊涂。此时使用命令“%”就太方便了:它跳转到与当前光标下的括号相匹配的那一个括号上去。如果当前光标在"("上,它就向前跳转到与它匹配的")"上,如果当前在")"上,它就向后自动跳转到匹配的"("上去。这 对 方 括 号[]和 花 括 号{}同 样 适 用 。如果当前光标并没有停留在一个可用的括号字符上,"%"也会向前为
它找到一个。所以如果当前光标位于上例中的行首,"%"命令还是会向前
先找到第一个"(",然后找到与它匹配的")"。
9、+ 光标移动到非空格符的下一列 ; - 光标移动到非空格符的上一列。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。
10、数字 + 空格 表示向后移动几个字符。