• Vim命令总结


    Vim文本编辑器总结

    在linux中,我们经常会用到vim来编辑文本;这里,我稍微做了一个小总结。关于vim三种模式,vim分屏、复制、粘贴、删除、替换等快捷键,vim查找、替换、窗口定制等常用指令。

    vim三种模式

    vim有默认模式,输入模式,末行模式。
    默认模式:打开vim就进入默认模式,又称编辑模式,命令模式,使用vim命令来编辑文本
    输入模式:使用i,a,o进入,键盘输入内容直接当文件内容
    末行模式:使用:进入,会在编辑器底部出现光标,用于输入定制vim命令,查找替换等操作

    模式转换

    编辑模式-》输入模式

    • i 在光标所在处插入,转换为输入模式
    • a 在当前光标所在处后面插入,转换为输入模式
    • o 在当前光标所在行的下方新建一个空白行,并转换为输入模式

    上述命令大写形式

    • I 在光标所在处行首,转换为输入模式
    • A 在当前光标所在处行尾,转换为输入模式
    • O 在当前光标所在行的上方新建一个空白行,并转换为输入模式

    输入模式-》编辑模式
    按下Esc

    编辑模式-》末行模式
    输入:

    末行模式-》编辑模式
    按下ESC两次

    vim快捷键

    vim命令参数

    打开文件

    具体用法如下

    vim 选项 文件  
    vim +100 1.txt  打开后定位到100行  
    vim 1.txt 2.txt 3.txt 打开多个文件  
    
    • 1
    • 2
    • 3

    当打开多个文件时,在末行模式中可以切换文件

    命令功能
    next下一个文件
    prev上一个
    first第一个
    last最后一个

    一个屏幕显示多个文件

    vim -o 1.txt 2.txt 3.txt 打开多个文件   水平显示
    vim -O 1.txt 2.txt 3.txt 打开多个文件  垂直显示
    
    • 1
    • 2

    切换文件使用ctrl按住不放,再按w,如果有多个窗口,按下w后可以按方向键切换
    同时在末行模式使用,q退出当前文件;qall退出所有文件

    分屏操作

    我们可以对单个文件进行分屏操作

    命令功能
    ctrl+w 松开按s水平分割 分屏
    ctrl+w 松开按v垂直分割 分屏

    编辑模式快捷键

    翻页

    命令功能
    Ctrl+f向文件尾部翻屏
    Ctrl+b向文件首部翻屏
    enter一行一行翻屏
    Ctrl+d向文件尾部翻半屏
    Ctrl+u向文件首部翻半屏

    跳转

    光标跳转

    命令功能
    h向左移动一格
    j向下移动一格
    k向上移动一格
    l向右移动一格

    数字+跳转键可以移动多格,例如:4h 代表向左移动4格

    单词间跳转

    命令功能
    w后一个单词的词首
    e下一个单词的词尾
    b跳至当前单词或前一个单词的词首

    句子间跳转

    命令功能
    )下一句
    (前一句

    段落间跳转

    命令功能
    }下一段
    {前一段

    行间跳转

    命令功能
    1G,gg第一行
    G最后一行
    nG某一行

    行内跳转

    命令功能
    ^行首,第一个非空白字符
    $行尾
    0绝对行首

    复制命令

    命令功能
    yy复制一行
    nyy复制n行

    删除命令

    命令功能
    x删除单个字符
    nx删除光标所在处向右n个字符
    dd删除一行
    ndd删除当前光标行以及下n行

    注意:d操作相当于剪贴操作,可以使用p进行粘贴

    粘贴命令

    命令功能
    p在当前光标所在行的下方粘贴
    P在当前光标所在行的上方粘贴

    跳转动作可以配合复制,删除,剪贴,选中等快捷键一起使用
    例如

     dw 删除一个单词
     db删除单词到词首    de删除单词到词尾
     d(删除当前位置到句首  d)删除当前位置到句尾
     d{删除当前位置到段首  d}删除当前位置到段尾  
     d^  光标所在处到行首
     d$ 光标所在处到行尾
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    替换

    命令功能
    r替换光标所在处单个字符
    R依次替换光标所在处及其后面的字符

    可视化模式

    命令功能
    v选中光标滑过的字符
    V选中光标滑过的行

    关闭文件命令

    命令功能
    ZZ保存退出

    末行模式

    当我们输入:就进入末行模式,通常用于关闭文件,选中指定段落,进行查找替换复制粘贴等操作

    关闭文件命令

    命令功能
    q退出当前文件
    qall退出所有文件

    文本搜索

    命令功能
    /key从当前光标所在处向文件尾部查找
    ?key从当前光标所在处向文件首部查找

    搜索到的结果我们可以选中下一个和上一个

    命令功能
    n下一个
    N前一个

    搜索字符串key可以使用正则表达式
    例如:
    /\
    从光标所在处向行尾搜索,第一个字符为数字,第二和第三个字符为字母的单词

    文本替换

    s/查找内容/要替换为的内容/修饰符
    注意:

    1. /为分隔符,可使用其他字符@,#做分隔符
    2. 可以使用正则表达式做模式查询,可使用\1,\2分组中内容
    3. 修饰符:
      i 不区分字符大小写
      g 全局替换

    示例1:替换全文中keep为KEEP,每一行只替换一次
    %s/keep/KEEP/
    全局替换
    %s/keep/KEEP/g
    注意:%代表整篇文章都在替换范围内,g代表如果同一行出现多个可以替换的内容,则全部替换

    示例2:将所有以大写字母开头行的行首加#号
    %s/^[[::upper::]]/#&/
    注意:&代表引用整行

    示例3:删除所有行首的空格
    %s/^[[:space:]]\{1,\}//g

    示例4:删除行首为#号且后面跟着至少一个空白字符行 的#号和空白字符
    %s/^#[[:space:]]\+\(.*\)/\1/g

    示例5:为文件前三行行首加#
    1,3s/^/#/

    以上示例,我们都可以用其他字符表示分隔符,例如
    1,3s@^@#@也可以用

    窗口属性定制

    功能开启关闭
    显示行号set number或set nuset nonu
    自动缩进set autoindent或set aiset noai
    不区分字符大小写set ignorecase 或set icset noic
    显示配对括号set showmatch或 set smset nosm
    开启语法高亮syntax onsyntax off
    搜索高亮显示set hlsearchset nohlsearch

    set和help获取帮助

    上述设置只在本次打开文件时有效,如果我们需要每次都生效,需要修改vim配置文件
    /etc/vimrc或~/.vimrc

    恢复意外终端文件

    当我们使用VIM编辑文件时,会生成一个文件保存我们临时修改数据(rc.sysinit.swp),意外关闭文件时,我们就可以用这个文件进行恢复

    E325: 注意
    发现交换文件 ".10.txt.swp"
                所有者: root    日期: Wed Aug  3 21:37:56 2022
                文件名: ~root/10.txt
                修改过: 是
                用户名: root      主机名: node1
               进程 ID: 4533
    正在打开文件 "10.txt"
    
    (1) Another program may be editing the same file.  If this is the case,
        be careful not to end up with two different instances of the same
        file when making changes.  Quit, or continue with caution.
    (2) An edit session for this file crashed.
        如果是这样,请用 ":recover" 或 "vim -r 10.txt"
        恢复修改的内容 (请见 ":help recovery")。
        如果你已经进行了恢复,请删除交换文件 ".10.txt.swp"
        以避免再看到此消息。
    
    交换文件 ".10.txt.swp" 已存在!
    以只读方式打开([O]), 直接编辑((E)), 恢复((R)), 删除交换文件((D)), 退出((Q)), 中止((A)):
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    我们按下r键就可以恢复。

  • 相关阅读:
    提升吃鸡战斗力,分享顶级游戏干货,一站式解决你的游戏需求!
    HDFS、Yarn、Hive…MRS中使用Ranger实现权限管理全栈式实践
    title标签和meta标签怎样设置?有什么含义?
    亥姆霍兹线圈主要用途有哪些
    全家桶Spring、HikariCP、Mybatis和Oracle配置,你想要的都在这里
    Eclipse配置tomcat
    zookeeper学习笔记
    【SpringMVC】json
    APISIX 成为 Apache 项目两周年!
    Nginx Web服务器搭建
  • 原文地址:https://blog.csdn.net/xgy123xx/article/details/126149573