• vi / vim 命令集合


      vim的命令太多了,不常用就会忘记,所以我决定把vim的各种命令整理下来,包括vim的插入删除、光标移动、多窗口编辑、复制粘贴、查找替换、以及一些常用命令

    删除操作

    dd  删除当前行

    ndd     删除以当前行开始的n行(包括当前行)

    dw  删除到单词尾

    ndw     从光标处删除到第三个单词尾(不严格区分字段)

    ndW    从光标处删除到第三个单词尾(严格区分字段)

        也可以dnw或dnW

    x    删除光标处的一个字符

    d0  删除到行首

    d^   删除到行首(保留行首的空格和Tab)

    d$  删除到行尾

    D    删除到行尾(与d$命令相同)

    d回车       删除2行

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

    D       删除到行尾

    dl      删除当前字符(与x命令功能相同)

    db     删除到某个单词的开始位置

    dW   删除到某个以空格作为分隔符的单词的结尾位置

    dB     删除到某个以空格作为分隔符的单词的开始位置

    d7B   删除到前面7个以空格作为分隔符的单词的开始位置

    d4)      删除到第四个语句的结尾位置

    d(     删除到某个语句的开始位置

    d)   删除到某个语句的结尾位置

    d{     删除到某个段落的开始位置

    nd{    删除到当前段落起始位置之前的第n个段落位置

    d/text   删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容

    dfc      删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容

    dtc    删除当前行直到下一个字符“c”所出现位置之间的内容

    dL     删除直到屏幕上最后一行的内容

    dH     删除直到屏幕上第一行的内容

    dG     删除直到工作缓存区结尾的内容

    d1G   删除直到工作缓存区开始的内容 

    c      删除,然后进入INSERT MODE

    cc    删除当前行,然后进入INSERT MODE

    移动光标

    j  向下移动光标

    k  向上移动光标

    h  向左移动光标

    l   向右移动光标

    ^   移动到该行第一个非空格的字符处

    w   向前移动一个单词,将符号或标点当作单词处理

    W    向前移动一个单词,不把符号或标点当作单词处理

    b    向后移动一个单词,把符号或标点当作单词处理

    B   向后移动一个单词,不把符号或标点当作单词处理

    (    光标移至句首

    )   光标移至句尾

    {    光标移至段落开头

    }    光标移至段落结尾

    H   光标移至屏幕顶行

    M    光标移至屏幕中间行

    L    光标移至屏幕最后行

    0    到行首

    $    到行尾

    gg    到页首

    G    到页末

    行号+G    跳转到指定行

    n+    光标下移n行

    n-    光标上移n行

    fx    向右跳到本行字符x处(x可以是任何字符)

    Fx    向左跳到本行字符x处(x可以是任何字符)

    tx    和fx相同,区别是跳到字符x前 Tx 和Fx相同,区别是跳到字符x后

    Ctrl-b   向上滚动一屏

    Ctrl-f    向下滚动一屏

    Ctrl-u    向上滚动半屏

    Ctrl-d    向下滚动半屏

    Ctrl-y    向上滚动一行

    Ctrl-e    向下滚动一行

    移动代码

    J         把下一行合并到当前行尾

    选择

    V        选择一行(继续移动光标可以选择多行)

    Ctrl+v  进行矩形区域的选择

     

    进入和退出

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

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

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

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

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

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

    ZZ    退出vi并保存

    :q!    退出vi,不保存

    :wq    退出vi并保存

    插入

    i     进入插入模式

    o    在下一行插入新的一行

    O    在上一行插入新的一行

    a   在光标之后进入插入模式

    A    在光标之前进入插入模式

    查找及替换命令

    r      替换一个字符

    R      进入替换模式,直到Esc退出

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

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

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

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

    %    查找配对的括号

    :s/p1/p2/g    将当前行中所有p1均用p2替代,若要每个替换都向用户询问则应该用gc选项

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

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

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

    rx      将当前光标下的字符更改为x(x为任意字符)

    ~      更改当前光标下的字符的大小写

     

    .*[]^%~$ 在Vi中具有特殊含义,若需要查找则应该加上转义字符""

    撤回与恢复

    u  撤销命令

    U    修正之前对该行的操作

    Ctrl+r  恢复( u的反操作)

    多窗口编辑

    :split  xxx   上下分窗口打开xxx文件

    :vsplit   xxx   左右分窗口打开xxx文件

    Ctrl+ww    光标跳转到下一个窗口

    复制与粘贴

    y    复制选中内容

    p     粘贴

     

    yy    复制当前整行

    nyy    复制当前行开始的n行内容

    “+y   复制到系统剪切版

    ”+P   从系统剪切版粘贴

    “+yG  从光标处复制到文件尾,复制到系统剪切版

    一些命令

    .      重复上一个命令

    :set hlsearch    设置高亮

    :set nohlsearch    关闭高亮

    :set nu!     打开行号

     键盘图

     ---------------------------------

    不定期更新、希望有所帮助....

     

     

  • 相关阅读:
    Top 10 Product Manager Skills To Boost Your Resume In 2021
    大数据知识梳理
    B端产品如何设计权限系统?
    华三盒式交换机MAC、ARP、Route性能表项参数查询
    中了传说中的挖矿病毒
    SqlServer 2019 事务日志传送
    docker中生成的pdf中文是方框的解决方案
    The Live Editor is unable to run in the current system configuration
    2021 面试题大纲
    五分钟搞定Docker安装ElasticSearch
  • 原文地址:https://www.cnblogs.com/magisk/p/8727604.html
Copyright © 2020-2023  润新知