文本编辑器,文字处理器
ASCII
nano,sed
vi:Visual Interface
vim:VI iMproved
全屏编辑器,模式化编辑器
vim模式(默认处于编辑模式)
编辑模式(命令模式)
输入模式
末行模式
模式转换:
编辑-->输入:
i:在当前光标所在字符的前面,转为输入模式
a:在当前光标所在字符的后面,转为输入模式
o:在当前光标所在行的下方新建一行并转为输入模式
I:在当前光标所在的行首,转换为输入模式
A:在当前光标所在的行尾,转换为输入模式
O:在当前光标所在行的上方新建业一行转为输入模式
输入-->编辑:
ESC键
编辑-->末行:
:
末行-->编辑:
ESC键
打开文件:
vim /path/to/somefile
vim +# 打开文件并定位于第#行
vim + 打开文件定位到最后一行
vim +/Pattern 打开文件定位至第一次被PATTERN匹配到的行的行首
关闭文件:
末行模式关闭文件:
:q 退出
:wq 保存并退出(:x)
:q! 不保存退出
:w 保存
:w! 强行保存
编辑模式下退出:
ZZ 保存并退出
移动光标(编辑模式):
逐字符移动
h 向左
l 向右
j 向下
k 向上
#h 向左移动#个字符
以单词为单位移动
w 移至下一个单词词首
e 跳至当前或下一个单词的词尾
b 调至当前或前一个单词的词首
#w 移至下#个单词词首
行内跳转:
0:跳到绝对行首
^:跳到行首的第一个非空白字符
$:跳到绝对行尾
行间跳转
#G 跳转至第#行
# 跳转到最后一行
末行模式下直接给出行号即可跳转
翻屏操作(编辑模式):
Ctrl+f 向下翻一屏
Ctrl+b 向上翻一屏
Ctrl+d 向下翻半屛
Ctrl+u:向上翻半屛
删除单个字符:
x 删除光标所在处的单个字符
#x 删除光标所在处及向后的共#个字符
删除命令:
d命令与跳转命令组合使用删除
#d跳转符
#dw
#de
#db
dd 删除当前光标所在行
#dd 删除包括当前光标所在行在内的#行
末行模式下:StartADD,EndADDd
. 表示当前行
$ 表示最后一行
+# 向下的#行
粘贴命令
p 如果删除或复制为整行内容,则粘贴至光标所在行的下方;如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面
P 如果删除或复制为整行内容,则粘贴至光标所在行的上方;如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面
复制命令
y 用法同d命令
修改:先删除内容再转换为输入模式
c 用法同d命令
替换 r
R 替换模式
撤销编辑操作
u 撤销前一次的编辑操作
连续u命令可撤销此前的n次操作
#u 直接撤销最近#次编辑操作
撤销最近一次撤销 Ctrl+r
重复前一次编辑操作
.
可视化模式
v 按字符选取
V 按矩形选取
查找
/PATTERN
?PATTERN
n
N
查找并替换
在末行模式下使用s命令
ADDR1,ADDR2s@PATTERN@string@gi
% 表示全文
将etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为[http://172.16.0.1/yum](http://172.16.0.1/yum)
%s/ftp://instructor.example.com/pub/http://172.16.0.1/yum/g
%s@ftp://instructor.example.com/pub@[http://172.16.0.1/yum@g](http://172.16.0.1/yum@g)
打开多个文件:
vim FILE1 FILE2 FILE3...
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
分屏显示:
Ctrl+w,s 水平拆分窗口
Ctrl+w,v 垂直拆分窗口
在窗口间切换光标:
Ctrl+w,ARROW
:qa 关闭所有窗口
分窗口显示多个文件:
vim -o 水平分割显示
vim -O 垂直分割显示
将当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
:w
:ADDRI,ADDR2w /path/to/somewhere
将另外一个文件的内容填充在当前文件中
:r /path/to/somefile
跟shell交互:
:! COMMAND
显示或取消行号
:set nu
:set nonu
显示忽略或区分大小写
:set ic
:set noic
设定自动缩进
:set ai
:set noai
查找到的文本高亮显示或取消
:set hlsearch
:set nohlsearch
语法高亮开启或关闭:
:syntax on
:syntax off
配置文件:
/etc/vimrc
~/.vimrc