• Vi与Vim


     0:编辑缓冲区

    vi编辑文件时,将文件内容复制到编辑缓冲区,我们操作的内容其实是文件的副本而不是原始数据。

    在编辑完成后,要把缓冲区的数据写入文件,才是真正编辑了文件。

    1:Vi的三种模式

    一般指令模式:Vi打开(创建)一个文件时默认处于一般指令模式,此时可以 上下左右移动光标、使用快捷键来复制粘贴、删除整行整列。

    编辑模式:在一般指令模式下,按下“i、I,a、A,r、R,o、O”任意一个时,进入编辑模式,左下角出现INSERT或REPLACE字样。此时可以进行键盘输入。按Esc退出编辑模式回到一般指令模式。

    命令行模式:一般指令模式下,输入“:/ ?”任意一个时,进入命令行模式,光标移动到窗口的最下面一行。此时,可以输入一些命令,进行数据搜索、读入数据、存盘、离开Vi等操作。

    2:一般指令模式下快捷键

    3:进入编辑模式时的按键说明

    4:命令行模式指令说明

    5:中断恢复

    如果在文件编辑过程中由于机器关机等原因导致没有存盘,那么重新打开该文件时,会提醒你该文件存在.swap暂存盘文件,此时可以执行以下操作进行数据恢复或者舍弃:

    6:Vim的区块选择

    按下v、V键,左下角出现VISUAL字样时,进入区块选择模式。

    移动光标进行内容选择。

    然后用y复制、d删除、p粘贴。

    7:Vim的多窗口模式

    8:补全提示

    (最常用1、3组合键,1是文档内补全提示、3是根据文档类型补全提示,特别是用Vim进行开发时补全关键字特别有用。)

    9:Vim编辑环境设置

    10:以只读模式查看文件

    vi -R 文件
    view 文件

    11:恢复数据

    我们在编辑时,数据保存在 编辑数据缓冲区 ,vi会时不时将缓冲区数据写入一个临时文件中。
    如果某次我们编辑时遇到死机等情况导致没有保存,那么再次打开文件时,可以通过 -r 选项从临时文件中恢复上次编辑时的数据。

    vi -r 文件

    (-R是只读,-r是恢复!)

    12:快速保存并退出

    ZZ(大写) :保存并退出

    13:vi指令的学习

    vi指令分为三种:

    移动光标:大概40条移动指令

    进入编辑模式:12条进入指令

    进行修改:复制粘贴移动删除等等修改指令

    常用的移动光标指令

    上下左右

    左下上右:hjkl
    方向键控制:上下左右

    行内移动

    0 :移动到行开头
    $ :移动到行结尾
    ^:移动到第一个非空字符上

    按单词移动

    w:移动到下一个单词词首 (W同理,忽略标点符号)
    e:移动到下一个单词词尾(E同理,忽略标点符号)
    b:移动到上一个单词词首(B同理,忽略标点符号)

    按句子移动

    ) :移动到下一个句子 
    ( :移动到上一个句子

    按段落移动

    { :移动到上一个锻炼
    } :移动到下一个锻炼

    在屏幕中移动

    H :移动到屏幕顶部 
    M:移动到屏幕中间
    L:移动到屏幕底部

    多次执行指令

    n指令 :执行n次指令
    例如:3{ 往上移动3个段落

    使用 Ctrl+键 组合键实现大范围移动

    ^F:向前移动一屏
    ^B:向后移动一屏
    ^U:向前移动半屏
    ^D:向后移动半屏

    使用搜索命令按匹配模式来移动光标

    /pattern:向前搜索
    ?pattern:向后搜索
    然后逐个查看匹配处
    n:查看下一个匹配处
    N:查看上一个匹配处

     按行号移动

    :set number :开启行号
    nG :移动到第n行
    :n :移动到第n行
    gg:移动到第一行
    :$ :移动到最后一行 :
    set nonumber:取消行号

    常用插入指令

    光标前后插入:

    i :当前光标前插入
    a :当前光标后插入

    行头尾插入:

    I:当前行开头处插入
    A:当前行结尾处插入

    行上下插入:

    o:当前行下面插入
    O:当前行上面插入

    常见修改指令

    替换:

    vi指令替换

    r字符:用紧跟着r的字符替换光标处字符
    R :进入替换输入模式,之后键入的每个字符都依次替换光标所在处内容。
    cc :替换整行

    ex命令替换

    :s/原pattern/替换pattern/ :替换当前行上第一个匹配项
    :s/原pattern/替换pattern/g:全局替换

    删除:

    按字符删除:

    x :删除光标所在处字符
    X :删除光标左边字符

    按行删除:

    D:删除从当前光标到本行末尾的字符
    dd:删除当前行
    d回车:删除当前行
    :nd :删除第n行
    :n,md :删除n~m行

    按单词删除:

    dw :删除一个单词
    dnw:删除n个单词
    db:向上删除1个单词

    按句子删除:

    dn):删除n个句子

    按段落删除:

    dn}:删除n个段落

    撤销 或 重做:

    u :撤销
    U :恢复当前行
    .  :重复执行上一条指令

    常用文本操作指令

    移动文本(剪切):

    无名缓冲区:编辑器中最近一次删除的内容,自动保存在无名缓冲区中。(其实,x、d等删除指令相当于剪切

    粘贴:

    p 或 P :在光标处将无名缓冲区的内容插入

     按行移动:

    :起始行m目标行:将起始行移动到目标行,起始行可以是多个,用逗号隔开

    复制文本:复制文本到无名缓冲区——移动光标到插入处——粘贴

    复制指令:

    yw:复制一个单词
    ynw:复制n个单词
    yy:复制一行
    nyy:复制n行
    yn}:复制n段落

     按行复制:

    :起始行co目标行:将起始行复制到目标行下面

    变换大小写:

    ~ :波浪号可以把光标当前位置的字符表换大小写

    从文件中读入数据:

    :[n]r file:读取file内容,插入到当前vi编辑缓冲区的n行之后(如果不指定,则插入光标处)

     将shell指令执行结果插入编辑缓冲区

    :[n]r !指令 :将指令的执行结果插入到编辑缓冲区

    14:vi环境设置

    设置指令格式:

    :set option/nooption
    :set option=value

    常见设置选项:

    15:在vi中执行shell命令

    :!指令  :启动shell执行指令,执行完后回到vi界面

    16:使用其他程序处理编辑缓冲区中文本内容

    n!!program :对于光标之后n行,使用program进行处理
    例如:
    10!!sort :将后面十行排序

    17:将编辑缓冲区内容写入文件

    ZZ:自动保存并退出
    :w :写入原始文件
    :w file :写入文件file
    :w!file :覆盖一个文件
    :w>>file:追加到文件末尾

    18:切换文件

    :e 文件名: 切换到另一个文件(切换之前先保存当前内容)

    19:快捷输入——缩写

    定义缩写:

    :ab 缩写 完整写法  :以缩写单词指代完整写法

    使用缩写:

    键入 缩写  ,会自动输入完整写法。

    20:宏

    定义宏:

    :map x command :使用字符x,映射为指令command

    使用宏:

    在需要使用command的地方,按下对应的宏按键即可。

    21:配置vi

    在vi的配置文件中,我们可以通过选项、缩写、宏等来定制自己的vi编辑器。

  • 相关阅读:
    获取有关控件的坐标
    Android PopupWindow的使用和分析
    Android RecyclerView 使用完全解析 体验艺术般的控件
    TextView中显示价格并且中间直接有一个横线
    Android Studio
    移动开发】Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)
    Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
    理解Java的IO流 2015年8月6日 21:30:38
    算法导论学习随笔——第七章 快速排序
    oj 1031 random permutation
  • 原文地址:https://www.cnblogs.com/ygj0930/p/8031083.html
Copyright © 2020-2023  润新知