vi: Visual Interface
vim:VI iMproved
全屏编辑器, 模式化编辑器。
vim模式:
编辑模式(命令模式):打开后的默认所处的模式。
输入模式: 编辑模式下 “i” 当前光标所在字符前面,转为输入模式;“a” 在当前光标所在字符的后面,转为输入模式;“o”在当前光标所在行的下方新建一行,转为输入模式;
I : 当前光标所在行行首转为输入模式; A: 行尾进入输入模式; O:光标所在行上一行进入输入模式。
Esc键退出输入模式,进入命令模式。
末行模式:在编辑模式下, 冒号 “:” 即可进入末行模式。
Esc键退出,可能需要两下击键。
vim操作
一、打开文件
vim /path/somefile
vim +n file :打开,光标处于第12行。
vim + file :光标处于最后一行。
vim +/PATTERN :打开,并定位至第一次被模式匹配到的行的行首。
二、关闭文件
编辑模式,或末行模式下完成。
末行模式下:
q: 退出
wq: 保存并退出
q! :不保存退出,强行退出
w: 保存,只读文件不能保存。
w! :管理员可以强行保存。
wq=x :保存退出。
编辑模式下: ZZ:保存退出
三、移动光标
1、逐字移动:
h:左
l:右
j:下
k:上
#h: 移动#个字符。
2、逐个单词移动光标
w:移动下个单词的词首
e:当前或下一个单词的词尾。
b:当前或前一个单词的词首。
#w: #个单词
3、行内跳转
0 : 跳到行首。绝对行首
^ : 跳到行首。第一个非空白字符开始
$:绝对行尾。
4、行间跳转
#G:跳到第#行
末行模式下:直接给出行号,回车即可。
四、翻屏
编辑模式下: Ctrl + f 向下翻一屏。
Ctrl + b 向上翻一屏。
Ctrl + d 向下翻半屏。
Ctrl + u 向上翻半屏。
五、删除单个字符
编辑模式下:
x: 删除光标所在处单个字符。 #x 删除光标及以后共#个字符。
六、删除命令: d
d命令与跳转命令组合使用。
#d跳转符:删除跳转符指定范围的#个。
dd :删除当前光标所在行。
#dd: 从光标所在行到之后的共#行。
末行模式下:
startADD,endADD d 删除一个范围内的行数。
. : 当前行
$: 最后一行
$-2:倒数第3行
+#:向下的#行
删除的内容可被撤销,最后一次删除的内容可以粘贴到其他地方。
七、粘贴命令:p
p:如果删除或复制的为整行内容,则粘贴至光标所在行的下方;若是非整行,则粘贴至光标所在字符的后面。
P:如果删除或复制的为整行内容,则粘贴至光标所在行的上方;若是非整行,则粘贴至光标所在字符的前面。
八、复制命令:y
用法同d命令。
九、删除并转为输入模式。
修改
c (change):用法同d命令
十、替换 :r--replace
r: 替换单个字符
R: 替换模式
十一、撤销编辑
undo---u:撤销前一次操作。可连续撤销。一般默认保存50次的操作记录。
#u: 撤销最近的#次编辑操作。
撤销最近的撤销操作
Ctrl + r
十二、重复前一次的编辑操作
. 点命令
十三、可视化模式
v :被字符选取
V:被矩形选取
十四、查找
/PATTERN 向后查找
?PATTERN 向前查找
n:往下跳转
N:网上跳转
十五、查找并替换
末行模式下: s: 用法同sed 命令
ADD1,AD2s@PATTERN@string@gi
1,$ == % 全文查找并替换。
十六、如何打开多个文件
vim file1, file2
末行模式下: :next 下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 第一个文件
:qa 退出所有文件。
十七、分屏显示一个文件
Ctrl + w,s 水平分割一个窗口, Ctrl + w ↓ 光标至下一个窗口
Ctrl + w,v 垂直分割窗口。
:wq 关闭所有窗口
十八、分窗口显示多个文件
使用选项 -o 分窗口显示, -O 垂直分割窗口显示。
十九、将当前文件部分内容,另存为另一个文件 :w
末行模式: :ADD1,ADD2w /path/to/somewhere
二十、将另一文件的内容填充在当前文件中 :r
:r /path/to/somefile 在当前光标所在行下方。
二十一、与shell交互
! CMD 在编辑时执行命令。
二十二、高级话题
1、显示或取消行号
:set number == set nu
:set nonu
2、显示忽略或区分字符大小写
:set ic == set ignorecase
:set noic
3、设定自动缩进
:set autoindent == set ai
:set noai
4、搜索内容高亮
:set hlsearch
:set nohlsearch
5、语法高亮
:syntax on
:syntax off
二十三、配置文件
/etc/vimrc 所有用户生效
~/.vimrc 家目录下当前用户生效