vi: Visual Interface
vim: VI iMproved
一:
vim模式:
编辑模式(命令模式)
输入模式
末行模式
模式转换:
编辑模式--输入模式:
i:在当前光标所在字符的前面,转为输入模式;
a:在当前光标所在字符的后面,转为输入模式;
o:在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式;
输入模式---编辑模式:
ESC
编辑模式--末行模式:
: (冒号)
末行模式--编辑模式:
ESC
二:
1.打开文件(默认处于编辑模式)
vim +# :打开文件,并定位于第#行
vim + :打开文件,定位至最后一行
vim +/parttern : 打开文件,定位到第一次被pattern匹配到的行的行首
2.关闭文件
末行模式关闭文件
:q 退出
:wq 保存并退出(:x)
:q! 不保存退出
:w 保存
:w! 强行保存
编辑模式下退出
ZZ 保存并退出
三:移动光标(编辑模式)
1.逐字符移动
h:向左
l:向右
j:向下
k:向上
#h: 向前移动#个字符
2.按照单词移动
w: 移至下一个单词的词首
e: 跳至当前或下一个单词的词尾
b: 跳至当前或前一个单词的词首
#w: 移至下#个单词的词首
3.行内跳转
0: 跳至行首(绝对行首)
^: 跳至行首
$: 跳至绝对行尾
4.行间跳转
#G : 跳转至#行 (末行模式下直接给行号也可以跳至)
5.翻屏
Ctrl+f : 向下翻一屏
Ctrl+b : 向上翻一屏
Ctrl+d : 向下翻半屏
Ctrl+u :向上翻半屏
四:删除
1.删除单个字符
x : 删除光标所在处的单个字符
#x : 删除光标所在行及向后的共#个字符
2.删除命令d
d命令跟跳转命令组合使用 (如: d0删除当前光标至当前行前面的字符)
#dw,#de,#db :删除#个字符
dd :删除当前光标所在的行
#dd :删除包括当前光标所在行在内的#行
3.末行模式下的删除:(StartADD,EndDDd)
.:表示当前行
$:最后一行
+#:向下的#行
如: :.,+4d 删除当前行以及以下的4行
五:粘贴命令 p
p(小写):如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
P(大写):如果删除或复制的为整行的内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;
六:复制命令 y
用法同d命令
七:修改(先删除内容,在转换为输入模式)
c : 用法同d命令
八:替换命令r (replace)(编辑模式)
九:替换模式R
十:撤消编辑操作u
u:撤消前一次的操作
#u:直接撤销最近#次操作
Ctrl+r: 撤消最近一次的撤消
十一:重复前一次编辑操作
.
十二:可视化模式
v :按字符选取
V :按矩形
十三:查找(编辑模式)
/PATTERN :向下查找
?PATTERN :向上查找
n :查找到的下一个
N :查找的上一个
十四:查找并替换(在末行模式下使用s命令,用法同sed命令)
ADDR1,ADDR2s@PATTERN@string@gi (后面的g表示改行的所有匹配的都替换;i表示忽略大小写替换)
eg: .,+3s/kwork/girl/ 当前行及以下的3行将匹配的kwork替换成girl
eg: 1,$s/kwork/girl/g 全文替换(%s/kwork/girl/g)
十五:使用vim编辑多个文件
vim FILE1 FILE2 FILE3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
:qa 全部退出
十六:分屏显示一个文件
Ctrl+w,s :水平拆分窗口
Ctrl+w,v :垂直拆分窗口
Ctrl+w, ARROW :在窗口中切换:
:qa 全部退出
十七:分窗口编辑多个文件
vim -o :水平分割显示
vim -O :垂直分割显示
十九:将当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
:w
:ADDR1,ADDR2w/path/to/somewhere
eg: 将文件的4到9行保存到xiebo.txt文件中
:4,9w/home/mapgoo/test/xiebo.txt
二十:将另外一个文件的内容填充在当前文件中
:r/path/to/somefile
二十一: 跟shell交互
:!COMMAND
eg:打开某个文件的末行模式下查看路径
:!pwd
二十二:高级话题
1.显示或取消行号
:set nu 显示行号 (:set number)
:set nonu 取消显示行号
2.显示忽略或区分字符的大小写
:set ic 忽略大小写(:set ignorecase)
:set noignorecase 不忽略大小写
3.自动缩进
:set ai 自动缩进 (:set autoindent)
:set noai 取消自动缩进
4.查找的文本高亮显示或取消
:set hlsearch 高亮显示
:set nohlsearch 取消高亮显示
5.语法高亮
:syntax on 语法高亮显示
:syntax off 取消语法高亮显示
二十三:配置文件
/etc/vim/vimrc 全部配置文件
~/.vimrc 当前用户有效