vi编辑器的高级使用

LINUX IT敢客 2周前 (08-04) 118次浏览 未收录 0个评论 扫描二维码
文章目录[隐藏]

vi简介

  • vi 可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制.
  • 只是一个文本编辑器,不能排版
  • vi 没有菜单,只有命令
  • vi 有三种基本工作模式,分别是:命令模式(command mode)、插入模式(insert mode)和末行模式(last line mode)

三种工作模式

vi 编辑器的高级使用

vi的进入与退出

  • 进入 vi:
    • 命令“vi 文件名”
    • 命令“vi”,在退出 vi 时再指定文件名
  • 选项“+n”,表示希望在进入 vi 之后,光标处于文件中第 n 行上,
  • 选项“+”表示希望在进入 vi 之后光标处于文件最末行。
  • 保存文件:
    • 在命令模式下,连按两次大写字母<Z>。
    • 在末行模式下:

                                :w   vi 保存当前编辑的文件,但并不退出 vi,而是继续等待用户输入命令。

                                :w <newfile>     

                                :w! <newfile>  把当前文件的内容保存到指定的文件 newfile 中,如果 newfile 已经存在,则覆盖原有内容。

如何进入插入模式

  • a (append) 由光标之后加入资料。
  • A 由该行之末加入资料。
  • i (insert) 由光标之前加入资料。
  • I 由该行之首加入资料。
  • o (open) 新增一行于该行之下供输入资料之用。
  • O 新增一行于该行之上供输入资料之用。

如何离开插入模式

  • 《ESC》键 结束插入模式。

如何进入末行模式

  • 先按 ESC 键
  • :
  • /
  • ?

VI 环境的设定

  • set nu: 添加行号显示
  • set nonu: 取消行号显示
  • set autoindent:  自动缩进
  • set noautoindent:  取消自动缩进

搜寻

  • 在 vi 中可搜寻某一字串,使光标移至该处。
  • /字串 往光标之后寻找该字串。
  • ?字串 往光标之前寻找该字串。
  • n 往下继续寻找下一个相同的字串。
  • N 往上继续寻找下一个相同的字串。

取消前一动作(Undo)

  • 即复原执行上一指令前的内容。
  • u 恢复最后一个指令之前的结果。
  • U 恢复光标该行之所有改变。

编辑多个文件

  • vi 亦提供同时编辑多个文件的功能,方法如下:
  • #vi file1 file2 ..
  • 当第一个文件编辑完成后,可利用『:w』将该缓冲区存档,而后再利用 『:n』载入下一个文件。
  • 同时 vi 多个文件时,CTRL-SHIFT-6 回到上一个文件,在本次 vi 的文件和上次 vi 的文件之间切换。也可以使用:e#进行切换。

字串搜寻与替换

  • s(substitute)指令可搜寻某行列范围。
  • g(global)指令则可搜寻整个编辑缓冲区的资料。
  • :1,%s/old/new/g 将文件中所有的“old”改成“new”。
  • :10,20s/old/new/ 将第 10 行至第 20 行资料的“old”改成“new”。
  • :%s/old/new/g 将编辑缓冲区中所有的“old”改成“new” 。
  • :1,%s/^/string1 在文件的第一行至最后一行的行首插入“string1”。
  • :%s/$/some string/g 在整个文件每一行的行尾添加“some string”。
  • :1,%s/word1/word2/gc 从第一行到最后一行寻找 word1 字串,并将该字串替换为 word2 。需要逐一确认。

vi的编辑操作命令

  • 在 vi 中“字”有两种含义:
    • 广义上,字是两个空格之间的任何内容。
    • 狭义上,字是指英文单词、标点符号和非字母字符。
  • 句子被定义为是以句号“.”、问号“?”和感叹号“!”结尾,且其后跟着至少一个空格或一个换行符的字符序列。
  • 段被定义为以一个空白行开始和结束的片段

 在当前行移动光标的命令

  • h 将光标左移一格。
  • l 将光标右移一格。
  • j 将光标下移一格。
  • k 将光标上移一格。
  • 0 把光标移到当前行的第一个字符处。
  • $ 把光标移到当前行的最后一个字符处。

在行之间移动光标的命令

  • Ctrl + f 向后滚一页。
  • Ctrl + d 向后滚半页。
  • Ctrl + b 向前滚一页。
  • Ctrl + u 向前滚半页。
  • Ctrl + e 屏幕向下滚一行。
  • Ctrl + y 屏幕项上滚一行。
  • nG 将光标移至行号所指定的行的行首

在文本块间移动光标的命令

  • ) 由光标所在位置至下一个句子的第一个字元。
  • ( 由光标所在位置至该句子的第一个字元。
  • { 由光标所在位置至该段落的最后一个字元。
  • } 由光标所在位置至该段落的第一个字元。

屏幕上移动

  • H 命令:该命令将光标移至屏幕首行的行首.若在 H 命令之前加上数字 n,则将光标移至屏幕第 n 行的行首。
  • M 命令: 该命令将光标移至屏幕显示文件的中间行的行首。
  • L 命令:该命令将光标移至屏幕显示文件的底行的行首。
  • G 命令:该命令将光标移至该文件的最后一列

命令模式下的文本编辑 /文本的删除

  • 字符删除命令:

                x    dh

  • 字和行删除命令

                dw    db   dd    d$    d0     <n>dd

  • 文本块删除命令:
  1. d) d( d}     d{
  • 相对屏幕删除:

                dH    dM    dL

删除操作

  • x:删除光标所在的文字
  • nx:删除光标后面的 n 个字符
  • X:删除光标前面的一个字符
  • nX:删除光标前面的 n 个字符
  • dd:删除光标所在行
  • ndd:删除光标所在行向下数 n 行
  • 0,$d:删除所有文档内容

复制

  • 命令方式下输入 yy 或 nyy,表示复制当前行或当前行开始的连续 n 行,n 是一个具体的整数。
  • 将光标移到要复制的地方,按 p 键粘贴。

 


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:vi 编辑器的高级使用
喜欢 (2)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址