zoukankan      html  css  js  c++  java
  • UNIX linux vi命令

    vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:

     

      命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在

    任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编

    辑文件。

      输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT

    --”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命

    令模式,在进入末行模式保存。

      末行模式:在命令模式输入即可进入该模式,在末行模式中有好多好用的命令。

     

    1.进入vi的命令

    vi filename   :打开或新建文件,并将光标置于第一行首

    vi +n filename :打开文件,并将光标置于第n行首

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

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

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

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

     

    2.移动光标类命令

    hBackspace:光标左移一个字符

    lspace :光标右移一个字符

    kCtrl+p:光标上移一行

    jCtrl+nEnter :光标下移一行

    wW :光标右移一个字至字首

    bB :光标左移一个字至字首

    eE :光标右移一个字至字尾

    ) :光标移至句尾

    ( :光标移至句首

    }:光标移至段落开头

    {:光标移至段落结尾

    nG:光标移至第n行首

    n+:光标下移n

    n-:光标上移n

    n$:光标移至第n行尾

    H :光标移至屏幕顶行

    M :光标移至屏幕中间行

    L :光标移至屏幕最后行

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

    $:光标移至当前行尾

     

    3.屏幕翻滚类命令

    Ctrl+u:向文件首翻半屏

    Ctrl+d:向文件尾翻半屏

    Ctrl+f:向文件尾翻一屏

    Ctrlb;向文件首翻一屏

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

     

    4.插入文本类命令(文本输入模式)

    i :在光标前

    I :在当前行首

    a:光标后

    A:在当前行尾

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

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

    r:替换当前字符

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

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

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

    ncwnCW:修改指定数目的字

    nCC:修改指定数目的行

     

    5.删除命令

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

    do:删至行首

    d$:删至行尾

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

    dd: 删除一行

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

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

     

    6.复制操作

    yy命令复制当前整行的内容到vi缓冲区

    yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词

    y$复制光标所在位置到行尾内容到缓存区

    y^复制光标所在位置到行首内容到缓存区

    #yy例如:5yy就是复制5

    #yw例如:2yw就是复制两个单词

      如果要复制第m行到第n行之间的内容,可以在末行模式中输入mny例如:35y复制第三行到第五行内容到缓存区。

    粘贴缓冲区中的内容,用p

     

    7.撤销操作

    u命令取消最近一次的操作,可以使用多次来恢复原有的操作

    U取消所有操作

    Ctrl+R可以恢复对使用u命令的操作

     

    8.搜索及替换命令

    vi的查找和替换功能主要在末行模式完成:

     

    至上而下的查找

      / 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work

     

    至下而上的查找

      ?要查找的字符窜 例如:/ work

     

    替换

      :s/old/newnew替换行中首次出现的old

      : s/old/new/g new替换行中所有出现的old

      :#,# s/old/new/gnew替换从第#行到第#行中出现的old

      :% s/old/new/gnew替换整篇中出现的old

     

    9.选项设置

    :set nu 显示行号

    :set nonu 隐藏行号

    :set showmode 显示当前操作模式(如用vedit将自动打开)

    :set noshowmode 关闭模式显示

    :set 显示所有vi变量

    :set all 显示所有可能的vi变量和它们的当前的值

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

    term:设置终端类型

    ignorance:在搜索中忽略大小写

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

    number:显示行号

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

    terse:显示简短的警告信息

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

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

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

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

     

    10.最后行方式命令(末行模式)

    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的输入并执行之,若不指定n1n2,则表示将整

     

    个文件内容作为command的输入

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

     

    11.恢复文件

      vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动

     

    删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:

     

      O只读打开,不改变文件内容

      E继续编辑文件,不恢复.swp文件保存的内容

      R将恢复上次编辑以后未保存文件内容

      Q退出vi

      D删除.swp文件

      或者使用vi r 文件名来恢复未保存的内容

     

    12.寄存器操作

    "?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字

    "?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字

    "?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字

    "?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字

    ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。 

     

     

     

     

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/love_tu/archive/2009/08/07/4421389.aspx

  • 相关阅读:
    hp_jetdirect 9100漏洞检测
    fenghuangscannerV3 EXE版本
    计划:6.10
    [PY]进制转换
    OpenStack 制作镜像
    Kernel 问题小记
    Ubuntu 问题小记
    Git 常用命令
    OpenStack 构建单测环境
    SDN 杂谈
  • 原文地址:https://www.cnblogs.com/xh831213/p/1867304.html
Copyright © 2011-2022 走看看