
你要让你的光标移动更有效率,你一定要了解下面的这些命令,千万别跳过。
G → 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137
到第137行)gg → 到第一行。(陈皓注:相当于1G,或 :1)G → 到最后一行。w → 到下一个单词的开头。e → 到下一个单词的结尾。> 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成(陈皓注:程序变量)
> 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。(陈皓注:程序语句)

下面,让我来说说最强的光标移动:
% : 匹配括号移动,包括 (, {, [.
(陈皓注:你需要把光标先移到括号上)* 和 #:
匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)相信我,上面这三个命令对程序员来说是相当强大的。
你一定要记住光标的移动,因为很多命令都可以和这些移动光标的命令连动。很多命令都可以如下来干:
例如 0y$ 命令意味着:
0 → 先到行头y → 从这里开始拷贝$ → 拷贝到本行最后一个字符
你可可以输入 ye,从当前位置拷贝到本单词的最后一个字符。
你也可以输入 y2/foo 来拷贝2个 “foo” 之间的字符串。
还有很多时间并不一定你就一定要按y才会拷贝,下面的命令也会被拷贝:
d (删除 )v (可视化的选择)gU (变大写)gu (变小写)(注:可视化选择是一个很有意思的命令,你可以先按v,然后移动光标,你就会看到文本被选择,然后,你可能d,也可y,也可以变大写等)
你只需要掌握前面的命令,你就可以很舒服的使用VIM了。但是,现在,我们向你介绍的是VIM杀手级的功能。下面这些功能是我只用vim的原因。
0 ^ $ f F t T , ;0 → 到行头^ → 到本行的第一个非blank字符$ → 到行尾g_ → 到本行最后一个不是blank字符的位置。fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。t, →
到逗号前的第一个字符。逗号可以变成其它字符。3fa → 在当前行查找第三个出现的a。F 和 T →
和 f 和 t 一样,只不过是相反方向。
还有一个很有用的命令是 dt" → 删除所有的内容,直到遇到双引号—— "。
a 或 i在visual 模式下,这些命令很强大,其命令格式为
a 和 i
d (删除), y (拷贝), v (可以视模式选择)。w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。
假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 o 的位置。
vi" → 会选择 foo.va" → 会选择 "foo".vi) → 会选择 "foo".va) → 会选择("foo").v2i) → 会选择 map (+) ("foo")v2a) → 会选择 (map (+) ("foo"))

块操作,典型的操作: 0
^ → 到行头 → 开始块操作 → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)I-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效。

在Windows下的vim,你需要使用 而不是 , 是拷贝剪贴板。
和
在 Insert 模式下,你可以输入一个词的开头,然后按

qa 操作序列 q, @a, @@qa 把你的操作记录在寄存器 a。@a 会replay被录制的宏。@@ 是一个快捷键用来replay最新录制的宏。示例
在一个只有一行且这一行只有“1”的文本中,键入如下命令:
qa Yp q →
qa 开始录制Yp 复制行. //Y复制行 p粘贴 增加1.q 停止录制.@a → 在1下面写下 2@@ → 在2 正面写下3100@@ 会创建新的100行,并把数据增加到 103.

v,V,
前面,我们看到了 的示例 (在Windows下应该是v 和 V。一但被选好了,你可以做下面的事:
J → 把所有的行连接起来(变成一行)< 或 > →
左右缩进= → 自动给缩进 (注:这个功能相当强大,我太喜欢了)

在所有被选择的行后加上点东西:
j 或 或是 /pattern 或是 % 等……)$ 到行最后A, 输入字符串,按 ESC。
(I 是在行前加上点东西 A 是在行后)

:split 和 vsplit.
下面是主要的命令,你可以使用VIM的帮助 :help split. 你可以参考以前的一篇文章VIM分屏。
:split → 创建分屏 (:vsplit创建垂直分屏) : dir就是方向,可以是 hjkl 或是
←↓↑→ 中的一个,其用来切换分屏。_ (或 | ) :
最大化尺寸 (+ (或 - ) :
增加尺寸

学习vim就像学弹钢琴一样,一旦学会,受益无穷。
——————————正文结束——————————
这是一个你不需要使用鼠标,不需使用小键盘,只需要使用大键盘就可以完成很多复杂功能文本编辑的编辑器。不然,Visual Studio也不就会有vim的插件了。
