【Neovim 原生力】10 个你大概率没用过的内置绝技,插件先靠边站!

codigger
• 阅读 4

前言 “我又装了个插件”——如果你把这句话挂在嘴边,请先停一停。Neovim 0.9+ 的出厂配置里,其实藏着一批“零依赖、零配置、零成本”的高效利器。今天这 10 招,全部即可复现,学会后至少能卸载 3 个插件,减少 20% 的按键量。建议收藏+反复练习,直到肌肉记忆。 Neovim的10个内置功能,这些功能在默认配置下即可使用,无需安装任何插件。这些功能可以帮助用户更高效地使用Neovim进行文本编辑。 10个内置功能详细说明

  1. Shell Filter 功能描述:通过外部命令处理文本,可以使用任何Unix工具作为文本处理器。 示例命令: i. :.!date:用日期输出替换当前行。 ii. !ip sort:对段落进行排序。 iii. !ap jq .:格式化段落中的JSON。 iv. :%!column -t:对整个文件进行对齐。

  2. Visual Block Increment(可视块增量) 功能描述:在可视块中创建递增序列。选择一列零,按下g Ctrl-a,即可生成即时编号列表。

  3. Global Command(全局命令) 功能描述:在所有匹配的行上运行Ex命令,进行批量操作。 示例命令: i. :g/TODO/d:删除所有包含“TODO”的行。 ii. :g/^$/d:删除所有空行。 iii. :g/error/t$:将包含“error”的行复制到文件末尾。 iv. :g/func/norm A;:在所有函数末尾添加分号。

  4. Command-line Registers(命令行寄存器) 功能描述:在:或/提示符中插入寄存器内容。 快捷键及功能: i. Ctrl-r Ctrl-w:插入光标下的单词。 ii. Ctrl-r ":插入上次剪切的内容。 iii. Ctrl-r /:插入上次搜索模式。 iv. Ctrl-r =:插入表达式结果。

  5. Normal on Selection(在选择上运行正常模式命令) 功能描述:在每行选中的文本上运行正常模式命令,实现类似多光标的操作。 示例命令: i. :'<,'>norm A,:在每行末尾添加逗号。 ii. :'<,'>norm I#:在每行开头添加#。 iii. :'<,'>norm @q:在每行上运行宏。

  6. The g Commands(g命令) 功能描述:提供一系列以g开头的快捷命令。 命令及功能: i. gi:跳转到最后一次插入位置并进入插入模式。 ii. g;:跳转到上一次更改的位置。 iii. g,:跳转到下一次更改的位置。 iv. gv:重新选择上次的可视选择。 v.

  7. Auto-Marks(自动标记) 功能描述:Vim会自动跟踪一些位置。 标记及功能: i. :跳转到上一个位置(可以来回切换)。复制 ii. ``.`:跳转到最后一次更改的位置。 iii. ":跳转到文件上次关闭时的位置。 iv. [/]:跳转到上次剪切或更改的开始/结束位置。

  8. Command History Window(命令历史窗口) 功能描述:在缓冲区中显示可编辑的命令历史。q:打开命令历史窗口,q/打开搜索历史窗口。可以在其中编辑任何行,按下Enter执行。

  9. Live Substitution Preview(实时替换预览) 功能描述:在执行替换之前查看替换结果。将以下内容添加到配置文件中:vim.opt.inccommand = "split"。

  10. Copy/Move Lines(复制/移动行) 功能描述:无需接触寄存器即可复制或移动行。 命令及功能: i. :t.:将当前行复制到下方。 ii. :t0:将当前行复制到文件顶部。 iii. :m+2:将当前行移动到下方两行。 iv. :'<,'>t.:将选中的内容复制到下方。 这些功能的文本版本,链接为:https://github.com/Piotr1215/youtube/blob/main/10-nvim-tricks/presentation.md 配置文件可以在以下链接中找到: https://github.com/Piotr1215/dotfiles Neovim 的“原生力”远远被低估。把内置招式练到条件反射,再决定是否上插件,你会发现—— “插件是锦上添花,而不是救命稻草。” 如果本文对你有帮助,记得点赞+评论+关注,Codigger是一款基于Vim开发的项目,欢迎喜欢Vimming的伙伴们一起来玩。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
Java大佬精心为小白整理的十个学习心德
零基础学习java能学会吗?零基础如何学习java?有什么方法吗?今天由我来分享下关于零基础学习java的方法。Java发展前景据权威统计,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%,Java软件人才的缺口巨大,对应薪水也是随之水涨船高。越来越多的大学生看好
Stella981 Stella981
4年前
Jenkins 配置邮件通知步骤
Jenkins配置邮件通知前言可以在Jenkins中配置邮件通知,比如在构建失败时发送邮件通知项目组来及时修复问题。Jenkins邮件通知功能的插件主要包括:MailerPlugin(默认的发送邮件插件)EmailExtensionPlugin(功能更强大的发送邮件插件)建议同时安装这两个插件。下面来介绍如何在
Stella981 Stella981
4年前
Jenkins配置Findbugs做源代码安全扫描
此内容目标阅读用户:运维人员配置步骤如下:1.Jenkins安装Findbugs插件Jenkins系统管理 →管理插件 →(可选插件)找到Findbugs及其依赖插件全部安装成功,Jenkins重启,即可。!(https://wiki.g2link.cn/download/attachments/1281446
Wesley13 Wesley13
4年前
JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)
验证数字:^\09\\$验证n位的数字:^\\d{n}$验证至少n位数字:^\\d{n,}$验证mn位的数字:^\\d{m,n}$验证零和非零开头的数字:^(0|\19\\09\\)$验证有两位小数的正实数:^\09\(.\09\{2})?$验证有13位小数的正实数:^\09\
Wesley13 Wesley13
4年前
JS正则表达式验证
验证数字的正则表达式集 验证数字:^\09\\$ 验证n位的数字:^\\d{n}$ 验证至少n位数字:^\\d{n,}$ 验证mn位的数字:^\\d{m,n}$ 验证零和非零开头的数字:^(0|\19\\09\\)$ 验证有两位小数的正实数:^\09\(.\09\{2})?$ 验
Stella981 Stella981
4年前
LeetCode:283.移动零——简单
题目:283.移动零:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入:0,1,0,3,12输出:1,3,12,0,0说明:1.必须在原数组上操作,不能拷贝额外的数组。2.尽量减少操作
程序员小五 程序员小五
1年前
融云IM干货丨如何测试插件在UNI-app中的实际效果?
要测试插件在UNIapp中的实际效果,可以遵循以下步骤:1.安装和配置测试环境:确保你的环境中安装了HBuilderX,并且版本至少为3.7.3。如果是uniapp普通项目,需要通过插件hbuilderxforuniapptest来安装测试环境。对于uni
直播预告 | 大模型时代 “应用变了”:看大模型如何跑进零售电商应用
走进零售电商,大模型能做什么?今年11.11,应用大模型带来成效显著今天下午2:00,京东云视频号准时直播看京东零售如何破题新解法,大小模型协同大模型将走向多模态,走向具身智能
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
幂简集成 幂简集成
1年前
零成本开发!试试这6个免费的API接口平台
为了帮助程序员快速找到所需的API,幂简集成整理了6个免费的API接口平台。这些平台不仅丰富了API选择,还为开发者提供了便捷的接口资源,助力他们高效地进行开发和测试。