学习笔记 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 一样,只不过是相反方向。
![Line moves](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/line_moves.jpg)
按单词移动:
![Word moves example](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/word_moves.jpg)
-
w
→ 到下一个单词的开头。 -
e
→ 到下一个单词的结尾。 - W,E,反方向
按匹配移动:
%
: 匹配括号移动,包括(
,{
,[
. (陈皓注:你需要把光标先移到括号上)*
和#
: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
区域选择:
vi"
→ 会选择foo
. (fxj:i” 是 in “的意思)va"
→ 会选择"foo"
. (fxj:a” 是 around “的意思)vi)
→ 会选择"foo"
.va)
→ 会选择("foo")
.v2i)
→ 会选择map (+) ("foo")
v2a)
→ 会选择(map (+) ("foo"))
![Text objects selection](http://yannesposito.com/Scratch/img/blog/Learn-Vim-Progressively/textobjects.png)
块操作:
<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>-
) : 增加尺寸