vim三种工作模式:编辑模式(命令模式)、输入模式、末行模式

在命令行输入vim打开文件时,默认是编辑模式

vim工作模式之间的切换:

编辑模式-->输入模式

   i:在当前光标所在字符前面,转为输入模式

   I:在当前光标所在行的行首,转换为输入模式

   a:在当前光标所在字符后面,转为输入模式

   A:在当前光标所在行的行尾,转换为输入模式

   o:在当前光标所在行的下方,新建一行,并转为输入模式
   O:在当前光标所在行的上方,新建一行,并转为输入模式

输入模式-->编辑模式

   输入模式切换到编辑模式只需要按下ESC键即可

编辑模式-->末行模式

一般在想切换到末行模式之前,首先要确认是否当前已经是编辑模式,编辑模式切换为末行模式只需要输入":"即可

末行模式-->编辑模式

   直接按ESC键即可以切换到编辑模式


一、打开文件
 # vim /path/to/filename
   vim +n:打开文件,并定位于第n行
   vim +:打开文件,定位至最后一行
   vim +/pattern/:打开文件,定位至第一次被pattern匹配到的行的行首

二、关闭文件

切换到末行模式下

:q 退出
:wq 保存退出
:q! 不保存退出
:w 保存
:w! 强行保存
:x ==>:wq

三、移动光标
1、逐字符移动
            ^
            k
      < h       l >
            j
            v

2、以单词为单位移动
   w:移至下一个单词的词首
   e:跳至当前或下一个单词的词尾
   b:跳至当前或前一个单词的词首
3、行内跳转:
   0:绝对行首
   ^:行首的第一个非空白字符
   $:绝对行尾
4、行间跳转
   nG:跳转至第n行
   G:最后一行

在末行模式下

.:光标跳到当前行行首
$:光标跳最后一行行首
+n:光标向下跳n行

-n:光标上跳n行

四、翻屏
Ctrl+f:向下翻一屏
Ctrl+b:下上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
五、删除单个字符
x:删除光标所在处的单个字符
nx:删除光标所在处及向后的共n个字符

六、删除命令 d
d命令跟跳转命令组合使用:
ndw:向后删除n个单词,删除包括单词后面的空白字符

nde:向后删除n个单词,不删除单词后面的空白字符

ndb:向前删除n个单词
dd:删除当前光标所在行
ndd:删除当前光标所在行在内的n行
七、粘贴命令 p
p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果删除或复制不为整行内容,则粘贴至光标所在字符的后面
P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果删除或复制不为整行内容,则粘贴至光标所在字符的前面
八、复制命令 y
nyw:复制n个单词

yy:复制当前行

nyy:复制当前光标所在行在内的n行
九、修改命令 c

先删除内容,再转换为输入模式
   c:用法同d命令
十、替换 r
R:替换模式
十一、撤消编辑操作 u
u:撤消前一次的编辑操作
   连续u命令可以撤消此前的n次编辑操作
nu:直接撤消最近n次编辑操作

撤消最近一次撤消操作:Ctrl+r

十二、重复前一次编辑操作
要重复前一次的编辑操作,在编辑模式下直接输入符号"."
十三、可视化模式
v:按字符选取
V:按矩形选取
对于已经选取的的内容可以使用前面提到的命令进行相应的操作

十四、查找
/PATTERN:向下查找,可以使用正则表达式
?PATTERN:向上查找,可以使用正则表达式
   n:下一个查找到的内容
   N:上一个查找到的内容

十五、查找并替换
在末行模式下使用s命令
ADDR1,ADDR2 s/PATTERN/string/g
1,$:表示全文
%:表示全文
十六、使用vim编辑多个文件
vim file1 file2 file3
:next 切换至下一个文件
:prev 切换至前一个文件
:last 切换至最后一个文件
:first 切换至第一个文件
退出
:qa 退出全部打开的文件

十七、分屏显示一个文件
Ctrl+w,s:水平拆分窗口
Ctrl+w,v:垂直拆分窗口

在窗口间切换光标
Ctrl+w,ARROW
:qa 关闭所有窗口
十九、将当前文件中部分内容另存为另外一个文件
末行模式下使用w命令
:w
:ADDR1,ADDR2w /path/to/somewhere
二十、将另外一个文件的内容填充在当前文件中
:r /path/to/filename
二十一、跟shell交互
:! COMMAND
二十二、高级话题
1、显示或取消显示行号
:set number
: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
二十三、vim的配置文件
/etc/vimrc
~/.vimrc