vim
文本编辑器
文本:纯文本 ASCII TEXT Unicode:
文本编辑器种类
行编辑器 sed
全屏编辑器 nano vi
vi: Visual Interface vim: VI IMproved
使用
模式化的编辑器
编辑模式 命令模式
输入模式
末行模式
内置的命令模式
打开文件:vim [option] file
options
+# 打开文件后,直接让光标处于第#行的行首
+/PATTERN 打开文件,直接让光标处于第一个被PATTERN匹配到的行的行首
模式转换
编辑模式默认模式 编辑模式 --> 输入模式
i键 insert 光标所在处输入
a键 append 光标之后输入
o键 在光标所在处的下方打开一个新行
I键 在光标所在处的行首写入
A键 在光标所在处的行尾输入
O键 在光标所在处的上方写入
输入模式-->编辑输入
ECS键
编辑模式-->末行模式
:键
末行模式-->编辑模式
ECS键
关闭文件:
编辑模式下 zz保存并退出
:q 退出
:q! 不保存退出 强制退出
:wq 保存并退出
:x 保存并退出
:w /path/to/file 保存到其他文件 另存为
光标跳转操作
字符间跳转
h 向左
j 向下
k 向上
l 向右
COMMAND 跳转由#指定的个数字符
单词间跳转
w 下一个单词的词首
b 当前或前一个单词的词首
e 当前或下一个单词的词尾
COMMAND 跳转由#指定的个数的单词
行首行尾跳转
^ 跳转至行首
$ 跳转到行尾
0 跳转至行首
行间跳转
G 跳转至由#指定的行
1G gg: 第一行
G 最后一行
句间跳转
(
)
段间跳转
[
]
翻屏
Ctrl+f 向文件尾部翻一屏
Ctrl+b 向文件首部翻一屏
Ctrl+d 向文件尾部翻半屏
Ctrl+u 向文件首部翻半屏
Enter键 按行向后翻
编辑命令
字符编辑
x 删除光标所在处的字条
x 删除光标所在处起始的#个字符
xp 交换光标所在处与后面字符的位置
替换命令(replace)
rChar 替换光标所在处的字符
删除命令
d 删除命令 可结合光标跳转字符 实现范围删除
d$ 删除至行尾
d^ 删除至行首
dw 删除单词 可删除多个
de
db
dd 删除整行 可以删除多行
粘贴命令
p 缓冲区的内容 整行粘贴至当前光标的下一行,不是粘贴到当前光标的后面
P 缓冲区的内容 整行粘贴至当前光标的上一行,不是粘贴到当前光标的前面
复制命令
y复制 工作行为类似d命令
yy 复制一行
y$
y^
y0
ye
y2
yb
改变命令(change c) 编辑模式 --> 输入模式 实现删除操作
c$
c^
c0
cb
ce
cw
cc 删除光标所在处的行,并转为输入模式
可视化模式
v: 按字符选定
V:按行选定
结合编辑使用:d,c,y
撤销操作Undo
u 撤销之前的操作
u
最近50个操作
撤销此前撤销
Ctrl+r
重复执行前一个编辑操作
.键
教程
末行模式
内建的命令行接口
地址定界 :start_pos,[end_pos]
特定的第#行
$ 最后一行
,# 指定行范围 左侧起始行,右侧为结束行
,+# 指定行范围 左侧为起始行绝对编号,若测为相对左侧行号的偏移量 例如3,+
% 全文
/pattern/ 从光标所在处起始向文件尾部第一次被模式所匹配到的行
/pattern1/,/pattern2/ 从光标所在处起始,第一次由pattern1匹配到的行开始,到第一次由pattern2匹配的行结束之间所有的行
可同编辑命令一同使用,实现编辑操作
d 删除
y 复制
c 改变
w /path/file 将范围内的文本保存到指定的文件中
r /path/from/file 将指定的文件中的文本读取并插入至指定位置
查找
/pattern 从当前光标所在处向文件尾部查找匹配的所有字符串
?pattern 从当前光标向文件首部查找匹配的所有字符
查找并替换
s 末行模式的命令,使用格式
s/要查找的内容/替换为的内容
查找到内容 可用正则表达式
替换的内容,不能使用正则表达式,但可以引用
如果“查找的内容“部分在模式中使用分组字符,在“替换的内容“中使用后向引用
直接引用查找匹配的全部文本 要使用&符号
修改符
i 忽略大小写
g 全局替换,意味一行中如果匹配到多次
可把分隔符替换为其他非常用的符号
s@@@
s###
vim的多文件功能
多文件 vim FILE2 FIlE2 ...
:next 下一个
:prev 前一个
:last 最后一个
:first 第一个
退出所有文件
:wqall 保存所有文件退出
:wall 保存所有文件
:qall 退出所有文件
多窗口
-o 水平分割窗口
-O 垂直分割窗口
在窗口间切换:ctrl+w ARROW
注意: 单个文件也可以分割为多个窗口进行查看 ctrl+w s:水平分割窗口 ctrl+w v:垂直分割窗口
定制vim工作特性
注意:在末行模式下的设定,仅对当前vim进程有效 永久有效
全局 /etc/vimrc
用户个人 ~/.vimrc
行号
显示:set number 简写:set nu
取消显示:set nomber set nonu
括号匹配高亮
匹配: set showmatch set sm
取消:set nosm
自动缩进
启用 set ai
禁用 set noai
高亮搜索
启用 set hisearch
取消 set nohisearch
语法高亮
启用 syntax on
禁用 syntax off
忽略大小写
启用 set ic
取消 set noic
获取帮助
:help
:help subject
Last updated
Was this helpful?