vim编辑器
【从今天开始,多晚都是早;从明天开始,多早都是晚】
vi:Visual Interface,文本编辑器
文本:ASCII,Unicode
VIM:vi的增强
vim [option]... [file]...
+[num] 打开文件,光标在num行,只有一个+,打开文件,光标在文件尾部
+/{pat} 打开文件,光标跳转到模式匹配处
vimtutor,vim编辑器教程
VIM编辑器的模式
命令模式(编辑模式)
字符间跳转
h 左
j 下
k 上
l 右
上下左右键也可以完成跳转
n l 跳转指定个数(n个)的字符
n -> 向右跳转指定n个字符
单词之间的跳转
w 下一单词的词首
e 当前或下一个单词的词尾
b 当前或前一个单词的词首
n w|e|b 指定跳转的单词数n
行首未跳转
^ 跳转至行首的第一个非空白字符
0 跳转至行首
$ 跳转至行尾
行间移动
n G 跳转至第n行
G 跳转至行尾
1G或gg 跳转至第一行
段落间移动
{ 光标移至段落开头
} 光标移至段落结尾
字符编辑
x 删除光标处的字符
n x 删除光标处及向后n个字符
xp 交换光标所在处的字符及后面字符的位置
删除命令
d 结合光标跳转字符,实现范围删除
dd 删除光标所在的行
2dd 光标向下,实现(2行)多行删除
d$ 删除至行尾
d0 删除至行首
dw
de
db
3dw
粘贴命令
p 缓存区的如果为整行,则粘贴当前光标所在的下方,否则,则粘贴至当前光标所在的后面
P 缓存区的如果为整行,则粘贴当前光标所在的上方,否则,则粘贴至当前光标所在的前面
复制命令
y 工作行为相似与d命令
yy
3yy 复制行
y$
y^
ye
yw
yb
改变命令
c:修改 命令模式 => 输入模式
c$,到行尾删除,转换为输入模式
cc,删除当前行,转换为输入模式
替换命令
r 替换光标所在处的字符
撤销此前的编辑
u 撤销此前的操作
ctrl+r 撤销此前的撤销
重复前一个编辑操作
. 点
翻屏操作
ctrl+f 向文件尾部翻一屏
ctrl+b 向文件首部翻一屏
ctrl+d 向文件尾部翻半屏
ctrl+u 向文件首部翻半屏
可视化模式
v,跳转光标可选,y复制可选块,p可粘贴可选块,d可以删除可选块
V,跳转光标可选行,y复制可选行,p粘贴可选行,d可以删除可选行
输入模式(插入模式)
命令模式 => 输入模式
a 在当前光标所在行的第二个字符进入编辑模式
i 在光标所在的当前位置进入编辑模式
o 在光标所在行的下一行进入编辑模式
I 在当前光标所在行的行首输入
A 在当前光标所在行的行未输入
O 在光标所在行的上一行进入编辑模式
c
C
进入编辑模式后,在窗口的左下方会显示 -- INSERT --
末行模式:vim内建命令行接口
1、地址定界
:start_pos ,end_pos
n 具体第n行,5表示第5行
n1,n2 从n1表示行起始位置,到n2行结束位置
n1,+n2 从n1表示起始行,加上n2的行数, 1,+3第一行,并往下在数三行
. 表示当前行
$ 表示最后一行
.,$-1 当前行到倒数第二行
% 表示全文,等价于1,$
/pat1/,/pat2/ 从pat1模式匹配到的行开始,到pat2模式匹配到的行结束
n,/pat/ 从n行开始,到pat模式匹配到的行结束
/pat/,$ 从pat模式匹配到的行开始,行尾
操作方式
地址定界后面紧跟一个编辑命令
d 删除
y 复制
w /路径/文件名 将指定范围的行保存到指定文件
r /路径/文件名 将指定位置处插入指定文件的内容
2、查找
/PATTERN 从当前光标所在处向文件尾部查找
? PATTERN 从当前光标所在处向文件首部部查找
n,与命令同方向,/PATTERN 向文件尾部查找匹配到的内容
3、替换
s 在末行模式下完成查找替换操作
s/要查找的内容/替换为的内容/修饰符
要查找的内容可以使用模式,替换为的内容不能使用模式,可以使用\1,\2,……后项引用,可以使用 “&”引用前面查找时查找到的所有内容
修饰符
i忽略大小写
g全集替换,默认每一行只替换第一次出现的
查找替换间的分割符
s@@@
s###
s///
1、:%s/^[[:space:]]\+///或 :%s/^[[:space:]]\+///g
2、:%s/^[[:space:]]/#&/
关闭文件
:q 退出
:wq或:x 保存退出
:w /path/to/file 保存文件到
命令模式下ZZ也可以退出
模式转换
命令模式 => 输入模式
i a 0 I A O
输入模式 => 命令模式
esc
命令模式 => 末行模式
:
末行模式 => 命令模式
esc:会间隔一段时间,回到命令模式
连续两次esc:快速回到命令模式
进阶用法
多文件模式
vim同时编辑接多个文件
vim file1 file2 file3
默认打开第一个文件
:next 切换到下一个文件
:prev 切换到上一个文件
:last 切换到最后一个文件
:first 切换到第一个文件
:wall 保存所有文件
:qall 全部退出
vim可以跨文件复制粘贴
窗口分割模式
单文件分割,vim编辑一个文件分屏显示
Ctrl+w 松开,按s键 水平拆分窗口
Ctrl+w 松开,按v键 垂直拆分窗口
在窗口之间切换光标
Ctrl+w 松开, 向上箭头
Ctrl+w 松开, 向下箭头
Ctrl+w 松开, 向左箭头
Ctrl+w 松开, 向右箭头
:q退出一个窗口
:wall 保存所有窗口
:qall 退出所有窗口
vim分屏显示多个文件
vim -o file1 file2 file3 ...(水平拆分显示)
vim -O(大写) file1 file2 file3 ... (垂直拆分显示)
定制vim的工作特性:
1、配置文件
全局:/etc/vimrc
个人:~/.vimrc
vim配置文件(~/.vimrc)默认是不存在的
编辑配置文件vim /etc/vimrc
2、末行模式,设置vim的特性,对当前vim进程有效
:set nu | 显示行号 |
:set noun | 取消显示行号 |
:set ai | 自动缩进 |
:set noai | 取消自动缩进 |
:set hlsearch | 查找的关键字高亮 |
:set nohlsearch | 取消查找的关键字高亮 |
:syntax on | 语法高亮 |
:syntax off | 取消语法高亮 |
:set showmatch | 简写为set sm 括号匹配 |
:set nosm | 取消括号匹配 |
扩展:
获取帮助 :help [subject] 如 :help help
如何设置table键自动缩进为4个字符