首页 > 代码库 > vim常见基本用法

vim常见基本用法

全屏编辑器(模式化编辑器)

       用户往往需要建立自己的文件,无论是一般文本文件、数据文件、数据库文件,还是程序源文件。建立和修改文本文件要利用编辑器。Linux系统常用的文本编辑器,如ed,ex,edit,vi。按照功能分为两类:行编辑器(如:ed,ex,edit)和屏幕编辑器(如:vi)。Vi是visual interface的简称。它汇集了行编辑和全屏幕编辑的特点,是UNIX/linux系统常用的编辑器,几乎每个UNIX/linux系统都提供vi。

       在linux系统中,还提供vim(vi improved)编辑器,它是vi的增强版本,与vi向上兼容。它支持多个窗口和缓冲、语法高亮度化、命令行编辑、联机帮助等功能。通常在linux中用到的vi实际上是vim。

       在使用vim的时候有以下几种模式:

              编辑模式(命令模式)(默认的)

              末行模式

              输入模式(插入模式)

              替换模式

              可视化模式

       一、打开方式:

              1.vi/vim:打开vi/vim的界面

              2.vimfile:file存在,则打开并将光标默认放置在第一行第一个字符

                                   file不存在,则以新文件的方式打开,若保存,则文件被创建;若不保存,文件消失

              3.vim+# file:指定在打开文件的时候,将光标定位在第#行行首;如果定位的行数比整个文档的行还要大,则光标停留在最后一行的行首(#是一个数字)

              4.vim+ file:直接将光标定位在文档的最后一行行首

              5.vim+/PATTERN/:打开文件,并且将光标定位至首次被PATTERN匹配的行的行首位置;既至完成首次匹配

       二、关闭方式:

              末行模式的关闭:

                     :q:表示直接关闭vi/vim编辑器,不保存修改内容

                     :q!:强制退出,不保存

                     :w:保存修改的内容

                     :wq:保存修改的内容并关闭vim编辑器

                     :wq!(对于root用户来说只读文件可以):强制保存并退出

                     :w!:强制保存

              编辑模式的关闭:

                     ZZ(CTRL+Z):保存并退出

                     ZQ:不保存并退出

       三、在vim的编辑模式中,移动光标(没有回车的算一行)

              1.逐字符移动

                     1)ARROW(箭头)

                     2).h:左

                         j:下

                         k:上

                         l:右

                         5h:左5

              2.逐字移动

                     w:移动到下一个字的字首

                     e:移动的下一个字的字尾

                     b:移动到上一个字的字首

              3.行内跳转

                     0:绝对行首(开头可能是空格)放到开头

                     ^:放到非空字符(相对行首)

                     $:放到行尾(无相对绝对之分)(绝对行尾)

              4.行间跳转

                     #G(代表一个数字):直接将光标移动到第#行

                     G:直接将光标移动到光标的最后一行

                     gg:直接将光标移动至第一行

                      末行模式中光标移动:

                            :#直接将光标移动到第#行

                            :1直接将光标移动至第一行

                            :$直接将光标移动至文档的最后一行

       四、翻屏

              ctrl+f(forward):向下翻一屏

              ctrl+b(back):向上翻一屏

              ctrl+d(down):向下翻半屏

              ctrl+u(up):向上翻半屏

       五、逐字符删除

              x:删除光标所在位置的字符(相当于del)

              X:删除光标所在位置的左侧的单个字符(相当于backspace)

              9x:一次删除9个字符

       六、编辑模式下的万能删除命令

              d:删除光标移动过程中经过的字符(配合光标移动命令删除)

              dd:删除光标所在行

              在末行模式下:

                     :m,nd:从m删到n行

                     :.,$:从当前行删到最后一行

                            .:表示当前行

                            $:表示最后一行

                     :nd:删除第n行

                     :m,+nd:从m行开始删n行

                     :d:删除光标所在行

       七、编辑模式中的万能粘贴命令(paste)

              p(lower):向右向下进行粘贴

              P(upper):向左向上进行粘贴

              100p:粘贴100次

              末行模式下粘贴:p(不常用)

       八、编辑模式中的万能复制命令

              y:复制光标经过的所有内容

              用法与d命令相同

              yy:复制光标所在行

       九、模式的切换

              1.从编辑模式到末行模式

                     :输入命令

                     /和?进行查找,n和N,n表示顺序查找,N表示逆序查找

                            /:自上而下

                            ?:自下而上

              2.从末行模式到编辑模式

                     ESC键

                     Enter键

                     Backspace键

              3.从编辑模式到插入模式

                     I:将光标移动至行首并进入输入模式

                     i:在光标所在位置的前面插入信息

                     A:(append)将光标移动至行尾并进入输入模式

                     a:在光标所在位置的后面插入字符

                     O:(other)在光标所在行的上面插入新行

                     o:在光标所在行的下面插入新行

                     cc:删除整行内容之后,进入输入模式

                     C:从光标所在位置删除至行尾,进入输入模式

                     s:删除光标所在位置的一个字符,进入输入模式

                     S:删除整行内容之后,进入输入模式

              4.从输入模式到编辑模式

                     ESC键

              5.从编辑模式到替换模式

                     R:进入替换模式

              6.从替换模式到编辑模式

                     ESC键

              7.从编辑模式到可视化模式

                     v:可以按照字符为单位进行矩形选取

                     V:按照行为单位进行矩形选取

                            在选择之后可以执行复制或者删除的操作

                            只要完成操作,就返回编辑模式

              !!!所有的模式切换必须经由编辑模式,两种非编辑模式之间无法直接进行切换

       十、替换命令

              r:只能替换光标所在位置的一个字符

       十一、撤销编辑操作

              u:撤销一次此前的编辑操作

                     10u:撤销10次

                            超出会有提示

                     摁住u也可以

              ctrl+r:撤销最近的一次撤销操作

       十二、重复之前的一次编辑操作

              .:比如删除了一行,那么下一次直接按.就可以删除一行

       十三、特殊的末行命令

              1.显示和取消行编号

                     setnumber:设置行编好,简写--set nu

                     setnonumber:取消行编号,简写--set nonu

              2.开启或关闭字符大小写的区分

                     :set ignorecase:简写--:setic

                     :set noignorecase:简写--:set noic

              3.开启或关闭自动缩进功能

                     :set autoindent:简写--:setai

                     :set noautoindent:简写--:set noai

              4.开启或关闭查找高亮显示

                     :set hlsearch

                     :set nohlsearch:简写--:setnohl

              5.开启或关闭语法着色

                     :syntax on

                     :syntax off

vim常见基本用法