文本编辑器:字处理器
vim: Visual Interface iMproved
全屏编辑器,模式化编辑器
vim模式
编辑模式(命令模式)
输入模式
末行模式
模式转换:
编辑--> 输入
i:在当前光标所在的字符的前面,转换为输入模式;
a: 在当前光标所在的字符的后面,转换为输入模式;
o:在当前光标所在行的下方,新建一行,转换为输入模式;
I:在当前光标所在的行首,转换为输入模式;
A:在当前光标所在的行尾,转换为输入模式;
O: 在当前光标所在行的上方,新建一行,转换为输入模式;
输入--> 编辑
ESC
编辑--> 末行
:
末行-->编辑
ESC 可能多次
一、打开文件
#vim /pass/to/somefile
vim +n somefile 直接到第n行
vim + somefile 直接到文件的最后一行
vim +/PATTERN: 打开文件,定位到第一次陪PATTERN匹配到的行首
二、关闭文件
1、;末行模式关闭文件
:q 退出
:wq 保存并退出
:q! 不保存退出
:w 保存
:w! 强制保存
:wq --> :x
2、编辑模式下退出
ZZ: 保存并退出
三、移动光标(编辑模式)
1、逐字符移动
h: 左
l: 右
j: 下
k: 上
#h:移动指定数目的字符
2、逐个单词移动
w:表示移动到下一个单词的词首;
e:表示移动到当前单词或下一个单词的词尾;
b:表示移动到当前单词或前一个单词的词首;
#w: #个单词
3、行内跳转:
0:行首,绝对行首;
^: 行首的第一个非空白字符
$:绝对行尾;
4、行间跳转
#G:直接跳转至第#行内
G:跳到最后一行;
末行模式下,直接给出行号即可
四、翻屏操作
ctrl + f 向下
ctrl + b 向上
ctrl + d: 向下翻半屏
ctrl + u: 向上翻半屏
五:删除单个字符
x: 删除光标所在的单个字符
#x: 删除光标所在处向后的共#个字符
六:删除命令: d命令与跳转命令组合使用
d0
d$
dw
de
db
3dw
#d跳转符:删除跳转符范围的#个字符
dd
#dd:删除包括光标行所在内的#行
末行模式下:
:1,8d
:.,100d 当前行到100行
: .,+10d 当前行向下10行
.: 当前行
$: 最后一行
+#: 向下#行
-#:向上#行;
删除的内容会保存在缓冲区中,最后一次删除的内容可以复制到光标所在的位置;
七、粘贴命令 p
p: 如果删除的或复制的为整行内容,则粘贴至所在行的下方;如果复制或删除的内容为非整行
则粘贴至贯标所在行的后面;
P: 如果删除的或复制的为整行内容,则粘贴至所在行的上方;如果复制或删除的内容为非整行
则粘贴至贯标所在行的前面;
八、复制命令 y
y命令同d命令
九、先删除内容再转换为输入模式
c同d命令 修改命令
十、替换:r replace
r: 替换单个字符 当前光标下,r+需要被替换的字符
R: 进入替换模式
十一、撤销编辑操作 u
u:撤销前一次的编辑操作,连续u可以撤销前次的n<50次的操作;
#u:直接撤销前#次编辑操作;
还原最近的一次撤销操作:ctrl+r
十二、重复前一次编辑操作
.
十三、可视化模式
v: 按字符选取
V: 按矩形块选取 整行选取
然后进行d p y操作;
十四、查找
/PATTERN 从首向尾部查找
?PATTERN 从尾部向首部查找
n 向下跳转
N 向上跳转
十五、查找并替换
在末行模式下使用s命令 和sed命令一样
ADDR1,ADDR2s@PATTERN@string@gi
从当前行到倒数第二行 he替换成HE: .,$-1s/he/HE/g
练习:将/etc/instructor.repos.d/service.repo文件中的ftp://instructor.example.com/pub替换成http://127.16.0.1/yum
%s@ftp://instructor\.example\.com/pub@http://127.16.0.1/yum@g
十六 用vim编辑多个文件
两个文件相互交互数据
vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
十七、分屏显示一个文件
ctrl + w, s: 水平拆分窗口
ctrl + w, v: 垂直拆分窗口
在窗口间切换光标:
ctrl + w:ARROW(向上的箭头,向下的箭头)
:qa 关闭所有窗口
十八、分窗口编辑多个文件
vim -o:水平分割显示
vim -O:垂直分割显示
十九、将当前文件中的部分内容另存为另外一个文件
末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somewhere
二十、将另外一个文件的内容填充在当前文件中
:r /path/to/somewhere
vim /etc/inittab
:r /etc/sysinit
二十一、跟shell交互
:! COMMAD
二十二、高级话题
1、显示或取消行号
:set nu
:set nonu
2、显示忽略区分字符大小写
:set ignorecase
:set ic
:set noic
3、设定自动缩进
:set autoindent
:set ai
:set noai
4、查找到的文本高亮显示或取消
:set hlsearch
:set nohlsearch
5、语法高亮
:syntax on
:syntax off
二十三、配置文件
/etc/vimrc
~/.vimrc
vimtutor vim教程