加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

unix 的vi命令的详细用法

发布时间:2022-11-10 12:41:58 所属栏目:Unix 来源:
导读:  vi命令详解

  vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。若在vi执行时没有指定一个文件,那么vi命令会自动产生一个无名的空的工作文件。若指定的文件不存在,那么就按指定的文件
  vi命令详解
 
  vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。若在vi执行时没有指定一个文件,那么vi命令会自动产生一个无名的空的工作文件。若指定的文件不存在,那么就按指定的文件名创建一个新的文件。若对文件的修改不保存的话,vi命令并不改变原来文件的内容。 vi命令详解
 
  vi命令是unix下常用而重要命令,可在全屏幕方式下编辑一个或多个文件。若在vi执行时没有指定一个文件,那么vi命令会自动产生一个无名的空的工作文件。若指定的文件不存在,那么就按指定的文件名创建一个新的文件。若对文件的修改不保存的话,vi命令并不改变原
 
  来文件的内容。
 
  注意:vi命令并不锁住所编辑的文件,因此多个用户可能在同时编辑一个文件,那么最后保存的文件版本将被保留。
 
  下面是vi命令使用的一些选项及含义:
 
  -csub-command在对指定的文件编辑前,先执行指定的命令sub-command.
 
  -rfilename恢复指定的文件filename.
 
  -R将指定的文件以只读的方式放入编辑器中,这样不会保存对文件的任何修改。
 
  -ynumber将编辑窗口的大小设为number行。
 
  下面是vi编辑所处的三种模式:
 
  .命令模式进入vi时所处的模式。在此模式下用户可输入各种子命令对进行*作,如删除行、粘贴行、移向下一个字、移向不同行等。
 
  .文本输入模式在此模式下可以修改一行的内容并增添新行。在命令模式下键入a、i或c键可进入文本输入模式,按Escape键可返回命令模式。
 
  .命令项模式在此模式下,可以通过子命令输入更多的参数。如:w子命令要求输入一文件名,"/"子命令要求输入一个查找项。用户使用Escape键返回命令模式。
 
  下面是自命令模式下执行的,在同一行上移动的自命令:
 
  h将光标左移一格。
 
  l将光标右移一格。
 
  j将光标下移一格。
 
  k将光标上移一格。
 
  w将光标移到下一个小字的前面。
 
  W将光标移到下一个大字的前面。
 
  b将光标移到前一个小字的前面。
 
  B将光标移到前一个大字的前面。
 
  e将光标移到下一个小字的后面。
 
  E将光标移到前一个大字的后面。
 
  fc把光标移到同一行的下一个c字符处。
 
  Fc把光标移到同一行的前一个c字符处。
 
  tc把光标移到同一行的下一个字符c的前一格。
 
  Tc把光标移到同一行的前一个字符c的后一格。
 
  number|把光标移到递number列上。
 
  下面是命令模式下在行间移动的子命令:
 
  +或Enter把光标移至下一行第一个非空白字符。
 
  -把光标移至上一行第一个非空白字符。
 
  0把光标移到当前行的第一个字符处。
 
  $把光标移到当前行的最后一个字符处。
 
  H把光标移到屏幕最顶端一行。
 
  L把光标移到屏幕最底端一行。
 
  M把光标移到屏幕中间。
 
  下面是命令模式下改变屏幕显示的子命令:
 
  z-把当前行作为屏幕的最后一行unix命令框,并重新显示屏幕。
 
  z.把当前行作为屏幕的中间一行,并重新显示屏幕。
 
  Ctrl+l重新显示屏幕当前内容。
 
  /pattern/z-寻找pattern的下一个位置,并把所在行设为屏幕的最后一行。
 
  下面是在命令模式下用来显示页面的子命令:
 
  Ctrl+f向后滚一页。
 
  Ctrl+d向后滚半页。
 
  Ctrl+b向前滚一页。
 
  Ctrl+u向前滚半页。
 
  Ctrl+e屏幕向下滚一行。
 
  Ctrl+y屏幕项上滚一行。
 
  下面是在命令模式下用来查找字符串所使用的子命令:
 
  /pattern向后寻找指定的pattern,若遇到文件尾,则从头再开始。
 
  ?pattern向前寻找指定的pattern,若遇到文件头,则从尾再开始。
 
  n在上次指定的方向上,再次执行上次定义的查找。
 
  N在上次指定的方向的相反方向上,再次执行上次定义的查找。
 
  /pattern/+number将光标停在包含pattern的行后面第number行上。
 
  /pattern/-number将光标停在包含pattern的行前面第number行上。
 
  %移到匹配的"()"或"{}"上。
 
  下面是在文本输入模式下用来输入文本的子命令(用户可在任何时候按Escape返回到命令模式):
 
  a在光标之后开始输入文本。
 
  A在行尾开始输入文本。
 
  i在光标之前开始输入文本。
 
  I在行首第一个非空白字符前输入文本。
 
  o在光标所在行后插入一空行。
 
  O在光标所在行前插入一空行。
 
  下面是在命令模式下改变文本所使用的子命令(用户可在任何的时候按Escape键返回到命令模式):
 
  cc或S删除一整行。
 
  C改变一行光标位置以后的部分。
 
  cw改变光标所在单词。
 
  dd删除当前行。
 
  D删除光标所在行光标后面的内容。
 
  dw删除光标所在的单词。
 
  J把下一行内容加到本行行尾。
 
  rc把光符所在字符替换成c.
 
  R覆盖本行内容。
 
  u恢复上一次的修改。
 
  x删除光标所在的字符。
 
  ~改变光标所在出字符的大小写。
 
  .重复上一个*作。
 
  把当前行移到右边。
 
  下面是用于文件中拷贝文本的字命令:
 
  p将缓冲区内容取到光标所在行的下面一行。
 
  P将缓冲区内容取到光标所在行的上面一行。
 
  "bd将文本删除至有名缓冲区b.
 
  "bp张贴有名缓冲区b中内容。
 
  yy把当前行放入缓冲区。
 
  Y把当前行放入缓冲区。
 
  Yw把光标所在的单词放入缓冲区。
 
  下面是用于保存文件的子命令:
 
  :w回写修改后的文件。
 
  :wfilename当filename不存在时,把修改后的文件存为文件filename,当文件filename
 
  存在时,报错。
 
  !wfilename如果文件filename存在时,把修改后的文件保存为文件filename.
 
  下面列出了在vi编辑的多个文件之间切换所用的子命令:
 
  :n开始编辑vi激活的文件列表中的下一个文件。
 
  :nfilenames指定将被编辑的新的文件列表。
 
  下面列出了用于在当前文件和另外一个文件间切换的子命令:
 
  :efilename使用filename激活vi(在vi中装入另一个文件filename)。
 
  e!重新装入当前文件,若当前文件有改动,则丢弃以前的改动。
 
  :e+filename使用filename激活vi,并从文件尾部开始编辑。
 
  :e+numberfilename使用filename激活vi,并在第number行开始编辑。
 
  :e#开始编辑另外一个文件。
 
  下面是在本文件中加入其他文件代码所使用的子命令:
 
  :rfilename读取filename文件,并将其内容加到当前文件后。
 
  :r!command执行command文件,并将其输出加到当前文件后。
 
  下面是vi中其他的子命令:
 
  ctrl+g取得正在编辑文件的有关信息。
 
  :sh启动sh,从sh中返回可用exit或ctrl+d.
 
  :!Command执行命令command.
 
  !!重新执行上次的:!Command子命令。
 
  :q退出vi,若用户对编辑的文件有所修改,系统不会让用户使用q命令退出。
 
  :q!退出vi而不管是否对文件有改动。
 
  ZZ或:wq保存对文件的修改并退出vi.
 
  用户可在一个特殊的文件.exrc中定义特殊的vi命令。在vi中使用这些命令时,必须在该
 
  命令前加上一个冒号(:)。
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章