zoukankan      html  css  js  c++  java
  • vi编辑器:命令模式、输入模式、末行模式

    1、命令模式(command mode)—执行命令  

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

    2、输入模式(Insert mode)—输入文本 

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

    3、末行模式(last line mode)—执行待定命令 

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

    1. vi的启动

      输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。

      (1) vi

      进入vi的一个临时缓冲区,光标定位在该缓冲区第1行第1列的位置上。

      (2) vi file1

      如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在该缓冲区第1行第1列的位置上。

      (3) vi + file1

      如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件最后1行第1列的位置上。

      (4) vi +N file1(N:为数字)

      如果file1文件不存在,将建立此文件;如该文件存在,则将其拷贝到一个临时缓冲区。光标定位在文件第N行第1列的位置上。

      (5) vi +/string file1

      如果file1文件不存在将建立此文件;如该文件存在则将其拷贝到一个临时缓冲区。光标定位在文件中第一次出现字符串string的行首位置。

    2. 退出vi(末行模式(last line mode))

      建议在退出vi前,先按ESC键,以确保当前vi的状态为命令方式,然后再键入“:”(冒号),输入下列命令,退出vi。

      (1) :w

      将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi:

      :w filename(存入指定文件)

      :q

      (2) :wq

      即将上面的两步操作可以合成一步来完成,先执行w,后执行q。

    3、在文件中移动光标 

    • h:向左移动一个字符 
    • l:向右移动一个字符  
    • j:向下移动一行 
    • k:向上移动一行 
    • ^(即Shift+6):移动到当前行的开头处 
    • $(即Shift+4):移动到当前行的结尾处  
    • H(大写):使光标移动到屏幕的顶部 
    • M(大写):使光标移动到屏幕的中间 
    • L(大写):使光标移动到屏幕的底部  
    • Ctrl+b:上滚一屏。  
    • Ctrl+f:下滚一屏。 
    • Ctrl+d:下滚半屏。 
    • Ctrl+u: 上滚半屏。

    4、撤消更改 

        (1)撤消前一个命令:在最后一个命令之后立即输入u来撤消该命令 

     (2)重复某个命令:“.” 

     (3)撤消对一行的更改:输入U来撤消你对一行所做的所有更改,这个命令只有在你没将光标移动到该行以外时才生效。

    5、删除文本 

     (1)删除一个字符: 

     ●为删除一个字符,需将光标放置在要删除的字符上并输入x 

     ●为删除光标之前(其左边)的一个字符,需输入X  

       (2)删除一个词或词的部分内容: 

     ●为删除一个词,需将光标放置到该词的开头并输入dw  

        ●为删除词的部分内容,需将光标放置到该词要保存部分的右边。输入dw来删除该词余下的部分  

       (3)删除一行:将光标放置到该行的任意处并输入dd  

       (4)删除多行:ndd  

       (5)删除行的部分内容:将光标放置到该行要保存部分的右边,并输入D。为删除光标左边的所有内容,须将光标放置到该行要删除部分的右边,并输入d0(d-零)。 

     (6)删除到文件的结尾:为删除从当前行到文件结尾的所有内容,需输入dG

    6、复制和移动文本 

     ●复制一行命令:yy 

     ●粘贴命令:p  

        ●移动文本:先将要移动的部分用删除命令删除,然后再粘贴就可以了 

     ●复制指定文件的内容  : r filename 

    7、查找一个字符串 

     ●输入/,并在/后面输入要查找的串,然后按下回车  

        ●输入“n”跳转到该串的下一个出现处  

        ●输入“N”跳转到该串的上一个出现处  

    8、替换一个字符串 

     ●在一行内替换头一个字符串old为新的字符串new   :s/old/new  

     ●在一行内替换所有的字符串old为新的字符串new   :s/old/new/g  

     ●在两行内替换所有的字符串old为新的字符串new   :#,#s/old/new/g 

     ●在文件内替换所有的字符串old为新的字符串new   :%s/old/new/g  

     ●进行全文替换时询问用户确认每个替换需添加c选项   :%s/old/new/gc  

    9、设置vi  

     ●显示行号   :set number   

        ●取消行号显示   :set nonumber   

        ●设置显示用户模式   :set showmode   

        ●设置文件只读   :set readonly

    (转载的)

  • 相关阅读:
    Sql2008 全文索引 简明教程
    sql server 全文检索 使用
    数据库分词查询的优缺点以及英文和中文各自的分词方法(一)
    win10中打开SQL Server配置管理器方法
    Asp.net 中高亮显示搜索关键字简单方法
    EntityFramework优缺点
    LoadXml载入Xhtml文件速度很慢
    c#无限循环线程如何正确退出
    线程的等待方法:join
    C#如何优雅的结束一个线程
  • 原文地址:https://www.cnblogs.com/yw-ah/p/9103583.html
Copyright © 2011-2022 走看看