vim是linux中特别方便的文本编辑器 , 前生是vi : visual interface vim 不仅具有程序编译的能力 在末行模式下 vim支持很多可用接口 支持程序编译 而且 vim 可以变色 以字体的颜色辨别语法的正确性
vim不同于sed 这类的行编辑器 , vim继承vi的种类是全屏编辑器 .
vim具有三种模式 :
编辑模式 : vim处于编辑模式时 , 可以通过命令 管理以及编辑好的文字 , 例如复制行 删除行 进入输入模式等等
输入模式 : vim处于输入模式时 . 通过键盘输入字符 , 可以通过ESC键进入编辑模式
末行模式 : vim在编辑模式时 , 输入 : 进入末行模式 通过命令匹配字符 或者保存字符等等
vim 模式下切换
1 . 编辑模式 ==> 输入模式
(以下命令可直接键盘键入)
小写
i : 在光标所在处输入
a : 在光标所在处后输入
o : 在光标所在处 , 重新开一行输入
大写
I : 在光标所在处行首输入
A : 在光标所在书行尾输入
O : 在光标所在行上一行开一行输入
2 . 输入模式 ==> 编辑模式
ESC
3 . 编辑模式 ==> 末行模式
:
4 . 末行模式 ==> 编辑模式
双击 ESC
关闭文件/退出vim编辑器
末行模式 :
q : 退出
q! : 强制退出 , 放弃未保留的更改
wq : 写入退出 , 即保存并退出
x : 保存退出
w /PATH/FILE_NAME : 文件另存为
编辑模式 :
双击大写 ZZ : 保存退出
一 : vim 编辑器编辑模式下操作
在编辑模式下 光标跳转
字符间跳转 : h j k l
h : 左跳
l : 右跳
j : 下跳
k : 上跳
单词间跳转 :
w : 下一个单词词首
e : 当前单词词尾
b : 当前或者前一个单词词首
行间跳转 :
^ : 跳至行首第一个非空白字符
o : 跳至下一行行首
$ : 跳至行尾
在编辑模式下 删除命令
x : 删除光标后一个字符
#x : 删除光标后#个字符
d : 删除命令 , 可根据光标所在处范围进行删除
d^ : 光标所在处到第一个非空字符删除
d$ : 光标所在处到行尾删除
do : 光标所在处到行首删除
de : 光标所在处到下个单词词尾删除
dw : 光标所在处到下个单词词首删除
db : 光标所在处到本单词词首
. . .
dd : 删除本行
在编辑模式下 复制命令
y : 复制命令
y命令运作原理和d相似
y^ : 复制光标所在处到本行第一个非空字符
y$ : 复制光标所在处到本行最后一个字符
yo : 复制光标所在处到行首字符
ye : 复制光标所在处到下一个单词词首
yw : 复制光标所在处到下一个单词词尾
yb : 复制光标所在处到本单词词首
bye : 复制本单词
. . .
yy : 复制本行
在编辑模式下 粘贴命令
p : 粘贴命令
在缓冲区保存的数据如果为整行 , 则在光标所在处下方粘贴字符
在缓冲区保存的数据如果不是整行 , 则在光标所在处后方粘贴字符
在编辑模式下 撤销输入命令
u : 撤销上一次的输入
ctrl + r : 撤销上一次的撤销
在编辑模式下 切换可视化模式
v : 切换可视化模式 / 退出可视化模式
shift + v : 可视化块模式
按shift + v 选中第一行 , 按ctrl + i 输入 # 然后按ESC 可快捷加注释
在编辑模式下 翻屏操作
ctrl + f : 向文件尾翻一屏
ctrl + b : 向文件首翻一屏
ctrl + d : 向文件尾翻半屏
ctrl + u : 向文件首翻半屏
二 : vim编辑器末行模式下操作
包含上方退出编辑器的保存模式
地址定界符 : 用于查找符合表达式的字符
单# : 表示#所在的那一行
$ : 表示文本的最后一行 $-1则是文本倒数第一行
m , n : 表示文本的第 m 至 n 行
/pattren/ : 被表达式匹配到的行
% : 所有行
替换
格式 : s / 要替换字符 / 替换后字符 / 修饰符
s/old/new : 替换当前行第一个 old 为 new
s/old/new/g : 替换全局
m,ns/old/new/g : 指定行
%s/old/new/g : 全局替换
%s/old/new/gc :全局替换 在替换的时候询问是否替换
多文件模式
在编辑文件的时候往往需要多个文件同事操作 , 在vim中支持多文件模式
vim file1 file2 file3
在末行模式中 输入
: next : 切换到写一个文件
: prev : 切换至前一个文件
: frist : 切换到第一个文件
: last : 切换到最后一个文件
窗口分割模式
vim [option] file1 file2
-o : 水平分割窗口模式
-O : 垂直分割窗口模式
在窗口间切换 : ctrl + w
单文件窗口分割
ctrl + w 后 s : 水平分割
ctrl + w 后 v : 垂直分割
定制vim工作特性
修改配置文件可使vim工作特性永久有效
全局 : /etc/vimrc
个人 : ~/.vimrc
格式 :
行号 :
显示行号 : set number
撤销行号 : set nonumber
括号匹配 :
启用 : set showmatch
撤销 : set noshowmatch
自动缩进
启用 : set ai
撤销 : set noai
高亮搜索 :
启用 : set hlsearch
撤销 : set nohlsearch
忽略大小写 :
启用 : set ic
撤销 : set noic
显示制表符
set list
set nolist
工作特性也可以在末行模式输入环境变量使其临时生效 !