Vim:强大的文本编辑器

文章目录

  • Vim:强大的文本编辑器
    • Vim的模式
    • 命令模式常用操作
      • 光标移动
      • 文本编辑
      • 查找和替换
    • 底行命令模式常用操作
    • Vim的多窗口操作
    • 批量注释与去注释
    • Vim插件推荐:vimforcpp
    • 结论

Vim:强大的文本编辑器

Vim,代表 Vi IMproved,是一款高效的文本编辑器,广泛用于编程和各种文本编辑任务。与其他IDE(集成开发环境)如Visual Studio不同,Vim本质上是一个编辑器,它专注于提供强大的文本编辑功能,不直接支持编译或调试,但可以通过插件扩展其功能。

Vim的模式

Vim的使用体验与许多现代文本编辑器不同,因为它使用模式来区分不同的操作:

  • 命令模式:Vim启动后默认进入的模式,可以使用快捷键执行复制、粘贴、移动等操作。
  • 插入模式:通过按i进入,可以进行文本输入。按Esc键退出回到命令模式。
  • 底行命令模式:通过按:进入,可以执行保存、退出、搜索等命令。

命令模式常用操作

光标移动

  • h, j, k, l:左、下、上、右移动光标。
  • shift+$:移动到行尾。
  • shift+^:移动到行首。
  • gg:移动到文件首行。
  • shift+G:移动到文件末行。
  • n+shift+G:移动到文件的第n行。

文本编辑

  • yy:复制当前行。
  • dd:删除当前行(剪切功能)。
  • p:粘贴之前复制或剪切的内容。
  • u:撤销上一步操作。
  • ctrl+r:重做上一个撤销的操作。

查找和替换

  • shift+~:切换当前字符大小写。
  • /keyword:向下查找关键词。
  • ?keyword:向上查找关键词。
  • n:移动到下一个查找结果。

底行命令模式常用操作

  • :w:保存文件。
  • :q:退出Vim,如果有未保存的更改,会失败。
  • :wq或shift+zz:保存并退出。
  • :set nu:显示行号。
  • :set nonu:隐藏行号。

Vim的多窗口操作

  • :vs filename:垂直分割窗口并打开另一个文件。
  • ctrl+w w:在打开的多个窗口间切换。

批量注释与去注释

  • 注释:

    • ctrl+v:进入列选择模式。
    • 使用hjkl选择区域。
    • shift+i,然后输入//,按Esc应用到所有选中行。
  • 去注释:

    • ctrl+v:进入列选择模式。
    • 使用hjkl选择区域。
    • x:删除选中的字符。

Vim插件推荐:vimforcpp

对于C++开发者,可以使用VimForCpp: 快速将vim打造成c++ IDE (gitee.com)插件来增强Vim的功能。这个插件提供了代码高亮、代码折叠、错误检查等特性,使得Vim在处理C++项目时更加高效。

结论

Vim是一个功能强大但需要一定学习曲线的文本编辑器。熟练掌握它的快捷键和模式可以极大提高文本编辑的效率。虽然它不是一个集成开发环境,但通过插件可以接近IDE的功能,特别是对于喜欢键盘操作的用户,Vim提供了无与伦比的快速操作体验。

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

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

相关文章

如何确保软件通过SmartScreen验证,消除用户下载时的警告提示?

在当前的网络时代,各种软件应用程序深深渗透到人们的日常生活和工作中,许多企业选择自行开发应用程序以推进其业务发展。但在发布应用程序后,软件所有者经常会遇到一个挑战,即用户在下载时可能会遇到微软SmartScreen提示“此应用程…

探索HTTP协议的世界 | 从基础到高级应用,原理与实践相结合(请求篇)

从基础到高级应用,原理与实践相结合 什么是Http历代Http协议主要特点格式和URL协议内容请求行格式如下请求方法简单案例 消息报头报头域的格式HTTP消息报头类型普通报头优化方向报头(缓存)Cache-Control的选项其他相关的缓存报头 请求报头Acc…

Unity TMP Inputfield 输入框 框选 富文本 获取真实定位

一、带富文本标签的框选是什么 UGUI的InputField提供了selectionAnchorPosition和selectionFocusPosition,开始选择时的光标下标和当前光标下标 对于未添加富文本标签时,直接通过以上两个值,判断一下框选方向(前向后/后向前&…

C#Winform使用扩展方法自定义富文本框(RichTextBox)字体颜色

实现效果 调用方法 rtxtLog.AppendTextColorful(richTextBox1,DateTime.Now.ToString(), Color.Red); 完整代码如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using Sys…

【U8+】用友固定资产卡片拆分提示:未设置对象变量或With block变量。

【问题描述】 用友U8软件中, 操作固定资产模块,针对资产进行卡片拆分的时候, 提示:未设置对象变量或With block变量。 确定后仍然能打开卡片拆分界面,但是界面显示异常看不到拆分明细信息,并且保存后拆分结…

【Qt-Qt Creator使用技巧】

工具-Qt Creator ■ 使用技巧■ 定义触发片段■ Qt Creator 行编辑■ 代码注释■ 代码补全■ 快速给函数添加定义■ 创建书签■ 同步列输入■ 局部替换■ 源代码阅读■ 源码调试■ 使用技巧 ■ 定义触发片段 ■ Qt Creator 行编辑 shift + alt + up / down来获得多个游标。 …

导入芯片原厂SDK Mirror源码到gerrit

下载镜像代码 repo init --mirror --repo-url ssh://xx/repo.git -u ssh://xx/manifests.git -m manifest.xml repo sync 创建AOSP project 对All Project权限修改 创建repo 在刚才下载的codebase根目录执行如下命令: repo forall -c echo $REPO_PROJECT; ssh -p 29…

DOTS Instancing合批:如何针对单个渲染实体修改材质参数

最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去的动画时间。但是在做大…

CSS导读 (元素显示模式 下)

(大家好,今天我们将继续来学习CSS的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 3.6 元素显示模式转换 3.7 (一个小技巧)单行文字垂直居中的代码 3.8 单行文字垂直居中的原理 3.9 小案例…

leaflet知识点:地图窗格panes的应用

一,需求背景 地图中存在无人机,停机坪,航线三个图层,需要实现无人机图层显示在最上面,停机坪图层显示在最下面,航线图层显示在中间。 二,遇到问题 由下图可知航线图层所在overlayPane窗格的z-…

工控 modbusTCP 报文

Tx 发送报文:00 C9 00 00 00 06 01 03 00 00 00 02 Rx 接收报文:00 C9 00 00 00 07 01 03 04 01 4D 00 01 Tx 发送报文:00 C9 00 00 00 06 01 03 00 00 00 02 00 C9 事务处理标识符 2字节 00 00 协议标识符 2字节 固定 00 00 00 06 长度 2字节 表示之后的字节总数 (…

大数据之ClickHouse

大数据之ClickHouse 简介 ClickHouse是一种列式数据库管理系统,专门用于高性能数据分析和数据仓库应用。它是一个开源的数据库系统,最初由俄罗斯搜索引擎公司Yandex开发,用于满足大规模数据分析和报告的需求。 特点 开源的列式存储数据库…

elementUI 下拉框加提示文案

效果如下&#xff1a; 展示文案在最下面&#xff0c;跟选项有个分割线 <el-select v-model"value" placeholder"请选择" clearable popper-class"addNotice" class"addNoticeS" visible-change"(v) >selectNotice(v,展示…

Testng测试框架(7)--测试运行

忽略测试 TestNG可以让你忽略类、特殊包、包及其子中的所有Test方法。 当在测试方法级别使用Ignore 注解&#xff0c;在功能上与Test(enabledfalse).一样。 以下例子将忽略类中所有tests。 import org.testng.annotations.Ignore; import org.testng.annotations.Test; Ign…

秦朗丢寒假作业系摆拍 博主被处罚

大家好&#xff01; 我是老洪&#xff0c;刚看到秦朗丢寒假作业系摆拍博主被处罚。 据央视财经媒体报道&#xff0c;近期&#xff0c;“秦朗丢寒假作业”事件被证实为自导自编的摆拍视频。 图片来源央视财经公众号截图 该博主与同事薛某&#xff0c;为了吸引更多的粉丝和流量&a…

基于SSM的旅游管理系统论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对旅游信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&am…

解决cmd输入py文件路径不能执行,使用anaconda prompt 能执行

究其原因&#xff0c;是因为没有配置环境&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 第一步&#xff1a;配置环境变量 操作步骤如下&#xff1a; 1、右击此电脑 ---->属性 2、高级系统设置 3、点击环境变量 4、选择 …

代码随想录--数组--长度最小的子数组

题目 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;s 7, nums [2,3,1,2,4,3] 输出&#…

[BT]BUUCTF刷题第16天(4.12)

第16天 Web [MRCTF2020]Ezpop 打开网站就是一段泄露的源代码&#xff1a; <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack…

文件名乱码危机:数据恢复全攻略

在数字化时代的浪潮中&#xff0c;电脑文件成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;有时我们会突然遭遇一个令人头疼的问题&#xff1a;原本清晰易读的文件名突然变成了乱码。这些乱码文件名不仅让我们无法准确识别文件内容&#xff0c;更可能意味着数据丢…