Vim命令大全

文章目录

    • 简述:
      • 1. **命令模式(Command Mode)**
      • 2. **插入模式(Insert Mode)**
      • 3. **可视模式(Visual Mode)**
      • 4. **末行模式(Ex Mode)**
    • 详细使用案例:
      • 1. **文件操作类**
      • 2. **移动光标类**
      • 3. **文本插入与删除类**
      • 4. **复制与粘贴类**
      • 5. **搜索替换类**
      • 6. **可视选择与操作类**
      • 7. **窗口操作类**
      • 8. **撤销与重做类**
      • 9. **跳转到特定行号**
      • 10. **显示帮助信息**
      • 11. **文本替换与查找类**
      • 12. **折叠代码块**
      • 13. **标记和跳转**
      • 14. **列选择模式**
      • 15. **宏录制与回放**
      • 16. **多文件编辑**
      • 17. **快速定位**
      • 18. **视觉差异比较**

简述:

在Vim中,有三种主要的操作模式:命令模式(Command Mode)、插入模式(Insert Mode)和可视模式(Visual Mode)。以及一个特殊的末行模式(Ex Mode)。

1. 命令模式(Command Mode)

  • Vim启动时默认进入命令模式。如果你正在其他模式下操作,按下Esc键即可返回命令模式。

2. 插入模式(Insert Mode)

  • 若要从命令模式进入插入模式,可以使用以下命令:
    • i 在光标前开始插入
    • a 在光标后开始插入
    • I 在当前行的行首开始插入
    • A 在当前行的行尾开始插入
    • o 在当前行下方新开一行并插入
    • O 在当前行上方新开一行并插入

3. 可视模式(Visual Mode)

  • 从命令模式进入可视模式,可使用:
    • v 进入字符选择可视模式
    • V 进入行选择可视模式
    • <C-v><Ctrl+v> 进入块选择可视模式

4. 末行模式(Ex Mode)

  • 末行模式主要用于执行文件保存、退出、设置选项等操作。从命令模式进入末行模式,按:(冒号)即可。在末行模式下输入命令后回车执行,执行完毕后会回到命令模式。

例如,要执行:wq保存并退出文件,首先在命令模式下按:进入末行模式,然后输入wq并回车。

详细使用案例:

在Vim编辑器中,命令非常多且丰富,这里按功能分类列举10个基础且常用的命令及其实例:

1. 文件操作类

  • 打开文件

    vim filename.txt
    

    打开名为filename.txt的文件。

  • 保存文件

    :w
    

    保存当前正在编辑的文件。

  • 退出编辑器

    :q
    

    如果没有未保存的更改,退出Vim。
    若要强制退出(不保存更改):

    :q!
    

    若有更改并希望先保存后退出:

    :wq
    

2. 移动光标类

  • 向下移动一行

    j
    
  • 向上移动一行

    k
    
  • 向右移动一个字符

    l
    
  • 向左移动一个字符

    h
    
  • 移动到行首

    0 或 ^
    
  • 移动到行尾

    $
    

3. 文本插入与删除类

  • 插入模式下输入文本
    i 进入插入模式,然后可以像普通文本编辑器那样输入文本。

  • 在当前光标位置后插入文本

    iHello, world
    <ESC>
    

    输入"Hello, world"后按 <ESC> 返回正常模式。

  • 删除当前光标下的字符

    x
    
  • 删除从当前光标到行尾的所有字符

    d$
    

4. 复制与粘贴类

  • 复制一行

    yy
    
  • 粘贴到光标下方

    p
    

5. 搜索替换类

  • 向前搜索指定字符串

    /search_text
    
  • 全局替换

    :%s/old_text/new_text/g
    

6. 可视选择与操作类

  • 进入可视模式,选择一行

    V
    
  • 选中多行
    移动光标至开始行,按下 Shift + v 进入可视行块模式,移动光标到结束行。

  • 对选中的文本进行操作
    例如,选中文本后执行大写转换:

    gU
    

7. 窗口操作类

  • 分割窗口

    :sp filename.txt
    

    在垂直方向上分割窗口并打开新文件。

  • 切换窗口

    <C-w>h 或 <C-w>j 或 <C-w>k 或 <C-w>l
    

    分别表示向左、下、上、右切换窗口。

8. 撤销与重做类

  • 撤销操作

    u
    
  • 重做上次撤销的操作

    Ctrl + r

9. 跳转到特定行号

  • 跳转到第n行
    :n
    

10. 显示帮助信息

  • 打开内置帮助文档
    :help
    
    或者快速查找特定命令的帮助:
    :help command_name
    

11. 文本替换与查找类

  • 在当前行内查找并替换

    :s/old_text/new_text
    

    若要在整个文件中替换,使用全局标志 g:

    :%s/old_text/new_text/g
    
  • 递归搜索目录下的所有文件(需安装插件如grep.vim):

    :Grepper -type f -rg 'search_text'
    

12. 折叠代码块

  • 折叠当前层级的所有折叠区域

    za
    
  • 打开当前层级的所有折叠区域

    zA
    
  • 逐级向下展开折叠

    zr
    
  • 逐级向上折叠

    zm
    

13. 标记和跳转

  • 设置标记

    ma
    

    在当前光标位置设置名为’a’的标记。

  • 跳转到标记

    `'a
    

    跳转到标记’a’的位置。

14. 列选择模式

  • 进入列选择模式

    Ctrl + v
    
  • 进行列操作
    进入列选择模式后,移动光标选择多列,然后可以执行删除、复制、粘贴等操作。例如删除选中的列内容:

    d
    

15. 宏录制与回放

  • 开始录制宏

    qa
    

    开始记录到寄存器’a’的宏。

  • 停止录制并结束宏
    按下需要的操作键序列后,按 q 停止录制。

  • 播放宏

    @a
    

    回放存储在寄存器’a’的宏。

16. 多文件编辑

  • 打开多个文件

    vim file1.txt file2.txt
    
  • 在不同的缓冲区间切换

    :bn 或 :bp
    

    分别表示下一个文件缓冲区或上一个文件缓冲区。

17. 快速定位

  • 跳转到特定字符

    f<char>
    

    向前查找并跳转到指定字符。

  • 跳转到匹配括号

    %
    

    如果光标位于左括号,将跳转到对应的右括号;反之亦然。

18. 视觉差异比较

  • 通过vimdiff比较两个文件
    vimdiff file1.txt file2.txt
    

以上是Vim中更多的命令及其示例,实际上Vim的功能非常强大,提供了丰富的命令集和自定义扩展能力。建议深入阅读Vim官方文档以了解更全面的信息,并通过实践来熟练掌握这些功能。

python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)

50个开发必备的Python经典脚本(11-20)

50个开发必备的Python经典脚本(21-30)

50个开发必备的Python经典脚本(31-40)

50个开发必备的Python经典脚本(41-50)
————————————————

​最后我们放松一下眼睛
在这里插入图片描述

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

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

相关文章

RHCE9学习指南 第21章 用bash写脚本

grep的用法是&#xff1a; grep 关键字 file 意思是从file中过滤出含有关键字的行。 例如&#xff0c;grep root /var/log/messages&#xff0c;意思是从/var/log/messages中过滤出含有root的行。这里很明确的是过滤含有“root”的行。 如果我要是想在/var/log/messages中过滤…

绝地求生:周三不停机维护: 修复BUG,“红面具”天使与恶魔套装上线!

嗨&#xff0c;我是闲游盒~ 本周三没有停机维护&#xff0c;10点退出游戏重新获取一下热更新即可直接进入游戏游玩啦~ *本周不停机维护修复几个问题 * 维护包括以下修复: 修复了与血猎人套装相关的问题修复了烟雾弹的烟雾高度比以前更高的问题修复了在某些游戏模式下&#x…

CSS Day10

10.1 2D位移 属性名&#xff1a;transform 属性值&#xff1a;translateX 水平方向的位移 相对于自身位置移动 translateY 垂直方向的位移 相对于自身位置移动 transform&#xff1a;translate(x,y); 位移和定位搭配使用&#xff1a; position:absolute; top:50%; left:50%; tr…

100天精通鸿蒙从入门到跳槽——第4天:TypeScript 知识储备:变量声明

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

计算机网络-计算机网络的概念 功能 发展阶段 组成 分类

文章目录 计算机网络的概念 功能 发展阶段总览计算机网络的概念计算机网络的功能计算机网络的发展计算机网络的发展-第一阶段计算机网络的发展-第二阶段-第三阶段计算机网络的发展-第三阶段-多层次ISP结构 小结 计算机网络的组成与分类计算机网络的组成计算机网络的分类小结 计…

橘子学Mybatis07之Mybatis关于缓存的设计

很逆天的一件事是&#xff0c;我上一次发mybatis是在2022年10月15号&#xff0c;然后直到今天才开始总结下一篇Mybatis的东西。一年里面忙成那啥了&#xff0c;而且重心都投入在了Elasticsearch的学习上面&#xff0c;基本一年下来都在搞ES&#xff0c;并且考下了ECE认证&#…

记录一下小程序开发遇到的问题。

在开发实名认证的时候&#xff0c;从我的合同页面或则任务详情页面&#xff0c;领取我的任务的地方&#xff0c;没实名的情况&#xff0c;调用第三方平台的接口实名到认证结果页面。有时候进入了认证结果页面&#xff0c;有时候没有进入认证结果页面。这个主要是时间的先后问题…

springboot开启HTTPS

目录 一、前言 HTTP和HTTPS的含义以及区别 二、域名映射 三、添加SSL证书 四、Http转Https 五、内网穿透 一、前言 我们平常写完一个接口&#xff0c;其访问一般都是使用http协议 我们最终想要的结果是使用安全的HTTPS来访问 在我们开始实现之前&#xff0c;我们要先搞明…

GEE:随机森林回归器投票方法的优化与修改

作者:CSDN @ _养乐多_ 在随机森林中,随机生成的每棵决策树都对输入数据进行分类或回归,并产生一个输出。对于分类问题,这个输出通常是一个类别标签 ,而对于回归问题,输出通常是一个连续的数值。例如,如果有五棵树的分类输出为 [0.1, 0.2, 0.3, 0.1, 0.1],则平均数是0.…

ELF解析06 - 入口参数与傀儡进程

04 里面的重定位表没讲完&#xff0c;这里继续&#xff0c;我们说过重定位的类型有很多&#xff0c;04 里面基本只介绍了一种&#xff0c;就是 plt 表。重定位不仅仅发生在代码里面&#xff0c;还会发生在数据里面&#xff0c;比如so程序里面对一些全局变量的引用&#xff0c;它…

OpenCV——双边滤波

目录 一、双边滤波二、C代码三、python代码四、结果展示 OpenCV——双边滤波由CSDN点云侠原创。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫与GPT。 一、双边滤波 双边滤波是一种综合考虑滤波器内图像空域信息和滤波器内图像像素灰度值相似性的…

通过开发一个桶装水上门送水订水小程序,可以解决哪些问题?

提高订水效率&#xff1a;用户可以直接在小程序上完成订水流程&#xff0c;无需拨打水站电话或前往水站&#xff0c;节省了用户的时间和精力。 方便管理用户信息&#xff1a;水站可以建立用户管理系统&#xff0c;对用户的订单信息、送水地址等进行管理&#xff0c;方便后续的送…