VIM编辑器之常用命令

基本模式切换

按键 作用 按键 作用
ESC C-[ C-c 进入命令模式
i 在光标前进入插入模式 I 在本行行首进入插入模式
a 在光标后进入插入模式 A 在本行行尾进入插入模式
o 在下一行插入新行,并进入插入模式 O 在上一行插入新行,并进入插入模式
: 执行ex命令 S-q 进入ex模式
v   V  

光标移动

基本移动

向左 向下 向上 向右
h j k l

文本间移动

按键 作用 按键 作用
b 上一个单词的开头 w 下一个单词的开头
B 忽略标点的b W 忽略标点的w
e 下一个单词的结尾 E 忽略标点的e
$ 移动到行尾 0 移动到行首
^ 本行第一个非空字符处 n\’竖线’ 移动到本行第n列
( 移动到上一个句子的开头 ) 移动到下一个句子的开头
{ 移动到上一段的开头 } 移动到下一段的开头
[[ 移动到上一节的开头 ]] 移动到下一节的开头

屏幕移动

按键 作用 按键 作用
C-f 向下滚动一屏 C-b 向上滚动一屏
C-d 向下滚动半屏 C-u 向上滚动半屏
z ENTER 将当前行置在屏幕顶端 H 移动到当前屏幕顶端的行
. 将当前行置在屏幕中心 M 移动到当前屏幕中心的行
z- 将当前行置在屏幕低端 L 移动到当前屏幕底端的行

其他移动

按键 作用 按键 作用
gg 移动到文本首行 G 移动到文本尾行
BACKSPACE 移动到前一个字符处,可跨行 SPACE 移动到后一个字符处,可跨行
- 移动到上一行第一个非空字符处 + 移动到下一行第一个非空字符处

文本编辑

按键 作用 按键 作用
x 往后删一个字符 X 往前删一个字符
d+光标移动 删除文本 dd 删除本行
c+光标移动 更改文本 cc 更改本行
y+光标移动 复制文本 yy 复制本行
s 删除当前字符后更改文本 S 删除本行后更改文本
r 替换字符 R 进入替换模式
p 向下放置缓冲区文本 P 向上放置缓冲区文本
u 撤销 U 将当前行恢复到原状态
~ 当前字符切换大小写 J 合并下一行

搜素

按键 作用 按键 作用
/pattern 全文向后搜素pattern ?pattern 全文向前搜素pattern
n 往同一方向进行全文搜素 N 往反方向进行全文搜素
fx 搜素当前行中下一个x出现的地方 Fx 搜素当前行中上一个x出现的地方
tx 搜素当前行中下一个x出现的前一个字符处 Tx 搜素当前行中上一个x出现的后一个字符处
; 往同一方向进行当前行搜素 , 往反方向进行当前行搜素

ex命令

基本命令

命令 作用
a,b p 显示a~b行
k s /pattern1/pattern2 将第k行的pattern1替换成pattern2
a,b d/delete 删除a~b行
a,b m/move c 将a~b行移至c行后
a,b co/copy c 复制a~b行至c行后
= 显示文件总行数

相关

行寻址 作用 通用 作用
. 表示当前行 “[a-z0-9] 指向一个寄存器
$ 表示最后一行 变量 表示上一个打开的文件名
% 表示每一行 %变量 表示当前文件名

vi [option] [filename]

命令 作用
vi +n file 在第n行打开文件
vi + file 在最后一行打开文件
vi +/pattern file 在pattern第一次出现的地方打开文件
vi -R file 以只读模式打开文件
vi -r file 恢复编辑缓冲区

其他命令

命令 作用 命令 作用
w 写入文件 q 离开编辑器
wq 写入并退出 x 写入并退出,只有修改才写入
ar/args 列出文件列表 n 移动到下一个文件
rew/rewind 将当前文件复位成第一个文件 last 将当前文件复位成最后一个文件
e file 切换到文件file ! 放弃编辑,并恢复到最初
C-^ 在当前文件和上一个文件间切换 r/read file 将文件内容插入到当前行下
g/pattern 全局搜索pattern \’竖线‘ 命令连接符

多窗口编辑

启动多窗口

打开窗口

ex命令 vim命令 作用
[n]split [++opt] [+cmd] [file] C-w s/C-w S 水平分割当前窗口,并打开或创建一个文件
[n]new [++opt] [+cmd] C-w n/C-w C-n 类似split,但打开一个空白文本
[n]sview [++opt] [+cmd] [file]   只读的split
[n]sfind [++opt] [+cmd] [file]   类似split,但只打开已存在的文件
[n]vsplit [++opt] [+cmd] [file] C-w v/C-w C-V 垂直的split
[n]vnew [++opt] [+cmd] C-w n 垂直的new

窗口间移动

命令 作用 命令 作用
C-w j/C-w C-j 移动到当前窗口下面的窗口 C-w k/C-w C-k 移动到当前窗口上面的窗口
C-w h/C-w C-h 移动到当前窗口左面的窗口 C-w l/C-w C-l 移动到当前窗口右面的窗口
C-w t/C-w C-t 移动到最左上角的窗口 C-w b/C-w C-b 移动到最右下角的窗口
C-w w/C-w C-w 移动到下一个窗口 C-w W 移动到上一个窗口
C-w p/C-w C-p 移动到前一个窗口    

移动窗口位置

命令 作用 命令 作用
C-w J 将窗口移动到最底端,并使用全部宽度 C-w K 将窗口移动到最顶端,并使用全部宽度
C-w H 将窗口移动到最左端,并使用全部高度 C-w L 将窗口移动到最右端,并使用全部高度
C-w t/C-w C-t 移动到最左上角的窗口 C-w b/C-w C-b 移动到最右下角的窗口
C-w T 移动窗口到新分页中 C-w x/C-w C-x 与下一个窗口交换位置
C-w r/C-w C-r 向右或下轮换窗口 C-w R 向左或上轮换窗口

猜你喜欢

转载自blog.csdn.net/u014057054/article/details/72911111