vim原理入门

Vim是一个流行的文本编辑器,具有命令模式、编辑模式和末行模式。在命令模式中,可以移动光标、删除和复制文本,如dd删除一行,yy复制一行。末行模式则用于配置Vim、保存退出和查找替换。编辑模式允许在文本中插入内容。通过宏录制和播放,可以批量执行操作。掌握Vim的这些基本操作,能提升Linux系统的文本编辑效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux——vim

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)

命令模式

  • 命令模式(输入的按键都是命令)
    • 移动光标的命令:
      • h j k l ------> 左 下 上 右 (可以配合数字使用)(100j 往下面移动100行)
      • gg -----> 光标直接回到第一行
      • G -------> 光标去到最后一行
      • 100G -----> 光标直接去到100行
      • w e ------> 光标移到下一个单词的第一个字母/光标移到下一个单词的最后一个字母
      • 0 $ -----> 光标到行首/光标到行尾
      • Ctrl + f / ctrl + b ----->向下 / 向上翻页
      • ctrl + e / ctrl + y -----> 向下 / 向上翻行
    • 编辑内容:
      • dd 100dd ----> 删行 / 删100行
      • d0 / d$------> 从光标所在的位置一直删到行首/ 从光标所在的位置一直删到行末
      • dw -----> 删除光标所在位置后面的单词
      • yy / 10yy / p / 10p ------> 复制代码/ 复制10行代码 / 粘贴复制的代码 / 复制的代码粘贴10次
    • 撤销和重做
      • u -------> 撤销
      • Ctrl + r ------> 重做
    • 重复上一个命令
      • . -------> 重复上一个命令
    • 录制宏和播放宏(以批量缩进为例)
      • qa(q表示录制,a是变量名(保存宏的寄存器)) —> recording做操作-----> 0(回到行首) -----> i(进入编辑模式) ------> 敲制表键缩进 -----> esc(进入命令模式) —> j (让光标回到下一行) —> q (结束录制)
      • @a -----> 播放宏
      • 100@a -----> 录制的操作重复100遍

末行模式

  • 末行模式(底线命令模式) -----> 配置vim、保存退出、查找替换
    • /关键字 --------> 从上往下搜,按小写的n ,进行正向搜索,按大写的N进行反向搜索
    • ?关键字 --------> 从下往上搜,按小写的n ,进行正向搜索,按大写的N进行反向搜索
      • 在进行搜索之后想取消高亮就在末行模式里输入:nohls
      • 恢复高亮:set hls
    • 替换:1,$s/新闻/狗屎/g (从第vim一行到最后一行所有的新闻都替换成狗屎,s代表替换,新闻是被替换的内容,狗屎是替换的内容,g代表全局替换)
      • 也可以:300,500$s/关键字/替换的内容(300,500是行号)
      • g -----> global ----->全局模式
      • c -------> confirm ----->需要确认
      • i -------> ignore-case ------>忽略大小写
    • 拆分窗口:sp / vs ---->水平拆分 / 垂直拆分
      • 拆分了窗口之后,可以在窗口中切换文件
      • 将光标移到需要切换文件的窗口,进入末行模式,再输入:b 文件序号
    • 切换窗口: 两次ctrl + w
    • 退出窗口:末行模式输入:wqa
    • 文件之间进行版本比较:
      • vim -d 文件1 文件2 : 可以找出两个文件不一样的地方,进行版本比较
      • diff 文件1 文件2
    • 显示行号:set nu
    • 设置制表键的空格数:set ts=4
    • 设置自动缩进:set autoindent
    • 末行模式下可以执行系统命令,只需要在原来的命令前加上!即可
    • 保存:w / w!/ w hello.py
    • 退出:q / q! (强制性退出)/ qa
    • 保存退出:wq

编辑模式

  • 编辑模式
    • 进入编辑模式
      • i I a A o O
        • 这几个都可以进入编辑模式,只是进入的方式有些许的不同
        • i, I : i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』
        • a, A : a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』
        • o, O :是英文字母 o 的大小写。o 为在目前光标所在的下一行处输入新的一行; O 为在目前光标所在的上一行处输入新的一行!
    • 按ESC回到命令模式
    • 保存退出:
      • ZZ
      • 命令模式下按: 进入末行模式:
        • 保存 :w / w! / w hello.py
        • 退出 / 强行退出 / 退出所有: q / q! / qa
        • 保存退出:wq
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值