启动vi命令
命令 功能光标移动命令
命令 功能
SPACE、l、右向箭头 光标向右移动一格
BACKSPACE、h、左向箭头 光标向左移动一格
k、向上箭头 光标向上移动一行,光标列向位置不变
- 光标移到上面一行的开始
j、向下箭头 光标向下移动一行,光标列向位置不变
+,RETURN 光标移到下面一行的开始
^、0 光标移到所在行的开始
$ 光标移到所在行的末尾
w 光标右移一个单词
W 右移一个以空格作为分隔符的单词
b 光标左移一个单词
B 左移一个以空格作为分隔符的单词
e 光标右移到一个单词的结尾
E 右移一个以空格作为分隔符的单词结尾
( / ) 光标移到本句/下一句的开始
[[ / ]] 光标移到本节/下一节的开始
{ / } 光标移到本段/下一段的开始
:$ 光标移到文件末尾
命令 功能
Ctrl+d 向前移动半个屏幕
Ctrl+u 向后移动半个屏幕
Ctrl+f 向前移动一个屏幕
Ctrl+b 向后移动一个屏幕
nG 光标移到第n行,不指定n,则移到最后一行
H/ M/ L 光标移到屏幕顶部 / 中部 / 底部
添加文本
命令 文本添加位置
i / I 在光标前/ 在该行的第一个非空白字符前
a / A 在光标后/ 所在行的行尾
o / O 在当前行的下面/ 上面新建一行
r 替换当前字符(一次只能替换一个)
R 替换从当前字符开始的字符,直到按Esc键为止
替换字符串
:[address]s/old/rew[/cg]
命令中的元素 含义
address
例:
:s/old/new
:.,$s/old/new/g
:%s/old/new/gc
一个搜索字符串、一个行编号或是一个由逗号分隔的两个行号。其中“.”表示当前行,“$”表示最后一行,“%”表示整个文件。用户可以使用标记或搜索字符串来代替行号。
old 被替换的字符串
new 替换字符串
c 替换前要求确认
g 指定一个全局替换(每行不止替换一处)
删除和修改文本
命令 作用
nx 删除从当前字符开始的n个字符(含当前字符)
nX 删除从当前字符前面的n个字符(不含当前字符)
ndd 删除当前行开始的n行
d0 删除到行首
D、d$ 删除到行尾
dw 删除一个单词。若光标处在某个词的中间,则从光标所在位置开始删至词尾
dtc 删除到位于当前行的下一个字符c
n~ 改变从当前字符开始的n个字符的大小写
下面命令使vim处于Insert模式,按Esc键回Normal模式
ns 替换由n所指定数目的字符
S 替换整行
ncc 修改由n所指定数目的行
ctc 修改到位于当前行的下一个字符c
C 修改到行尾
复制与粘贴
命令 作用
nyy、nY 复制当前行开始的n行
y0 复制至行首,不含光标所在处字符。
y$ 复制至行尾,含光标所在处字符
nyw 复制n个 word
yG 复制至文件尾,包含当前行
y1G 复制至文件首,包含当前行
p 粘贴至光标后,若整行复制则贴在当前行下面
P 粘贴至光标前,若整行复制则贴在当前行上面
搜索字符串
命令 作用
/rexp 回车 向前搜索rexp
?rexp 回车 向后搜索rexp
n 重复最近一次的搜索
N 重复最近一次的搜索,但搜索方向相反
/ 回车 向前重复最近一次的搜索
? 回车 向后重复最近一次的搜索
% 可以查找配对的括号 )、]、}
其它命令
命令 作用
J 将当前行和下面一行连接起来
. 重复上一次有效命令
U 取消对整行的所有修改操作
u 取消上一次操作,可连续使用
Ctrl+r 取消上一次的取消命令u,可连续使用
:w 将工作缓存区内容写入当前文件
:w fname 将工作缓存区内容写入由fname指定的文件
:q / :q! 退出vi / 强行退出vi
:wq 存盘退出
ZZ 将工作缓存区内容写入当前文件并退出
:x 作用同ZZ
:r fname 插入文件fname中的内容
:sp fname 切分新窗口,打开指定文件,用ctrl+ww切换
Ctrl+p/n Insert模式下,向上/下搜索,补全一个词
Ctrl+xl Insert模式补全一行,ctrl+p/n选择上/下一个匹配
:!bash 打开bash,退出后自动回到vim
”np 提取寄存器n(1~9)中的内容
:n / :N 同时打开多个文件时,在文件之间切换
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11976525/viewspace-665897/ ,如需转载,请注明出处,否则将追究法律责任。