vim 命令进入ESC状态:
移动光标
1. 要移动光标,请依照说明分别按下 h、j、k、l 键。
^
k 提示: h 的键位于左边,每次按下就会向左移动。
< h l > l 的键位于右边,每次按下就会向右移动。
j j 键看起来很象一支尖端方向朝下的箭头。
v k 的键位于左边,每次按下就会向左移动。
2. 输入 2w 使光标向前移动两个单词。(n+w)
3. 输入 3e 使光标向前移动到第三个单词的末尾。 (n+e)
4. 输入 0 (数字零) 移动光标到行首。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VIM的进入和退出
:q! <回车> 放弃所有改动。
:wq <回车> 保存改动。
:w+“文件名” <回车> 保存改动并创建新文件。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
文本编辑之删除
X:光标移动到错误字符位置,按X删除单个字符
dw:删除单词,光标停留在单词的第一个字母按dw删除整个单词
d2w:删除2个单词 (d+n+w)
d$: 光标移动到行首,按d$删除整行
dd: 删除整行(剪切)
2dd:删除2行 (n+dd)
d 删除操作符:
w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
文本编辑之插入
i: 光标处按下i后,在光标处插入文本
A: A或(shift+a)直接跳到行末并插入文本
a: 光标之后插入
dd: 剪切整行到剪切板
yy: 复制整行
yw: 复制一个单词
y(n)w: 复制n个单词
p: 粘帖整行
$: 移动至行末
j$: 移动到下一行行末
r: 修改光标停留处字符
cw: 修改一个单词(光标处及后面的字符) 修改完毕需按ESC
ce: 删除一个单词,并进入插入模式 修改完毕需按ESC
c$: 删除光标处及后面的所有数据,并进入插入模式
o: 在下方插入
O(shift+o): 在上方插入一行
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
文本编辑之撤销
u: 撤销最后一次执行的命令
U(shift+u): 恢复该行的原始状态
ctrl + r: 撤销掉撤销命令
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
定位及搜索替换
ctrl + g: 底部显示状态信息行,(当前编辑的文件名和光标所在的行号)
G(shift + g): 跳转到最后一行
gg: 跳转到第一行
/: 输出需要查找的字符串 按Enter
n: 查找同上一次的字符串
N(shift+n): 反向查找同上一次的字符串
?: 输出需要查找的字符串 按Enter(反向查找)
ctrl + o: 回退到之前位置,重复按可回退多步
ctrl + i: 跳转到较新的位置
%: 光标停留在括号上,按%可跳到配对的括号上
:s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配字符串。
:s/thee/the/g 则是替换全行的匹配串,该行中所有的 "thee" 都会被the改变。
:#,#s/old/new/g 其中 #,# 代表的是替换操作的若干行中首尾两行的行号。
:%s/old/new/g 则是替换整个文件中的每个匹配串。
:%s/old/new/gc 会找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
执行外部shell命令
:!+shell命令
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
VIM
vimtutor -g zh
(w:代表单词,$:代表行末)
0 将光标移动到行首
i 当前光标前插入
a 当前光标后插入
o 光标下插入一行
x 删除当前字符
u 撤销最后执行的命令
U 撤销对整行的修改
w 将光标移动到下一个空格后
e 将光标移动到下一个空格前
0 将光标移动至行首
p 粘帖到当前光标下一行(dd+p为剪切和粘帖)
r 修改光标处字符(按r再输入修改后的字符)
cw/ce 删除光标位置至单词结尾并进行修改
c2w/c2e 删除当前光标的2个单词,并插入
c$ 删除光标后至行末并插入
d 删除
dd 删除1整行(剪切)
d$ 删除一行中光标至结尾的内容
3dd 删除3行
2d$ 删除光标后到2行尾的内容
dl 删除光标后字符(当前字符)
dh删除光标前一个字符
dk/dj 删除整行
d2w删除连续2个空格前的字符(包含最后一个空格),并光标移动到第二个空格后
d2e删除连续2个空格前的字符(不包含最后一个空格),并光标移动到第二个空格前
CTRL-R 撤消以前的撤消命令,恢复以前的操作结果