vim学习使用笔记

news/2025/9/28 19:12:56/文章来源:https://www.cnblogs.com/r0xy/p/19117427

我背叛了 Neovim ?! 和我一起配置 VSCode 吧_哔哩哔哩_bilibili

Vim 命令语言入门

Vim 的命令模式通常遵循这样的结构:{操作符} + {计数} + {动作/文本对象}

  1. 操作符(Operator):这部分决定了你要对文本做什么。例如:

    • d:删除 (delete) 。

    • c:修改 (change) 。

    • y:复制 (yank) 。

    • g~:切换大小写 (switch case) 。

    • >:增加缩进

    • <:减少缩进

  2. 文本对象(Text Object):这部分决定了操作的范围。文本对象是 Vim 对代码或文本中逻辑单元的抽象,例如单词、句子、段落、括号内的内容等 。文本对象通常由两个字母组成:

    • i (inner):表示“内部”,即不包括周围的空白或分隔符 。
    • a (around):表示“整个”,即包括周围的空白或分隔符 。

    一些常用的文本对象包括:

    • w:单词 (word) 。
    • p:段落 (paragraph) 。
    • ():括号内部 。
    • {}:花括号内部 。
    • []:方括号内部 。
    • ":引号内部 。
  3. 计数(Count):这个是可选的,表示重复操作的次数 。

将这三个部分结合起来,你就可以通过组合来创建任何你想要的复杂指令。

例如,以 diw 为例:

  • d:操作符,表示“删除”。
  • i:文本对象的前缀,表示“内部”。
  • w:文本对象,表示“单词”。

所以,diw 的意思就是“删除光标所在的内部单词” 。它会删除单词本身,但会保留单词前后的空格 。

如果将 i 换成 a,指令就变成了 daw

  • d:删除。
  • a:整个。
  • w:单词。

daw 的意思就是“删除光标所在的整个单词”,包括它后面的一个空格 。

再比如,cip

  • c:操作符,表示“修改”。
  • i:文本对象的前缀,表示“内部”。
  • p:文本对象,表示“段落”。

cip 的意思是“修改光标所在的内部段落” 。它会删除整个段落的内容,并让你进入插入模式,但会保留段落之间的空行 。

通过这种方式,你可以将 Vim 的指令看作一种简单的“语法”,而不是毫无关联的按键组合。一旦你掌握了这种组合逻辑,就可以轻松地推导出和记忆各种指令,从而大大提高编辑效率。

类别 命令 描述 示例
模式切换 i insert,在光标前进入插入模式 i 用于开始输入文本
a append,在光标后进入插入模式
I 在当前行第一个非空字符处进入插入模式
A 在当前行末尾进入插入模式
o open,在下方新行进入插入模式
O 在上方新行进入插入模式
v visual,进入字符可视模式 vd 删除选中内容
V Visual Line,进入行可视模式 Vy 复制选中行
<C-V> Ctrl + V,进入块可视模式 <C-V>jj 选中一个矩形文本块
<ESC> Escape,返回普通模式 <ESC> 是最常用的退出键
导航 h, j, k, l 左, 下, 上, 右 10j 向下移动 10 行
w, b, e 按单词前移/后移/移到词尾 3w 向前移动 3 个单词
0, ^, ` 类别 命令
-------------- ---------------------- ------------------------------------------------ ---------------------------------------
模式切换 i insert,在光标前进入插入模式 i 用于开始输入文本
a append,在光标后进入插入模式
I 在当前行第一个非空字符处进入插入模式
A 在当前行末尾进入插入模式
o open,在下方新行进入插入模式
O 在上方新行进入插入模式
v visual,进入字符可视模式 vd 删除选中内容
V Visual Line,进入行可视模式 Vy 复制选中行
<C-V> Ctrl + V,进入块可视模式 <C-V>jj 选中一个矩形文本块
<ESC> Escape,返回普通模式 <ESC> 是最常用的退出键
导航 h, j, k, l 左, 下, 上, 右 10j 向下移动 10 行
w, b, e 按单词前移/后移/移到词尾 3w 向前移动 3 个单词
      \| 移动到行首/第一个非空字符/行尾                   \| `$` 将光标移到行尾                      |

| | gg, G | 移动到文件首行/尾行 | 20G 跳转到文件的第 20 行 |
| | H, M, L | 移动到屏幕的顶部/中间/底部 | |
| | f{char}, t{char} | 移动到下一个 {char} 字符 / 的前一个位置 | fa 移动到下一个 'a' 字符 |
| | ;, , | 正向 / 反向重复上一次的 ft 操作 | |
| | } | 向下移动一个段落(到下一个空行) | |
| | { | 向上移动一个段落(到上一个空行) | |
| 编辑 | d, c, y | delete (删除), change (修改), yank (复制) 操作符 | dw 删除一个单词, ci" 修改引号内文本 |
| | p, P | 在光标后 / 前粘贴 | p 在光标后粘贴 |
| | x | 删除光标下的字符 | xp 交换两个字母 |
| | r | replace,替换光标下的单个字符 | ra 将光标下的字符替换为 'a' |
| | R | 进入替换模式,连续替换字符直到按 <ESC> | R 开始连续替换 |
| | s | 替换光标下的字符并进入插入模式 | |
| | . | 重复上一次的修改命令 | |
| 行操作 | dd, yy, cc | 删除 / 复制 / 修改当前行 | 2dd 删除 2 行 |
| | u | undo,撤销 | u 撤销上次修改 |
| | <C-R> | Ctrl + Redo,重做 | |
| | >>, << | 增加 / 减少当前行缩进 | 3>> 增加 3 行的缩进 |
| 搜索与替换 | /pattern, ?pattern | 向下 / 向上搜索 pattern | /hello 搜索 "hello" |
| | n, N | 跳转到下一个 / 上一个搜索结果 | |
| | :s/old/new/ | 替换当前行第一个 oldnew | |
| | :s/old/new/g | 替换当前行所有 oldnew | |
| | :%s/old/new/g | 在整个文件中全局替换所有 oldnew | :%s/foo/bar/g |
| | :'<,'>s/old/new/g | 在可视模式选中的行内替换所有 oldnew | |
| | :%s/old/new/gc | 全局替换,但每次替换前会请求确认 | |
| 屏幕管理 | zz | 将当前行置于屏幕中央 | |
| | zt | 将当前行置于屏幕顶部 (top) | |
| | zb | 将当前行置于屏幕底部 (bottom) | |
| | <C-E> | 向下滚动一行 (光标逻辑位置不变) | |
| | <C-Y> | 向上滚动一行 (光标逻辑位置不变) | |
| 窗口管理 | :sp, :vsp | 水平 / 垂直分割窗口 | |
| | <C-w>w | 在窗口之间循环切换 | |
| | <C-w>h/j/k/l | 切换到左/下/上/右侧的窗口 | |
| | :q | 关闭当前窗口 | |
| 命令行模式 | :w | write,保存文件 | :wq 保存并退出 |
| | :q! | quit,强制退出(不保存) | :qall 退出所有文件 |
| | :e {file} | edit,编辑一个文件 | :e newfile.txt |

显示变量:gh

折叠代码:za

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运动控制卡排名

运动控制卡排名Posted on 2025-09-28 19:02 坚持——梦想 阅读(0) 评论(0) 收藏 举报国内: 1.固高 2.唯精 3.柏楚 4.雷赛 5.研华 6.乐创 7.正运动国外 1.PMAC(欧姆龙收购) 2.翠欧 (英国) 3.Aerotech (美国)…

c#造个轮子-取色器TakeColor(附源码)

缘由看过上篇文章《OpenCvSharp基于颜色反差规避FBA面单贴标(2)》的都应该有印象这么一行代码:// 面单颜色列表(十六进制格式) privatestaticreadonly List<string> LabelColors = new List<string>…

实用指南:计算机视觉:人脸关键点定位与轮廓绘制

实用指南:计算机视觉:人脸关键点定位与轮廓绘制pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

网站定制开发是什么外贸营销网站建设公司

萌新的学习笔记&#xff0c;写错了恳请斧正。 目录 链表的定义 链表的分类 方向&#xff08;单向还是双向&#xff09; 头节点&#xff08;哨兵节点&#xff09;的有无 循环或不循环 8种分类 不带头单向不循环链表的实现 带头单向循环链表的实现 链表与顺序表的差异 链…

mysql 对json 数据进行查询

mysql 对json 数据进行查询数据库字段为 `car_info_list` json DEFAULT NULL COMMENT 车辆信息, SELECT id, event_car_plate->>$[0] as car_plate, car_info_list, car_info_list->$[0].carPlate as i…

快捷的赣州网站建设网站维护公司广州

暴露数据引入模块语法 规范基本语法分别暴露 (按需暴露)统一暴露 export {暴露内容1&#xff0c;暴露内容2}默认暴露 (适合只暴露一个数据) 只能暴露一次同时使用在app.js中引入 规范 每个文件都是一个模块要借助Babel和Browserify依次编译代码&#xff0c;才能在浏览器端运行…

常州微信网站建设流程商城网站内容模块有哪些

信息系统项目管理师教程 第四版【第6章-项目管理概论-思维导图】 课本里章节里所有蓝色字体的思维导图

ubuntu系统挂载硬盘

ubuntu系统挂载硬盘查看硬盘挂载信息 sudo lsblk记下目标分区的UUID,如:UUID=12345678-1234-1234-1234-123456789abcext4文件系统 UUID=12345678-1234-1234-1234-123456789abc /mnt/mydrive ext4 defaults,uid=1000,…

代码之美-代码整洁之道

一、开篇引言 京东零售从9月开始对技术风险系统性地跟踪汇报,以故障数、监控发现率、故障发现时间、故障恢复时间等多个指标进行统计和跟踪汇报,相比于之前线上小故障杖责二十、大故障发配宁古塔,有了向惩前毖后、治…

Chrome for Testing availability

https://googlechromelabs.github.io/chrome-for-testing/#stable

做网站服务器配置怎么选wordpress 新建

目录 单选题1.下列说法正确的是&#xff08;B&#xff09;2.在信息论中&#xff0c;若用对数底2为&#xff0c;则信息量的单位为&#xff08;C&#xff09;3.率失真函数的下限为&#xff08;A&#xff09;4.给定xi条件下随机事件yj所包含的不确定度和条件自信息量p(yj /xi)。&a…

RAG实践:一文掌握大模型RAG过程

一、RAG是什么? RAG(Retrieval-Augmented Generation,检索增强生成), 一种AI框架,将传统的信息检索系统(例如数据库)的优势与生成式大语言模型(LLM)的功能结合在一起。不再依赖LLM训练时的固有知识,而是在回答问…

递归算法实践--到仓合单助力京东物流提效增收

一、背景京东物流到仓业务「对商家」为了减少商家按照京东采购单分货备货过程,对齐行业直接按照流向交接,提升商家满意度;「对京东」揽收操作APP提效;到仓合单功能应运而生;二、问题一次批量采购单(一次50或者10…

开发手机网站用什么语言做电商设计有什么好的网站推荐

目录 k8s是什么 k8s不是什么 云原生 微服务 整体式架构与微服务架构 微服务的特性 微服务的优势 k8s是什么 Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快…

网站空间150m分级会员管理系统网站开发

说来惭愧&#xff0c;从事互联网开发好些年了&#xff0c;有些概念一直没有彻底搞清楚。其中之一就是,ttp client配置连接池的时候,maxConnectionsPerHost,和maxTotalConnections,在网上搜了一圈&#xff0c;发现很多都讲的含含糊糊的。 作者&#xff1a;资深开发讲技术 背景 …

计算机视觉(opencv)练习——抠图(图像裁剪与轮廓提取) - 详解

计算机视觉(opencv)练习——抠图(图像裁剪与轮廓提取) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

完整教程:上下文工程驱动智能体向 透明化推理日志

完整教程:上下文工程驱动智能体向 透明化推理日志pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

基于Mysql+SpringBoot+vue框架-在线宠物用品交易网站的设计与实现 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:@scqilin/phone-ui 手机外观组件库

深入解析:@scqilin/phone-ui 手机外观组件库pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

北京网站设计权威乐云践新站建设 app开发网站

原 Linux搭建SVN 服务器 发表于1年前(2014-08-05 17:55) 阅读&#xff08;12257&#xff09; | 评论&#xff08;3&#xff09; 31人收藏此文章, 我要收藏赞3摘要 Linux搭建SVN 服务器目录[-] Linux搭建SVN 服务器1 安装SVN2 使用客户端连接2.1 使用…