Vi/Vim编辑器基础操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vi/Vim编辑器基础操作相关的知识,希望对你有一定的参考价值。

ViVisual interface)编辑器,有SUN公司的Bill Joy开发,是LinuxUnix上最基本的文本编辑器,并且它不需要图形界面,所以它的效率很高。虽然说它是最基本的编辑器,但是它在Linux中的地位很重,就好像Edit程序在Dos上一样。

VimVi IMproved)是Vi的加强版,比Vi更容易使用。Vi的命令几乎都可以在Vim上使用。相对Vi来说有更多的新特性:1语法着色显示;2更多的命令;3历史记录等等。

Vi模式主要有三种:1.编辑模式(命令模式):默认工作模式;2. 插入模式(输入模式),文本信息的自由编辑;在左下角有“insert”标记;3. EX模式(末行模式),对于编辑器本身某些属性和功能的设定;也可以进行文本的编辑操作。除了主要的三种还有替换模式,可视化模式。

下面就来说说Vi/Vim的基本操作:

 

.打开vi/vim操作界面

1.Vi/vim命令;

2.Vim file

1)File存在,就直接使用vim编辑器打开此文件,默认将光标放置与该文件的起始位置,即:第一行的第一个字符;

2)File不存在,就直接以新建文件的方式打开;若执行保存命令,则文件会被写入磁盘;若不保存,则文件会消失;

3.vim+# file

再打开指定文件时,将光标直接定位在文件的第#行的行首;如果给定的数字比文件的行数要大,则光标停留在最后一行的行首;

4.vim +#file

打开指定文件时,直接将光标定位在文件的最后一行的行首;

5.vim+/PATTERN/

在打开指定文件时,将光标定位在首次被PATTERN匹配到的行的行首;

二关闭Vi/Vim的操作界面

Ex模式中的操作:

q

直接关闭vim编辑器,不保存修改内容;

    q

直接关闭vim编辑器,强制退出但不保存被修改的内容;

    wq

       保存已修改的内容,并关闭vim编辑器;

     wq

对于无权更改的文件强制保存,并且在强制保存之后强制关闭vim编辑器;

                  

      编辑模式中的操作:

               ZZ:保存并关闭vim编辑器;

               ZQ:不保存已经修改的内容而直接关闭vim编辑器;

.vim的编辑模式中光标的移动方式;

编辑模式中的光标移动操作:

1.逐字符移动:

1Left Arrow 或者Right Arrow

2)h:光标向左移动;l:光标向右移动;

2.逐字移动:

W:移动光标到下一个字的字首:

E:移动光标到当前字或下一字的字尾;

B:移动光标到前一字的字首;

3.行内光标跳转:

0:绝对行首;

^:相对行首;

$:绝对行尾;

4.行间跳转:

    1)  Up ARRow 或者Down Arrow

    2)  J:向下移动一行;k:向上移动一行;

    3)  (数字)#G:直接将光标移动至第#行;

    4)  G:将光标移动移动至文档的最后一行;

    5)  gg:直接将光标移动至文档的第一行;

ex模式中的光标移动:

   #:直接将光标移动至指定行号“#”的行首;

   1:直接将光标移动至文档的第一行行首;

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

.翻页

PageDown或者PageUp可以实现翻页;

^+f:向下翻一页,向前翻一页;相当于PageDown

^+b:向上翻一页,向后翻一页;相当于PageUp

^+d:向下翻半页;

^+u:向上翻半页;

.删除字符

  编辑模式中的操作:

    1.逐字符删除:

      x:删除光标所在位置的字符;

      X:删除光标所在位置的左侧的一个字符;

    2.删除光标移动过程中所经过的所有内容

      d:删除光标移动过程中经过的所有内容;                                dhdldjdkd+ArrowdwdedbdGdgg

     dd:删除当前光标所在行;

  ex模式中的操作:

    d:删除光标所在行;相当于:.d;其中“.”就是指当前行;

   #d:删除第#行;

   mnd:删除从m行开始到第n行结束,中间的所有行;

   +nd:删除从第m行开始,及其后面n行的内容;

   .+nd:删除从当前光标所在行及其后面n行的内容;

   .$d:删除从当前光标所在行开始,到文档末尾的所有内容;

   注意:在vi/vim的操作中,所有的删除操作,同时意味着剪切;

.复制命令

    编辑模式中的操作:

      y:复制光标移动过程中经过的所有内容;

      yhylyjykyArrowywyeybyGyggy0y$,y^

      yy:复制当前光标所在行;

    ex模式中的操作:

     y:删除光标所在行;相当于:.d;其中“.”就是指当前行;

     #y:删除第#行;

     mny:删除从m行开始到第n行结束,中间的所有行;

     m+ny:删除从第m行开始,及其后面n行的内容;

     .+ny:删除从当前光标所在行及其后面n行的内容;

     .$y:删除从当前光标所在行开始,到文档末尾的所有内容;

.粘贴命令

  编辑模式中:

pLower:如果是行内的复制或剪切操作,在光标右侧粘贴;如果是多行复制或剪切操作则在光标的下方完成粘贴;

PUpper):如果是行内的复制或剪切操作,在光标左侧粘贴;如果是多行复制        或剪切操作则在光标的上方完成粘贴;

  Ex模式中:

    p

.模式切换

编辑模式(命令模式):被称为vi编辑器的基础工作模式;所有其他模式之间进行切换的中转站;

1编辑模式到ex模式

“:”:表示就如ex模式并完成命令的执行;

“/”或者”?”:开启ex模式中的匹配模式查找功能;

   /默认是自上而下的查找顺序;

     ?默认是自下而上的查找顺序;

   Nn命令在各个匹配的关键字之间跳转;

   N表示顺序查找;n表示倒序查找;

2 ex模式到编辑模式    

    双击Esc键;

    Enter键;

   BackSpace

3.编辑模式到输入模式(插入模式)

    I,ia,Ao,O,s,SC,cc

 

    i:在光标在位置左侧开始编辑,

    I:在行首开始输入,

    a:在光标所在位置的右侧开始插入;

    A:在行尾开始插入;

    o:当前光标所在行的下方插入一个新行;

    O:当前光标所在行的上方插入一个新行;

    s:将当前光标所在位置的字符,并插入;

    S:将光标所在行删除,并开始插入;

    C:删除光标所在位置知道行尾,并且在行尾开始输入;

    cc:相当于S命令;

4.从输入模式返回到编辑模式:

    Esc键;

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

R:进入替换模式

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

Esc键;

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

v:表示按照字符为单位进行矩形选取;

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

注意:

    1.在选取完成之后,可以使用d命令进行删除,也可以使用y命令进行复制;

    2.只要选取完成,即立刻返回编辑模式

 

.替换命令:

    r:不进入输入模式而替换光标所在位置; 

.撤销命令:

    U:撤销当前行内的操作;

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

 ^+r:撤销最后一次被撤销的操作;

十二.打开多文档编辑

 1.vim file1 file2 file3 …

    :next 查看编辑后一个文档

    :prev 查看或编辑前一个文档

    :first 查看或编辑第一个文档

    :last 查看或编辑最后一个文档

   2.vim –o | -o file1 file2 file3 …

-o:水平打开多个窗口

^+w(松开以后),上下箭头,在多个窗口间切换;

-O:垂直打开多个窗口

^+w(松开以后),左右箭头,在多个窗口间切换;

十三.ex模式中的常用命令

1.显示和取消行的编号;

    :set number(简写为:set nu

    :set nonumber 或者:set nonu

2.开启或关闭字符大小写的敏感度

    :set ignorecase或者:set ic

    :set noignorecase或者:set noic

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

    :set autoindent或者:set ai

    :set noautoindent或者:set noai

4.开启或关闭语法着色功能

    :syntax on

    :syntax off

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

    :set hlsearch

    :set no hlsearch或者:nohl

6.将文档的内容另存为:

:W  /path/to/somewhere全文另存为

:m,nw/path/to/somewhere   部分另存为

7.从其他文件直接读取内容并添加到当前文件中;

        :r /path/from/somefile

8.调用shell命令、与shell交互

!COMMAND

 


以上是关于Vi/Vim编辑器基础操作的主要内容,如果未能解决你的问题,请参考以下文章

linux基础命令

青蛙学Linux—文本编辑器Vi/Vim

喵呜:Linux环境基础开发工具使用篇之Linux开发工具:Linux编辑器-vim

你还不会Linux下的vi/vim编辑器吗?

vi/vim操作

vim操作命令