ITPub博客

首页 > Linux操作系统 > Linux操作系统 > VI 命令小结

VI 命令小结

原创 Linux操作系统 作者:rocky_gao 时间:2010-06-22 17:35:20 0 删除 编辑

启动vi命令

命令                                              功能
Vi filename                                 从第一行开始编辑filename文件
vi +n filename                           从第n行开始编辑filename文件
vi + filename                             从最后一行开始编辑filename文件
vi +/pattern filename                从包含pattern的第一行开始编辑
vi –r filename                             在系统崩溃之后恢复filename文件
vi –R filename                           以只读方式编辑filename文件

光标移动命令

命令                                                                功能
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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-04-09

  • 博文量
    112
  • 访问量
    299800