学习笔记 for 《简明 Vim 练级攻略》 分类: ubuntu 2013-06-18 13:02 288人阅读 评论(0) 收藏
原文出处:http://coolshell.cn/articles/5426.html
以及:http://coolshell.cn/articles/1679.html
以及:http://coolshell.cn/articles/1679.html
插入模式:
a→ 在光标后插入o→ 在当前行后插入一个新行O→ 在当前行前插入一个新行cw→ 替换从光标所在位置后到一个单词结尾的字符
光标移动:
-
0→ 数字零,到行头 -
^→ 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等) -
$→ 到本行行尾 -
g_→ 到本行最后一个不是blank字符的位置。 -
fa→ 到下一个为a的字符处,你也可以fs到下一个为s的字符。 (fxj:f是find的意思) -
t,→ 到逗号前的第一个字符。逗号可以变成其它字符。 (fxj:t是till的意思) -
3fa→ 在当前行查找第三个出现的a。 - F 和 T → 和 f 和 t 一样,只不过是相反方向。

按单词移动:

-
w→ 到下一个单词的开头。 -
e→ 到下一个单词的结尾。 - W,E,反方向
按匹配移动:
%: 匹配括号移动,包括(,{,[. (陈皓注:你需要把光标先移到括号上)*和#: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
区域选择:
vi"→ 会选择foo. (fxj:i” 是 in “的意思)va"→ 会选择"foo". (fxj:a” 是 around “的意思)vi)→ 会选择"foo".va)→ 会选择("foo").v2i)→ 会选择map (+) ("foo")v2a)→ 会选择(map (+) ("foo"))

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

或者在行尾插入:<C-v> + <C-d> 或 hjkl + $ + A + [ESC]
-
<C-v>→ 开始块操作 -
<C-d>→ 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的) - $ → 到行尾
-
A-- [ESC]→ A是append,插入“--”,按ESC键来为每一行生效。
自动提示:
在 Insert 模式下,你可以输入一个词的开头,然后按 <C-p>或是<C-n>,自动补齐功能就出现了
可视化后可以进行的操作:
J→ 把所有的行连接起来(变成一行)<或>→ 左右缩进=→ 自动给缩进d(删除 )- y(复制)
gU(变大写)gu(变小写)
分屏: :split 和 vsplit.
-
:split→ 创建分屏 (:vsplit创建垂直分屏) - <C+w> s:上下分割当前打开的文件。
- <C+w> v:左右分割当前打开的文件。
- <C+w> c:关闭分屏
- <C+w> =:让所有的屏都有一样的高度
-
<C-w><dir>: dir就是方向,可以是hjkl或是 ←↓↑→ 中的一个,其用来切换分屏。 -
<C-w>_(或<C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏) -
<C-w>+(或<C-w>-) : 增加尺寸

浙公网安备 33010602011771号