vi编辑器入门

星光下的游侠 星光下的游侠     2022-09-20     316

关键词:

Vi编辑器入门
 
一、vi的工作模式

 vi有两种基本的工作模式:命令(编辑)模式和文本输入模式。

 命令模式:vi初始启动时进入命令模式。它不显示用户输入,只会被解释执行。

 文本输入模式:它就显示用户的输入,只是作为文本写入到用户的文件中。

 状态行:屏幕底部的一行,通常为第24行,vi在该行上反馈编辑操作的结果。错误信息或其他一些信息会在状态行上显示出来,vi还会在第24行上显示那些以冒号、斜杠或问号开头的命令。

二、命令模式

   注意:

   1,如果想使用光标移动键,就必须使vi处于命令模式。

   2,当vi编辑器处于命令模式时,大部分命令在按下键时就会启动,因此不需要使用回车键来指明命令行的结束。

 

         vi的光标移动键键                 功能

    h或[←]              将光标向左移动一位

    j 或[↓]              将光标向下移动一位

    k或[↑]              将光标向上移动一位

    l 或[→]              将光标向右移动一位

    $                    将光标移到当前行的行尾

    w                    将光标向右移动一个字

    b                    将光标向左移动一个字

    e                    将光标移到字尾

    0(零)                 将光标移到当前行的行首

    [Reuturn]键            将光标移到下一行的行首

    [Spacebar]键            将光标向右移动一位

    [Backspace]键           将光标向左移动一位

 

  命令模式下vi编辑器的文本修改键   

    键                     功能

    x                      删除光标位置指定的字符

    dd                    删除光标所在的行

    u                      撤销最近的修改

    U                     撤销对当前行做的所有修改

    r                      替换光标位置上的一个字符

    R                     替换从光标位置开始的字符,同时改变vi到文本输入模式

    .(点)                 重复上一次的修改

三、文本输入模式

  切换到文本输入模式的命令键

    命令键                      功能

    i                      在光标左侧输入正文

    I                      在光标所在行的开头输入正文

    a                      在光标右侧输入正文

    A                     在光标的所在行的未尾输入正文

    o                      在光标所在行的下一行增添新行,并且光标位于新行的开头

    O                     在光标所在行的上一行增添新行,并且光标位于新行的开头

 

  关闭文件

    ●     按[Esc]键,确保vi处于命令模式。

    ●     输入 : 将提示符放到屏幕底部的状态行上。

    ●     输入q![Return],该命令不保存改变并退出vi。按[!]键表示确认放弃修改。

 

  当vi处于文本编辑器模式时[Return]的使用:

    ●     如果光标在行尾,光标的右边没有文本按[Return]键将会在当前行的下面添加一个空行

    ●     如果光标正好在当前行的第一个字符上,按[Return]键将会在当前行的上面添加一空行

    ●     如果光标在本行的其他位置,并且它的右边有文本,按[Return]键会把该行分成两行

 

  编辑多个文件

    ●     编辑另一个文件:vi 可能同时打开多个文件,另一种方法是用:e(edit) 

    ●     读另一个文件  :在vi编辑器命令模式下,输入:r,后面跟文件名,并按[Return]键,:r命令将指定文件的副本放到缓冲区中光标位置之后。指定的文件成为当前文件的一部分。

    ●     写入另一个文件:vi编辑器允许用户将当前编辑文件的一部分写(保存)到另一个文件中。首先,用户需要指出希望保存的行的范围,然后用重排文本

  vi编辑器的剪切和粘贴键

    键            功能

    d             删除指定位置的文本,并保存到临时缓冲区中。

    y             复制指定位置的文本到临时缓冲区。

    P             将指定缓冲区的内容放到当前光标位置之上

    p             将指定缓冲区的内容放到当前光标位置之下

    c             删除文件并使vi进入文本输入模式,这是删除和插入命令的组合

 

  vi操作符的域

    部分vi域控制键

    域              功能

    $               标识域为从光标位置开始到当前行尾

    0(零)            标识域为从光标位置前到当前行首

    e或w          标识域为从光标位置开始到当前字尾

    b              标识域为从光标位置前到当前字首

 

四、命令的组合使用

  在unix中许多的命令是可以组合使用的,这样就显出了 unix的强大之处。下面就列一些常用基本的文本处理的组合命令

    ◎使用删除操作符和域控制键

    ★实例1:删除从光标位置开始到当前行尾的文本,按d$

    ★实例2:删除从光标位置之前到当前行首的文本,按d0

    ★实例3:删除从光标位置后的一个字,按dw

    ★实例4:删除光标位置后的多个字(例如,3个字),按3dw

    ★实例5:删除到字尾,按de

    ★实例6:删除到前一个字的字首,按db

  ◎使用移出操作符和域控制键

    ★实例1:复制从当前光标位置开始到当前行尾的文本,按y$

    ★实例2:复制从当前光标位置开始到当前行首的文本,按y0

  ◎使用修改操作符和域控制键

    修改操作符c可以同时删除和移出操作符一样使用域控制键。c操作符与其他操作符不同的是它将vi从命令模式转换到文本输入模式。

    Vi编辑器的某些版本用一个标志来标记将被删除的最后一个字符。这个标志通常是美元符($),它覆盖将被删除的最后一个字符。

    ★     实例:使用修改操作符和域控制键来修改一个字,按cw.

五、在vi中使用缓冲区

  ● 数字编号缓冲区:vi编辑器使用9个临时缓冲区,编号从1到9。每次删除或复制的文本都放在这些缓冲区中,用户指定缓冲区号就可以访问任何一个缓冲区。每次新删除或复制的文本替换缓冲区以前的内容。这意味着缓冲区1总是保留最近被修改的内容。

  用put操作符,并在它前面加上缓冲区号就可以找回数字编号缓冲区的内容。指定缓冲区的格式可以表示为:

  双引号+n(其中,n是缓冲区号,取1到9)+(p或P)

  ● 字母编号缓冲区:vi编辑器还使用26个命名缓冲区,这些缓冲区用小写字母a到z来命名。用户通过指定缓冲区我名字引用它们。这些缓冲区同数字缓冲区类似,不同之处在于,每次用户在文件中删除或移出文本时,vi编辑器不自动改变缓冲区的内容。用户可以将删除或复制的文本存到指定的缓冲区,然后用put操作符将指定缓冲区的文本复制到文件的其他地方。

  实例:完成下列操作,练习使用命令对指定的缓冲区进行操作。

    □     输入”wdd,删除当前行,将它的副本保存到缓冲区w”。

    □     输入”wp,将缓冲区w的内容复制到光标位置”。

    □     输入”z7yy,复制7行到缓冲区z”。

    □     输入”zp,将缓冲区z的内容(7行)复制到光标位置”。

注意:1.这些命令不会显示在屏幕上。

   2.字母编号缓冲区用小写字母a到z命名

   3.使用这些命令不需要按[Return]键。

六、光标定位键

  vi的翻页键

    键           功能 

    [Ctrl-d]                  将光标向下移动到文件尾,通常每次移动12行

    [Ctrl-u]                  将光标向上移动到文件头,通常每次移动12行

    [Ctrl-f]                  将光标向下移动到文件尾,通常每次移动24行

    [Ctrl-b]                  将光标向上移动到文件头,通常每次移动24行

 

  定位光标:使用的G命令,前面加上希望光标将位于的行号。

    实例:完成下列操作,使第1000行成为当前行。

    □     输入1000G,将光标移到第1000行上。

    □     输入1G,将光标移到第1行上。

    □     输入G,将光标移到文件尾。

  另一种有用的命令是[Ctrl-g],它告诉用户当前行号。例如,在命令模式下按[Ctrl-g]键,vi编辑器显示类似于以下的信息:

  “myfirst”line 30 of 90 – 30%

七、设置vi的环境

  部分vi环境选项

  选项      缩写    功能

  autoindent            ai                   将新行与前一行的行首对齐

  ignorecase           ic                    在搜索选项中忽略大小写

  magic                                         允许在搜索时使用特殊字符

  number                nu                  显示行号

  report                                         通知用户上一个命令影响的行号

  scroll                                          设定[Ctrl-d]命令翻动的行数

  shiftwidth              sw                 设置缩进的空格数,与autoindent选项一起使用

  showmode           smd               在屏幕的右角显示vi编辑器的模式

  terse                                           缩短错误信息

  wrapmargin          wm                设置右边界为指定的字符数

八、行长和行回绕

   用户的终端通常有80列。当输入文本到达行尾时,开始一个新行。

   wrapmargin选项:当用户输入文本到达距右边界指定的字符数时,wrapmargin选项使vi编辑器断开输入的文本。例如,要设置wrapmargin为10(其中10为距离屏幕右边界的字符数),输入:set wrapmargin=10并按[Return]键。则输入到达70列时,vi编辑器开始新行。就如同用户按了[Return]键一样了。

   wrapmargin选项的默认值是0(零)。要关闭wrapmargin选项,输入:set wrapmargin=0并按[Return]键

九、缩写和宏

  vi编辑器为用户提供一些捷径使输入更简单,:ab和:map两个命令就起这个作用。

   ● 编写操作符:ab(abbreviateion)命令可以给任何字符指定缩写。

    例如,要缩写经常在本书中使用的UNIX Operating System为uno,输入:ab uno UNIX Operating System.如果uno是另一字的一部分,如unofficial,,则不会发生扩展。

    要取消缩写,使用unab(unabbreviate)操作符。例如,要取消uno缩写,输入:unab uno并按[Return]键。

   ● 宏操作符(map)可以指定单个键代表键序列,

    例如,要指定命令5dd(删除5行)为q,输入: map q 5dd并按[Return]键。

      用户也可以在map命令中指定终端的功能键。在这种情况下,输入#n作为键名,其中n指功能键号。例如,将5dd指定给[F2]键,vi删除5行文本。

十、最后的vi命令――1运行shell命令

  用户可以在vi命令行中运行UNIX的shell命令。这一方便的特性允许用户暂时将vi编辑器放在一边,转而执行shell命令。!(惊叹号)提示vi下一个命令是UNIX的shell命令。如果需要,用户也可以查看shell命令的执行结果并将其加入到文本中。使用: r(read)命令后面跟!,可将命令的结果插入到编辑文件中。

  实例:下面的命令序列显示!的使用方式。

    □     输入: ! ls

    □     输入: ! who

    □     输入: !date

    □     输入: !pwd

    □     输入: r ! date

    □     输入:r ! cal 1 2005

    □     输入:r ! vi mylast

  2行连接

  使用J命令连接两行。J命令将当前行下面的一行连接到当前行上,放到光标位置之后。如果两行连接产生一个长行,vi将其按屏幕进行折行。

  实例:完成下列操作即可连接两行。

    □     使用光标移动键将光标放在第一行行尾。

    □     按J键,vi将当前行下面的一行连到当前行上。

  3搜索和替换

     vi的搜索命令(/和?)

     实例:下面的命令序列演示vi的搜索和替换功能

    □     输入:/UNIX并按[Return]键,向下搜索找到第一个UNIX。

    □     输入cwunix并按[Return]键,将UNIX替换为unix/

    □     输入n,找到下一个UNIX。

  4文件恢复选项

    用-r选项启动vi编辑器崩溃时正在编辑的文件。例如,下面的命令可以恢复myfirst

    $ vi –r myfirst [Return]…………………………………启动vi的恢复选项

    如果不提供文件名进行编辑,或不记得当时编辑的文件名,可输入vi –r命令

     $ vi –r  [Return]

 

 

 

 

vi 有三种模式:命令模式;插入模式;末行模式。
  打开编辑器默认就是命令模式,可以通过输入命令进入插入模式,从插入模式返回命令模式要按Esc键,在命令模式下输入 :(冒号)切换到末行模式。
 
插入相关命令:
  ?      a  //在光标后插入文本
  ?      i   //在光标前插入文本
  ?      o  //在当前行下面插入一行
  ?      O //在当前行上面插入一行
  ?      I  //在当前行开头插入文本
  ?      A //在当前行末尾插入文本


光标移动相关命令:
  ?      Home //移动到光标所在行的最前面
  ?      End //移动到光标所在列的最后面
  ?      b  //移动到下个字的第一个字母
  ?      w  //移动到上个字的第一个字母
  ?      H  //移动到屏幕的第一列
  ?      M  //移动到屏幕的中间列
  ?      L  //移动到屏幕的最后列
  ?      fx //向右移动到x字符上
  ?      Fx //向左移动到x字符
  ?      Pageup //向上翻页
  ?      Pagedown //向下翻页
  ?      shift+g  // 跳到文件尾
  ?      ddp //和下一行交换


删除相关命令:
  ?      x  //删除光标所在处的一个字符
  ?      dw //删除光标所在处向后的一个单词
  ?      D  //删除光标处至行尾的所有字符
  ?      dd //删除光标所在行,可以加数字表示要删除的行数


替换命令:
  ?      r  //替换光标所在处的一个字符
  ?      R  //向右连续替换
  ?      cw //替换光标向右的一个单词


查找命令:
  ?      /ac  //向光标下文查找ac,按n向下查找下一个按N回到上一个
  ?      ?ac //向光标上文查找ac,按n向上查找下一个按N回到上一个


复制与粘贴相关命令:
  ?      yw  //将光标向右一个单词拷入剪贴板
  ?      y$  //将光标至行尾的字符拷入剪贴板
  ?      yy         //将当前行拷入剪贴板
  ?      p       // 将剪贴板中的内容粘贴在光标后


文件保存及退出相关命令:
  ?      :q        // 不保存退出  
  ?      :q!        // 不保存强制性退出  
  ?      :w         //保存编辑不退出
  ?      :wq       //保存并退出
  ?      :wq!      //强制保存退出

 

 

本文来自:

Stone.Wang的博客

http://blog.sina.com.cn/stonestore 

vi编辑器

1、关于文本编辑器;文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice......,文本模式下的编辑器有vi、vim(vi的增强版本)和nano......vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下vi(vim)最简单的用法,以... 查看详情

linux入门教程——vi/vim编辑器(代码片段)

前言本文小新为大家带来Linux入门教程——VI/VIM编辑器相关知识,具体内容包括VI/VIM是什么,VIM的三种工作模式介绍,包括:一般模式,编辑模式,指令模式,以及模式间转换等进行详尽介绍~不积跬步&... 查看详情

vim入门教程

1.简介Vim(Vi[Improved])编辑器是功能强大的跨平台文本文件编辑工具,继承自Unix系统的Vi编辑器,支持Linux/MacOSX/Windows系统,利用它可以建立、修改文本文件。进入Vim编辑程序,可以在终端输入下面的命令:$vim[filename]其中filename... 查看详情

文件编辑器vi

1、关于文本编辑器;文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice......,文本模式下的编辑器有vi、vim(vi的增强版本)和nano......vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下vi(vim)最简单的用法,以... 查看详情

vim编辑器入门

...式,这种独特的设计容易使初学者产生混淆。几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截然不同的方式:命令目录(鼠标或者键盘驱动),组合键(通常通过control键(CTRL)和alt键(ALT... 查看详情

vi/vim基本使用

...因为开发板中并不像开发主机那样,有gedit和kscope这样的编辑器;还有,即便是在开发主机上,也会经常用到vi,因为vi使用起来会比较的方便。但是vi对于初学者来说,还是会感觉到入门困难,因为它是基于命令行的,所有的编... 查看详情

linux--vi和vim编辑器(编写hello.java程序,三种模式的转换,常用快捷键练习)

1.vi和vim编辑器1.1vi和vim编辑器介绍所有的Linux系统都会内建vi文本编辑器。Vim具有程序编辑的能力,可以看做是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方... 查看详情

linux的vi编辑后如何保存?

...inux命令,可以看下刘遄老师写的《Linux就该这么学》作为入门的书籍,觉得不错的话采纳下哦~本回答被提问者和网友采纳 参考技术B按ESC后输入:wq(注意不要少了":") 查看详情

嵌入式linux中vi编辑器怎么进行复制粘贴?

参考技术A1、文本块选定将光标移到将要选定的文本开头,按ESC退出编辑模式,进入命令模式,再按V进入可视状态(视图左下角提示“可视”字样),然后移动光标至文本块结尾,被选定的文本块高亮显示。连续按两次ESC可取消... 查看详情

史上最简约的vi教程,10分钟包教会(代码片段)

...家”的水平,但对于vi的使用,我有话说。1.缘起vi是一个编辑器,起源于unix,在linux中非常常用。关于vi的使用,网上有大量的教程,但质量良莠不齐,很容易误导“新手”。本文的价值在于,我走了十几年的弯路,你可以少走... 查看详情

mobaxterm初认识和vim入门

...mVim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体 vim模式vim一打开,就会... 查看详情

vi编辑器

 Vi的用法1.简介Vi,是一个文本编辑器,可以执行输出、删除、查找、替换、块操作等众多文本操作,vi不是一个排版程序。不像word或WPS那样可以对字体、格式、段落等属性进行编排,他只是一个文本编辑器。2.进入vi文本编... 查看详情

vim编辑器使用

...sp;    Vim是Linux系统上的最著名的文本/代码编辑器,也是早年的Vi编辑器的加强版,而gVim则是其Windows版。它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难,但上手之后键盘流的... 查看详情

vi命令

...是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(viImproved),与vi编辑器完全兼容,而且实现了很多增强功能。 vi编辑器支持编辑模式和命令模式,编辑模式下可以完... 查看详情

vi命令

...是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(viImproved),与vi编辑器完全兼容,而且实现了很多增强功能。 vi编辑器支持编辑模式和命令模式,编辑模式下可以完... 查看详情

vi命令

...是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(viImproved),与vi编辑器完全兼容,而且实现了很多增强功能。vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文... 查看详情

玩转vim编辑器(代码片段)

...式,这种独特的设计容易使初学者产生混淆。几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截然不同的方式:命令目录(鼠标或者键盘驱动),组合键(通常通过control键(CTRL)和alt键(A 查看详情

vi,vim编辑器

#`vi`——终端中的编辑器##目标*`vi`简介*打开和新建文件*三种工作模式*常用命令*分屏命令*常用命令速查图##01.`vi`简介###1.1学习`vi`的目的*在工作中,要对**服务器**上的文件进行**简单**的修改,可以使用`ssh`远程登录到服... 查看详情