VIM的一些操作小技巧

vim的设计理念是:组合。
命令的组合,模式的组合,
 
 
普通模式
左: h 上:k 下:j 右 : l
 
i : 当前光标处插入
I: 到光标所在行的行首进入插入模式
a: 在当前光标的后一位进入插入模式(append追加)
A: 光标所在行尾进入插入模式
o: 当前行的下面开启新的一行,进入插入模式
O: 当前行的上面一行开启新的一行,进入插入模式
 
定位:
gg: 定位到文档头
G: 定位到文档尾
nG:移至第n行
H:移至屏幕上面
M:屏幕中间
L:屏幕下面
*:读取光标处字符串,并移动至下一处同样内容
#:读取光标处字符串,并移动至上一处同样内容
CTRL-f:向下移动一屏
CTRL-b:向上移动一屏
 
复制(yank):
nyy :  复制n行
粘贴(paste):
np : 将最后一次删除或复制的内容(即寄存器的内容)粘贴n次
 
查找:
/  +字符串       或者空格:(空格是自定义键)(向后查找字符串)
?+字符串      (向前查找字符串)
之后按n键定位至下个目标处。
 
替换:
r+要替换的字符:替换光标所在处的字符
 
撤销:u
反撤销: Ctrl + r
 
删除/剪切 (删除是将目标内容移至寄存器,可以粘贴):
x : 删除当前光标下的字符
dw:从光标处删除至一个单词的末尾(包含空格)
de:从光标处删除至一个单词的末尾(不包含空格)
(n)dd:删除当前(n)行
d$:删除当前光标到行尾(to the end of line)
D: 删除当前光标到行尾(自定义)(=d$)
dG : 删除到文档尾(自定义)
 
删除总结:
格式如下:
number d object 或者  d number object
其中number代表执行命令的次数,默认为1;d代表删除;object代表命令操作的对象(w--光标处删除至一个单词的末尾,包含空格;e--光标处删除至一个单词的末尾,不包含空格;$ --行尾,当前光标到行尾;j--移动到下一行;^--行首,光标至行首;)
 

退出插入模式: Esc

结构化的删除:
cit/cat : 删除标签结构(tag)
ci<>/ca<> : 删除尖括号,或者里面内容
ci()/ca(): 删除小括号,或者内容
ci[]/ca[]: 删除中括号,或者里面的内容
ci{}/cat{}: 删除大括号.或者里面的内容

Zend-Coding
html: (xs/xt/5)  -->Ctrl + y -->,


插入/输入模式

Ctrl + n : 向左移动光标
Ctrl + l : 向右移动光标
Ctrl + j : 向下
Ctrl + k : 向上移动光标

Ctrl + h : 删除前一个

命令行模式:
:w  <回车>保存
:q  <回车> 退出
:q!<回车> 强制退出(不保存)
:wq <回车> 保存再退出
:set fenc<回车> 查看文档的编码
 
:%s   /原始内容/替换的内容/g <回车>   替换    --------(g--global全局的,此处即为替换所有。不加g为替换第一个。不加%为在一行内替换所有。逐项询问用户确认为/gc)
 
 
 
 
普通模式的移动相关的命令:
概念--motion:当光标从一处移动到另一处,这两点之间的文本被称作“跨过”,这里的命令被称作motion。
 
b:向前移动一个单词
w:向后移动一个单词
0(数字):移至当前行首
^:移至当前行第一个字母
$:移至当前行行尾
):移至下一个句子
(:移至上一个句子
%标签对应
原文地址:https://www.cnblogs.com/xiaoxiao0314/p/4967324.html