zoukankan      html  css  js  c++  java
  • 初识vi编辑器

    vi基本概念既不介绍了,百度,wiki上都有.下面稍微总结下我所学的vi吧

    1.vi分为三种状态:命令模式(command mode);插入模式(insert mode);底行模式(last line mode)

      (1).命令行模式-command mode

        就是控制屏幕光标的移动,主要是进入插入模式和底行模式的空档(就像手动档一样,换档都是先进入空档在到另一个档位)

      (2).插入模式(insert mode)

        名副其实的插入模式,在此模式下,你只能作文本的插入动作(这儿强调只能),也只有在此模式下,才能对文档进行文字输入

      (3).底行模式(last line mode)

        所见即所得,这就是在最底行操作的模式,一般是对当前编辑的文本进行保存或者退出.

    -->tip1:用vi命令进入vi编辑器,处于命令模式.之后最基本以及常规的做法是:1.[i]字母进入插入模式;2.[:]则进入底行模式.3.任何模式按[ESC]键都会返回命令模式.

    2.以下详细介绍各种模式中的命令的详细用法  

      (I.命令行模式:

        1). 插入模式

          按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;        按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;   

          按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

        2). 从插入模式切换为命令行模式

          按「ESC」键。

        3). 移动光标   

          vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、        「l」,分别控制光标左、下、上、右移一格。   

          按「ctrl」+「b」:屏幕往"后"移动一页。   

          按「ctrl」+「f」:屏幕往"前"移动一页。   

          按「ctrl」+「u」:屏幕往"后"移动半页。   

          按「ctrl」+「d」:屏幕往"前"移动半页。   

          按数字「0」:移到文章的开头。   

          按「G」:移动到文章的最后。   

          按「$」:移动到光标所在行的"行尾"。   

          按「^」:移动到光标所在行的"行首"   

          按「w」:光标跳到下个字的开头   

          按「e」:光标跳到下个字的字尾   

          按「b」:光标回到上个字的开头   

          按「#l」:光标移到该行的第#个位置,如:5l,56l。

        4). 删除文字   

          「x」:每按一次,删除光标所在位置的"后面"一个字符。   

          「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。   

          「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。   

          「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。   

          「dd」:删除光标所在行。   

          「#dd」:从光标所在行开始删除#行

        5). 复制   

          「yw」:将光标所在之处到字尾的字符复制到缓冲区中。   

          「#yw」:复制#个字到缓冲区   

          「yy」:复制光标所在行到缓冲区。   

          「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。   

          「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

        6). 替换   

          「r」:替换光标所在处的字符。   

          「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

        7). 回复上一次操作   

          「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。

        8). 更改  

          「cw」:更改光标所在处的字到字尾处   

          「c#w」:例如,「c3w」表示更改3个字

        9). 跳至指定的行   

          「ctrl」+「g」列出光标所在行的行号。   

          「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

      (II.底行模式Last line mode下命令简介   

         在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。

        A) 列出行号  

          「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

        B) 跳到文件中的某一行  

          「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

        C) 查找字符  

          「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。  

          「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

        D) 保存文件  

          「w」:在冒号输入字母「w」就可以将文件保存起来。

        E) 离开vi  

          「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。  

          「qw」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

    3.最后附上vi使用手册:

    VI是unix上最常用的文本编辑工具,作为unix软件测试人员,有必要熟练掌握它。

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首

    vi + filename :打开文件,并将光标置于最后一行首

    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

    vi filename....filename :打开多个文件,依次编辑

    移动光标类命令

    h :光标左移一个字符

    l :光标右移一个字符

    space:光标右移一个字符

    Backspace:光标左移一个字符

    k或Ctrl+p:光标上移一行

    j或Ctrl+n :光标下移一行

    Enter :光标下移一行 w或W :光标右移一个字至字首

    b或B :光标左移一个字至字首

    e或E :光标右移一个字j至字尾

    ) :光标移至句尾

    ( :光标移至句首

    }:光标移至段落开头

    {:光标移至段落结尾

    nG:光标移至第n行首

    n+:光标下移n行

    n-:光标上移n行

    n$:光标移至第n行尾

    H :光标移至屏幕顶行

    M :光标移至屏幕中间行

    L :光标移至屏幕最后行

    0:(注意是数字零)光标移至当前行首

    $:光标移至当前行尾 屏幕翻滚类命令

    Ctrl+u:向文件首翻半屏

    Ctrl+d:向文件尾翻半屏

    Ctrl+f:向文件尾翻一屏

    Ctrl+b;向文件首翻一屏

    nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

    插入文本类命令

    i :在光标前

    I :在当前行首

    a:光标后

    A:在当前行尾

    o:在当前行之下新开一行

    O:在当前行之上新开一行

    r:替换当前字符

    R:替换当前字符及其后的字符,直至按ESC键

    s:从当前光标位置处开始,以输入的文本替代指定数目的字符

    S:删除指定数目的行,并以所输入文本代替之

    ncw或nCW:修改指定数目的字

    nCC:修改指定数目的行

    删除命令

    ndw或ndW:删除光标处开始及其后的n-1个字

    do:删至行首

    d$:删至行尾

    ndd:删除当前行及其后n-1行

    x或X:删除一个字符,x删除光标后的,而X删除光标前的

    Ctrl+u:删除输入方式下所输入的文本

    搜索及替换命令

     /pattern:从光标开始处向文件尾搜索pattern

    ?pattern:从光标开始处向文件首搜索pattern

    n:在同一方向重复上一次搜索命令

    N:在反方向上重复上一次搜索命令 :

    s/p1/p2/g:将当前行中所有p1均用p2替代 :

    n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代 :

    g/p1/s//p2/g:将文件中所有p1均用p2替换

    选项设置

    all:列出所有选项设置情况

    term:设置终端类型

    ignorance:在搜索中忽略大小写

    list:显示制表位(Ctrl+I)和行尾标志

    ($) number:显示行号

    report:显示由面向行的命令修改过的数目

    terse:显示简短的警告信息

    warn:在转到别的文件时若没保存当前文件则显示NO

    write信息

    nomagic:允许在搜索模式中,使用前面不带“”的特殊字符

    nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始

    mesg:允许vi显示其他用户用write写到自己终端上的信息

    最后行方式命令

    :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下

    :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下

    :n1,n2 d :将n1行到n2行之间的内容删除

    :w :保存当前文件

    :e filename:打开文件filename进行编辑

    :x:保存当前文件并退出

    :q:退出vi

    :q!:不保存文件并退出vi

    :!command:执行shell命令command

    :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指 定n1,n2,则表示将整个文件内容作为command的输入

    :r!command:将命令command的输出结果放到当前行 。

        

  • 相关阅读:
    我和杨兄的不同的Code First简单权限设计
    JavaScript&JQ 004_JS闭包
    省市区三级联动[JSON+Jquery]
    JavaScript 005_JS数组的CRUD
    linq头脑风暴001_聚合函数
    类成员函数指针的特殊之处
    模拟手算,计算组合数C(m,n)
    命令行版扫雷(vc08)
    UNICODE,GBK,UTF8:编码格式的区别
    画高频PCB的心得
  • 原文地址:https://www.cnblogs.com/not-NULL/p/4460821.html
Copyright © 2011-2022 走看看