• vi编辑器使用


    vi编辑器简介

    vi编辑器,通常称之为vi,是一种广泛存在于各种UNIX和Linux系统中的文本编辑程序。它的功能十分强大,但是命令繁多,不容易掌握,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。vi不是基于窗口的,所以,这个多用途编辑程序可以用于在任何类型的终端上编辑各式各样的文件。

    本文地址:http://www.cnblogs.com/archimedes/p/linux-vi.html,转载请注明源地址。

    vi编辑器的三种模式

    1、命令模式

      在该模式中,可输入命令来执行许多种功能。控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

    2、编辑模式

      vi被运行时,通常处在命令模式下,键入以下命令 可以使vi退出命令模式,进入输入模式:I(i)、A(a)、O(o)

    3、末行模式

      将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。不过一般我们在使用时把vi简化成两个模式,将末行模式也算入命令行模式

    vi的进入和退出

    进入vi:

    命令“vi 文件名”

    命令“vi”,在退出vi时再指定文件名

    选项“+n”,表示希望在进入vi之后,光标处于文件中第n行上

    选项“+”表示希望在进入vi之后光标处于文件最末行。

    保存文件:

    1.在命令模式下,连按两次大写字母<Z>

    2.在末行模式下:

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

     :w <newfile> 

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

    在末行模式下,有四种方法可以退出vi返回到shell:

    :q  系统退出vi返回到shell。在用此命令时,若编辑的文件没有被保存,则vi在窗口的最末行给出提示信息。

    :q!  vi放弃所作修改而直接退到shell下。

    :wq  先保存文件,然后再退出vi返回到shell。

    :x  该命令的功能与命令模式下的ZZ命令功能相同

    如何进入插入模式

    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

    文本块删除命令:

    d)    d(     d}     d{

    相对屏幕删除:

    dH    dM    dL

    删除操作

    x:删除光标所在的文字

    nx:删除光标后面的n个字符

    X:删除光标前面的一个字符

    nX:删除光标前面的n个字符

    dd:删除光标所在行

    ndd:删除光标所在行向下数n行

    复制

    命令方式下输入yy或nyy,表示复制当前行或当前行开始的连续n行,n是一个具体的整数

    将光标移到要复制的地方,按p键粘贴

    vi编辑器的简单使用

    插入文字 I键 A键

    x:删除光标所在的文字

    退回命令模式 ESC

    存盘 :w

    不存盘退出 :q

    存盘退出 :wq

    强制退出 :q!

    强制存盘退出 :wq!

    vi其他常用命令

    删除一行文字  dd

    拷贝n行文字  yny

    粘贴拷贝的内容  p

    在文件中向下搜索文本abc  /abc

    光标移至文本第一行 :1

    光标移至文本末行 :$  或者 G

    存盘退出  ZZ

     
  • 相关阅读:
    20175215 2018-2019-2 第十周java课程学习总结
    2018-2019-2 20175215 实验三《敏捷开发与XP实践》实验报告
    MyCP(课下作业,必做)
    2018-2019-1 20175234 《信息安全系统设计基础》有关系统调用的部分学习
    2018-2019-1 20175234 《信息安全系统设计基础》第2周学习总结
    一个想要拥有正常的F1~F12的联想小新潮
    2018-2019-1 20175234 《信息安全系统设计基础》第1周学习总结
    Visual C++ 6.0精简绿色版下载及简单使用教程
    20175234 2018-2019-2 实验五 网络编程与安全
    20175234 2018-2019-2 实验四 Android程序设计
  • 原文地址:https://www.cnblogs.com/wuyudong/p/linux-vi.html
Copyright © 2020-2023  润新知