0%

vim编辑器

七、Vim编辑器

(一)打开文件
# vim [OPTION]...FILE...
  1. +#:打开文件后,让光标处于第#行的行首,+默认行尾;

  2. +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行首;

  3. -b file:二进制方式打开文件;
  4. -d file1 file2…:比较多个文件;
  5. -m file:打开只读文件;
  6. ex file或vim -e 直接进入ex模式;
  7. 如果改文件存在,文件被打开并显示内容;如果不存在,当编辑后第一次存盘时创建它。
(二)vim模式

(三)模式转换
  1. 命令模式 —> 插入模式

    ​ i:insert,当光标所在处输入;

    ​ I:在当前光标所在行的行首输入;

    ​ a:append,在光标所在处后面输入;

    ​ A:在当前光标所在行的行尾输入;

    ​ o:在当前光标所在行的下方打开一个新行;

    ​ O:在当前光标所在行的上方打开一个新行。

  2. 插入模式 —> 命令模式:ESC

  3. 命令模式 —> 扩展命令模式::
  4. 扩展命令模式 —> 命令模式:ESC,enter
(四)关闭文件
1.扩展模式:
命令 作用
:q 退出
:q! 强制退出,丢弃你做出的修改
:wq 保存退出
:x 保存退出
:w 写(存)磁盘文件
:r filename 读文件内容到当前文件中
:w filename 读当前文件内容写入另一个文件
:r!command 读入命令的输出
:!command 执行命令
2.命令模式:
命令 作用
ZZ 保存退出
ZQ 不保存退出
3.命令模式光标跳转

(1)字符间跳转:

​ h:左; l:右; j:下; k:上;

​ #COMMAND:跳转由#指定的个数的字符。

(2)单词间跳转

命令 作用
w 下一个单词的词首
e 当前或下一单词的词尾
b 当前或前一个单词的词首
#COMMAND 由#指定一次跳转的单词数

(3)当前页跳转

​ H:页首; M:页中间行; L:页底。

(4)行首行尾跳转

命令 作用
^ 跳转至行首的第一个非空白符
0 跳转至行首
$ 跳转至行尾

(5)行间移动

命令 作用
G 最后一行
1G/gg 第一行

(6)句间移动

​ ):下一句; (:上一句

(7)段落间移动

​ }:下一段; {:上一段

4.字符编辑
命令 作用
x 删除光标处的字符
#x 删除光标处起始的#个字符
xp 交换光标所在处的字符及其后面的字符的位置
~ 转换大小写
J 删除当前行后的换行符
5.替换命令
命令 作用
r 替换光标所在处的字符
R 切换成REPLACE模式
6.删除命令
命令 作用
d 删除命令,可结合光标跳转字符,实现范围删除
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
dd 删除光标所在的行
#dd 多行删除
D 从当前光标位置一直删除到行尾,留空行,等同于d$
7.复制命令
命令 作用
y 复制,行为相似于d命令
yy 复制行
Y 复制整行
8.粘贴命令
命令 作用
p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,粘贴至当前光标所在处的后面;
P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,粘贴至当前光标所在处的前面;
9.改变命令
命令 作用
c 修改后切换成插入模式
cc 删除当前行并输入新内容,相当于S
C 删除当前光标到行尾,并切换成插入模式
10.地址定界
命令 作用
# 具体第#行,例如2表示第2行
#,# 从左侧#表示起始行,到右侧#表示结尾行
#,+# 从左侧#表示的起始行,加上右侧#表示的行数:2,+3 表示2到5行
. 当前行
$ 最后一行
% 全文,相当于1,$
11.查找
命令 作用
/PATTERN 从当前光标所在处向文件尾部查找
?PATTERN 从当前光标所在处向文件首部查找
n 与命令同方向
N 与命令反方向
12.查找并替换

​ s:在扩展模式下完成查找替换操作

​ 格式:s/要查找的内容/替换为的内容/修饰符

​ 可以使用”&“引用前面查找是查找到的整个内容

13.撤销更改
命令 作用
u 撤销最近的更改
#u 撤销之前的多次更改
U 撤销光标落在这行后所有此行的更改
Ctrl -r 重做最后的“撤销”更改
. 重复前一个操作
n. 重复前一个操作n次
14.可视化模式
命令 作用
v 面向字符
V 面向行
ctrl -v 面向块
15.多窗口

​ (1)多文件分割

​ vim -o|-O FILE1 FILE2…

​ -o:水平分割; -O:垂直分割。

​ (2)单文件窗口分割

命令 作用
Ctrl+w,s 水平分割
Ctrl+w,v 垂直分割
Ctrl+w,q 取消相邻窗口
Ctrl+w,o 取消全部窗口
:wqall 退出