一、VIM简介:
VIM 编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,使它成了效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但VI在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
Vim编辑器
文本编辑器,字处理器
ASCII
nano,sed
vi:Visiual Interface
vim:VI is Improved
vim是全屏编辑器,模式编辑器
二、Vim模式:
编辑模式(命令模式)(command mode )
输入模式(Insert mode )
末行模式(last line mode )
模式转换:
编辑-->输入:
i:在当前光标所在的字符前面,转为输入模式
a:在当前光标所在的字符后面,转换为输入模式
o:在当前光标所在行的下方一行新建一行
I:当前所在行的行首,转换为输入模式
A:当前所在行的行尾,转换为输入模式
O:在当前光标所在行的上方一行新建一行
输入--》编辑:
ESC
编辑--》末行:
:
末行--》编辑:
ESC
默认处于末行模式:
1末行模式关闭文件
:q 退出
:wq 保存退出
:q!不保存退出
:w 保存
:w!强行保存
:wq --> :x
2编辑模式退出:
ZZ:保存退出
三、移动光标:
1.逐字符移动:
h:左
l:右
j:下
k:上
#h:移动指定数目的字符
2.逐个单词移动:
w:移至下一个单词的词首
e:跳至当前或下一个单词词尾
b:跳至当前或前一个单词的词首
3.行内跳转:
0:绝对行首
^:相对行首,行首的第一个非空白字符
$:绝对行尾
4.行间跳转
#G :跳转到多少行
G :最后一行
末行模式,直接给出行号跳转
四、翻屏
Ctrl +f:向下翻一屏
Ctrl +b:向上翻一屏
Ctrl+d:向上翻半屏
Ctrl+u:向下翻半屏
五、删除单个字符:
x:删除光标所在处的单个字符
#x:删除光标所在处及其后的共#个字符
六、删除命令:d
d命令跟跳转命令组合使用
#d:,#de,#db
#dd:删除报告当前光标所在行在内的#
末行模式下:
startADD,EndADDd
. :当前行
+# :向下的#行
七、粘贴命令:
p(小写):如果删除或复制的为整行内容,则粘贴至光标所在行的下方,
如果复制或删除的内容为非整行,则粘贴至光标所在的字符的后面
P(大写):如果删除或复制的为整行内容,则粘贴至光标所在行的上方,
如果复制或删除的内容为非整行,则粘贴至光标所在的字符的前面
八、复制命令:y
用法同d命令
九、修改:先删除内容,再转换为输入模式
c同d命令
十、替换:r
R:替换模式
十一、撤销编辑操作 u
u:撤销前一次编辑操作
#u:直接撤销最近#次编辑操作
撤销最近一次撤销操作 :Ctrl+r
十二、重复前一次编辑操作
.
十三、可视化模式
v:
V:
十四、查找
/pattern
?pattern
十五、查找并替换
在末行模式下使用s命令
ADDR1,ADDR2s@pattern1@pattern2@
十六、如何打开多个文件
vim file1 file2
末行 :next 切换到下一个文件
:prev 切换到上一个文件
:last 切换到最后一个文件
:first 第一个文件
qa 退出全部文件
十七、分屏显示功能
Ctrl +w,x :水平拆分窗口
Ctrl +w,v :垂直拆分窗口
在窗口之间切换光标
Ctrl +w,上下左右 :
十八、分窗口打开多个文件
vim -0 file1 file2 水平拆分窗口
vim -O file file2 垂直拆分窗口
十九、将当前文件部分内容另存为另一个文件
末行模式下的W命令
:w
:ADDR1,ADDR2w /path/to/somefile
二十、将另一个文件的内容填充在当前文件中
:r /path/to/somefile
二十一、跟shell交互
:!command
二十二、高级话题
1.显示行号或取消行号
:set nu
:set nonu
2.设定忽略大小写
:set ignorecase
:set ic
3.设定自动缩进
:set autoindent
4.查找的文本高亮显示
:set hlsearch
:set nohlsearch
5.语法高亮
:set syntax on
:set syntax off
二十三、配置文件
/etc/vimrc 全局对所有用户有效
~/imrc 只对设置用户有效
#vim /path/to/somefile
vim +n :打开文件光标直接位于某一行
vim + :打开文件光标直接位于最后一行
vim +/pattern :打开文件,定位至第一次别pattern匹配的行的行首