||
移动
Numeric + h|j|k|l 执行n次操作
h 向左移动(一个字符)
j 向下移动一行
k 向上移动一行
l 向右移动(一个字符)
e/E 移动到单词的末尾
(/) 移动到当前(一下)句的开始
{/} 移动到当前(一下)段的开始
[[/]] 移动到当前(一下)部分的开始
0 移动到行首
$ 移动到行末
w 向后移动一个文本块
W 向后移动一个文本块(忽略标点)
b 向前移动一个文本块
B 向前移动一个文本块(忽略标点)
^ 移动到当前行的第一个非空白字符
回车/+ 移动到下一行的开头的第一个字符
- 移动到上一行的开头的第一个字符
CTRL-F 下翻一屏
CTRL-B 上翻一屏
CTRL-D 下翻半屏
CTRL-U 下翻半屏
z + 回车 将当前行移到屏幕顶部
z. 将当前行移到屏幕中间
z- 将当前行移到屏幕底部
CTRL-L/CTRL-R 重新刷新屏幕
H 移到屏幕的第一行
nH 移到屏幕的第n行
M 移到屏幕的中间
L 移到屏幕的最后一行
nL 移到屏幕的最后一行前的n行
CTRL-L 显示行信息
G 移动到文件的最后一行
nG 移动到文件的第n行
`` 移动到上一个位置
编辑
i 在当前位置前插入
I 在行首插入
a 在当前位置后添加
A 在行末添加
o 在当前行下方新建一个空行开始插入
O 在当前行上方新建一个空行开始插入
s 删除当前字符然后进入插入状态
S 删除当前行然后进入插入状态
cw 修改当前词语(删除然后进入插入状态)
c2b 删除前面两个词语
c$ 删除本行当前位置后所有的内容
c0 删除本行当前位置前所有的内容
cc 修改当前行(删除然后进入插入状态)
r 替换当前字符(还保持命令状态)
R 连续替换(进入替换状态)
~ 修改当前字符的大小写
J 连接两行
:% s/sclb=\d*\.*\d*e-\d*/sclb=-1/g 把文档中所有sclb=*.*e-*全部替换为sclb=-1
: B,E s/sclb=\d*\.*\d*e-\d*/sclb=-1/g 把文档中B行到E行所有sclb=*.*e-*全部替换为sclb=-1
标记
mx 将当前位置标记为x
'x 移动到标记为x的行
`x 移动到标记为x的位置
``/'' 在两次位置间切换
删除
dw 删除一个单词
d2w 删除两个单词
dd 删除当前行
d3d 删除3行
d0 删除当前行中在光标前的所有内容
d$/D 删除当前行中在光标后的所有内容
db 删除前一个单词
x 删除一个字符
3x 删除3个字符
移动
p 粘贴
xp 相当于交换两个字符的位置
yw 复制一个单词
. 重复上一个操作
. 取消上一个操作
搜索
/pattern 从前往后搜
?pattern 从后往前搜
n/N 和上一词搜索方向相同(相反)再搜
fx/Fx 在同一行中查找下(上)一个x字符并移动光标
替换
:s/old/new 替换当前行的第一个匹配
:s/old/new/g 替换当前行的全部匹配
:1,100s/old/new/g 替换1-100行的全部匹配
:1,$s/old/new/g 替换全部匹配=:%s/old/new/g
:g/pattern/s/old/new/g 查找满足pattern条件的行并进行替换
命令组合:
Change Delete Copy from Cursor to ...
cH dH yH top of screen
cL dL yL bottom of screen
c+ d+ y+ next line
c5| d5| y5| column 5 of current line
2c) 2d) 2y) second sentence following
c{ d{ y{ previous paragraph
c/pattern d/pattern y/pattern pattern
cn dn yn next pattern
cG dG yG end of file
c13G d13G y13G line number 13