zoukankan      html  css  js  c++  java
  • LINUX VIM编辑器

     

    vi有3个模式:插入模式、命令模式、低行模式。

    插入模式:在此模式下可以输入字符,按ESC将回到命令模式。

    命令模式:可以移动光标、删除字符等。

    低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

    一、打开文件、保存、关闭文件(vi命令模式下使用)

    vi filename       //打开filename文件 
    :w       //保存文件 
    :w vpser.net //保存至vpser.net文件 
    :q          //退出编辑器,如果文件已修改请使用下面的命令 
    :q!        //退出编辑器,且不保存 
    :wq         //退出编辑器,且保存文件 

    二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)

    a      //在当前光标位置的右边添加文本 
    i       //在当前光标位置的左边添加文本 
    A     //在当前行的末尾位置添加文本 
    I      //在当前行的开始处添加文本(非空字符的行首) 
    O     //在当前行的上面新建一行 
    o     //在当前行的下面新建一行 
    R    //替换(覆盖)当前光标位置及后面的若干文本 
    J    //合并光标所在行及下一行为一行(依然在命令模式)

    三、移动光标(vi命令模式下使用)

    1、使用上下左右方向键

    2、命令模式下:h   向左、j   向下 、k   向上、l  向右。

    空格键 向右、Backspace  向左、Enter  移动到下一行首、-  移动到上一行首。

    四、删除、恢复字符或行(vi命令模式下使用)

    x         //删除当前字符 
    nx         //删除从光标开始的n个字符 
    dd      //删除当前行 
    ndd   //向下删除当前行在内的n行 
    u       //撤销上一步操作 
    U      //撤销对当前行的所有操作 

    五、搜索(vi命令模式下使用)

    特殊字符(五,九):

    ^:行首指示符      $:行尾指示符      .:任意字符指示符

    <:字符开始指示符   >:字符结束指示符   *:0此或多次出现

    [ ]:字符类定义

    /vpser     //向光标下搜索vpser字符串 
    ?vpser     //向光标上搜索vpser字符串 
    n           //向下搜索前一个搜素动作 
    N         //向上搜索前一个搜索动作 

    六、跳至指定行(vi命令模式下使用)

    n+        //向下跳n行 
    n-         //向上跳n行 
    nG        //跳到行号为n的行 
    G           //跳至文件的底部

    七、设置行号(vi命令模式下使用)

    :set  nu     //显示行号 
    :set nonu    //取消显示行号

    八、复制、粘贴(vi命令模式下使用)

    yy    //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。

    nyy   //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。

    yw    //复制从光标开始到词尾的字符。

    nyw   //复制从光标开始的n个单词。

    y^      //复制从光标到行首的内容。  VPS侦探

    y$      //复制从光标到行尾的内容。

    p        //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。

    P        //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。

    九、替换(vi命令模式下使用)

    :s/old/new      //用new替换行中首次出现的old 
    :s/old/new/g         //用new替换行中所有的old 
    :n,m s/old/new/g     //用new替换从n到m行里所有的old 
    :%s/old/new/g      //用new替换当前文件里所有的old

    十、编辑其他文件

    :e otherfilename    //编辑文件名为otherfilename的文件。

    十一、修改文件格式

    :set fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。

    十二、vim-读文件

    读(:r) 读命令将文件读入工作缓冲区。新文件并不覆盖工作缓冲区中的任何文本,而是被定位到命令中指定的地址之后(如果没有指定地址,就是为当前行)。使用地址0可以将文件读入到工作缓冲区的开始位置。

    读命令语法格式如下:

    :[address]r [filename]

    1.如果省略address 和 filename,那么 vim将从磁盘读写入用户正在编辑的文件,且文本内容在当前光标的下一行。

    2.在当前文件hello.txt中插入另外一个文件myfile.txt的内容:

    hello.txt其内容是:hello world!

    myfile.txt其内容是:this is a file.

    #vim hello.txt

    #:r myfile.txt

    hello.txt文件内容如下:

    hello world!

    this is a file.

    3. 在当前文件开头插入另外一个文件的内容: :0r filename

    我们可以用数字指定在哪一行的后面开始插入另外一个文件的内容,
    例如:
    #vim hello.txt
    #:3r myfile.txt 会把myfile.txt的内容插入到当前文件的第3行的下方。
     
    同理,:0r myfile.txt 会把myfile.txt的内容插入到当前文件的第0行的下
    方,也就是文件最开始的地方(尽管文件中并不存在真正的第0行,但是我们恰好
    可以利用它)。
     
    十三vim-写文件
    写(:w) 写命令可以将工作缓冲区的部分或者全部内容写入文件中。使用地址可以将工作缓冲区的部分内容写入由文件名指定的文件中。如果不指定地址或文件,那么 vim将把整个工作缓冲区的内容写入正在编辑的文件中,并更新磁盘上的文件。

    读命令语法格式如下:

    :[address]w [filename]

    :[address]w[!] [filename]

    :[address]w>> [filename]

    示例:

    :w myfile.txt 将当前文件的内容写入到myfile.txt中,如果该文件

    已存在则报错,不会修改原有内容。
    :w! myfile.txt 将当前文件的内容写入到myfile.txt中,如果该文件
    已存在则覆盖原有内容。
    :w >>myfile.txt 将当前文件的内容追加到文件myfile.txt的末尾。
  • 相关阅读:
    编码问题
    Linux环境给文件重命名
    FIFO简记
    图像去模糊
    matlab直方图均衡,使用向量优化
    研究方向
    FPGA学习笔记之格雷码、边沿检测、门控时钟
    [转]关于凸优化的一些简单概念
    SSD果然劲爆!
    Qunie问题
  • 原文地址:https://www.cnblogs.com/gered/p/8144887.html
Copyright © 2011-2022 走看看