插入、查找、定位、删除、复制粘贴、替换
一、插入文本
常用的,当然是i,但是如果只用i,那就太土鳖了,记住i、o、a即可,
当然大小写,一般区分前后的概念,这个是vim在设计各类指令的原则。
命令 执行的操作 记忆方法
-----------------------------------------------------------------
i 在光标的左侧插入字符
I 在行首插入字符
a 在光标的右侧添加文本
A 在行尾添加文本
o 在当前行下面插入一空行
O 在当前行上面插入一空行
-----------------------------------------------------------------
下面还有几个常用的设置:
命令 执行的操作 记忆方法
-----------------------------------------------------------------
:set showmode 当vi处在输入模式下时显示提示信息
:set sm 即时显示配对的)或}
:set ts=n 把制表符设置为n(默认为8)
:set ai 下一行从前一行的缩进位置开始(这个在写代码时比较有用)
-----------------------------------------------------------------
二、查找
命令 执行的操作 记忆方法
-----------------------------------------------------------------
/xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串,/ 表示向下查找,? 表示
向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.
一般来说是区分大小写的,要想不区分大小写,那得先输入
:set ignorecase
查找到以后,再输入 n 查找下一个匹配处,输入 N 反方向查找.
*(#) 当光标停留在某个单词上时,输入这条命令表示查找与该单词匹配的
下(上)一个单词. 同样,输入 N 反方
向查找.
g*(g#) 此命令与上条命令相似,只不过它不完全匹配光标所在处的单词,而
是匹配包含该单词的所有字符串.
gd 本命令查找与光标所在单词相匹配的单词,并将光标停留在文档的非
注释段中第一次出现这个单词的地方.
% 本命令查找与光标所在处相匹配的反括号,包括 () [] {}
f(F)x 本命令表示在光标所在行进行查找,查找光标右(左)方第一个x字符.
找到后:
输入 ; 表示继续往下找
输入,表示反方向查找
三. 移动光标
命令 执行的操作 记忆方法
-----------------------------------------------------------------
w(e) 移动光标到下一个单词.
b 移动光标到上一个单词.
0 移动光标到本行最开头.
^ 移动光标到本行最开头的字符处.
$ 移动光标到本行结尾处.
H 移动光标到屏幕的首行.
M 移动光标到屏幕的中间一行.
L 移动光标到屏幕的尾行.
gg 移动光标到文档首行.
G 移动光标到文档尾行.
c-f (即 ctrl 键与 f 键一同按下) 本命令即 page down.
c-b (即 ctrl 键与 b 键一同按下,后同) 本命令即 page up.
'' 此命令相当有用,它移动光标到上一个标记处,比如用 gd,* 等查
找到某个单词后,再输入此命令则回到上次停留的位置.
'. 此命令相当好使,它移动光标到上一次的修改行.
`. 此命令相当强大,它移动光标到上一次的修改点.
四、删除文本
命令 执行的操作 记忆方法
-----------------------------------------------------------------
x 删除光标所在的字符
6x 删除光标位置的字符以及右侧的5个字符
X 删除前一个字符
dd 删除当前行
4dd 删除4行
64dd 删除64行
dw 删除一个单词
d0 删除到行首
d$ 删除到行尾
d 删除一个区域(只用于vim)
p 把被剪切的文本粘贴到下面(整行)或右侧(部分行)
P 把被剪切的文本粘贴到上面(整行)或左侧(部分行)
"add 把当前行粘贴到缓冲区a里
"ap 把缓冲区a里的内容粘贴到当前位置
J 把当前行于下一行合并为一行
xp 调换两个字符的位置
-----------------------------------------------------------------
五、替换文本
命令 执行的操作 记忆方法
-----------------------------------------------------------------
rch 把光标位置的字符替换为ch
R 替换光标右边的文本
s 把光标所在的字符替换为任意个字符
S 替换整行内容
cw 修改一个单词
c 修改区域里的文本(vim)
~ 改变所扫描的或区域里的字母的大小写
!tr'[a-z]''[A-Z]' 把区域里的字母转换为大写(vim)
!tr'[A-Z]''[a-z]' 把区域里的字母转换为小写(vim)
-----------------------------------------------------------------
六、复制粘贴文本
命令 执行的操作 记忆方法
-----------------------------------------------------------------
yy 复制当前行
6yy 复制六行
yw 复制单词
y 复制区域(vim)
p 把复制的文本粘贴到右边或下面
P 把复制的文本粘贴到左边或上面
"ayy 把当前行复制到缓冲区a里
"ap 恢复缓冲区a里的内容
----------------------------------------------------------------