• 6、Linux:一起玩转vi/vim编辑命令


     我们知道 vi 是一个功能强大的文本编辑器,而 vim 则是 vi 的高级版本,vi 可以用不同的颜色显示文本内容,可以对配置文件、shell 脚本、程序代码等进行编辑操作,所有的 Linux 发行版系统上都会默认内置 vi 编辑器。接着,梳理一下 vi/vim 的常见知识点,一起玩转 vi/vim 编辑命令吧。

    一、三种工作模式

    vi/vim 编辑器有三种工作模式,即命令模式、输入模式、底线命令模式,而这三种工作模式的切换和基本使用,如图:

    该图描述了操作 vi/vim 编辑器的基本流程:通过vi 文件名命令进入编辑器的命令模式,然后输入a或i或o中的任意一个键,就可以进入文本的编辑输入模式了,当输入完成后,通过esc键回到命令模式,再通过 : 进入底线命令模式,这意味着可以通过q键退出编辑器,也可以通过wq保存并退出,当然也可以加上!进行强制退出或保存并退出。

    二、玩转常见操作

    1、光标移动操作

    • 向上方向键 或 K键:上移一格
    • 向下方向键 或 J键:下移一格
    • 向左方向键 或 H键:左移一格
    • 向右方向键 或 L键:右移一格
    • home键 或 数字0:移动到当前行的最前面
    • end键 或 符号$:移动到当前行的最后面
    • gg:移动到文本第一行的第一个字符处
    • G:移动到文本最后一行的第一个字符处
    • n+G:n为数字,移动到文本第n行的第一个字符处
    • n+Enter:n为数字,向下移动n行
    • V,v:V将光标经过的行反白选择,v将光标经过的地方反白选择
    • ctrl+v:将光标选择的块区域反白选择
    • y:将反白的地方复制到剪贴板
    • d:将反白的内容删除

    2、文本翻页操作

    • pgup键 或 ctrl+b快捷键键:向上翻页
    • pgdn键 或 ctrl+f快捷键键:向下翻页

    3、CRUD操作

    • ?+str:str为搜索字符串内容,? 向上查找
    • /+str:str为搜索字符串内容,/ 向下查找
    • N,n:N查找上一个,n查找下一个
    • :n1,n2s/str1/str2/g : n1, n2为数字, 从第n1行~第n2行之间查找str1字符串, 并将其替换成str2
    • yy :复制光标所在一整行
    • n+yy :n为数字,复制光标所在的向下n行
    • y+0:复制光标所在的那个字符到该行行首的所有数据
    • y+$:复制光标所在的那个字符到该行行尾的所有数据
    • y+G:复制光标所在行到最后一行的所有数据
    • y+1G:复制光标所在行到第一行的所有数据
    • P,p :P向上一行粘贴复制的数据,p向下一行粘贴复制的数据
    • dd :删除光标所在一整行
    • ndd :n为数字,删除光标所在的向下n行
    • d^:删除当前光标之前到行首的所有字符
    • d$:删除当前光标处行尾的所有字符
    • X, x :X向前删除一个字符(相当于delete键),x向后删除一个字符(相当于backspace键)
    • u :向前撤销,撤销上一步操作
    • ctrl+r :向后撤销
    • . :小数点.,重复上一步操作

    4、底线命令模式操作

    • :q  退出
    • :q!  强制退出
    • :w  保存当前文件
    • :w a.txt  另存为a.txt文件
    • :w!  强制保存
    • :qw  退出并保存
    • :qw!  强制退出并保存
    • :set nu  设置显示行号
    • :set nonu  取消显示行号
    • :set fileencoding   显示当前文件的编码格式
    • :set fileencoding=gbk   设置当前文件的编码为gbk格式
    • :set fileformat   显示当前文件的断行格式
    • :set fileformat=unix   设置当前文件的断行格式

    5、多文件多窗口操作

    • ctrl + w +k :光标切换到上一个窗口
    • ctrl + w +j :光标切换到下一个窗口
    • :sp 文件名 :打开新窗口并显示新文件,若只输入:sp,则两个窗口均显示同一个文件
    • vi 1.txt 2.txt :同时打开两个文件
    • :N :编辑上一个文件
    • :n :编辑下一个文件
    • ctrl + w +q:离开当前窗口【亲测不可用】
    • :files:列出当前用vim打开的所有文件【亲测不可用】

    三、问题记录

    之前遇到了 Vim 中复制粘贴时出现的格式错乱问题,并没有保存成自己想象中的格式,记录下解决方式,有以下几种方法:

    方式1::set paste

    vi/vim 进入编辑界面后,在底线命令模式中输入:set paste,进入 paste 模式后,按 i 键进入插入模式,然后再粘帖,文本格式不会错乱了。

    方式2:在~/.vimrc文件中加入快捷键设置

    1. map :set paste
    2. map :set nopaste

    这样,在普通模式下按 F10 (你也可以用自己喜欢的按键)就会进入 paste 模式,按 i 进入插入模式后粘帖,然后按 回到普通模式,再按 F11 结束 paste 模式。

    方式3:同方法2,但会合并快捷键

    set pastetoggle=<F11>

    这样就可以把上面的 F10 和 F11 合并为一个快捷键来切换 paste 模式了。

    其他方式:使用剪切板的方式

    我经常用方式1,简单易操作,方式 1~3 基本够用了,设置剪切板的方式,这里不再去深入研究了。

  • 相关阅读:
    智能管家“贾维斯”走进现实?AI Agent或成2023科技领域新风向标
    LeetCode416 分割等和子集
    传感器信息系统中的节能收集研究(Matlab代码实现)
    JVM常用的一些参数
    Kotlin 开发Android app(七)下:Kotlin中的Lambda表达式和高阶函数
    人体神经元细胞分布图片,神经元人体分布大图
    深入理解java虚拟机:类加载及执行子系统的案例
    MySQL数据库的回滚rollback是怎么做到的?
    Jetson系统烧录环境搭建
    通用的改进遗传算法求解带约束的优化问题(MATLAB代码)
  • 原文地址:https://blog.csdn.net/qq_29119581/article/details/125550768