vim 操作术
文章平均质量分 89
aluluka
这个作者很懒,什么都没留下…
展开
-
vim 从嫌弃到依赖(23)——最后的闲扯
截止到上一篇文章,关于vim的基础操作都已经讨论完了,这篇我主要就是闲扯,瞎聊。就想毕业论文都有一个致谢一样,这篇我们就作为整个系列的致谢吧学习vim到底能给我们带来什么呢?工作中很少有用会用vim来做主力编辑器,现在有各种现代化的编程工具,像JB 全家桶、visual studio 系列。它们从上手难度和集成化程度来说,都做的比较好,离开vim也能编程。而且vim本身也不能给你的简历带来什么亮点,没有公司招人的时候会要求熟练掌握vim、也没有人在简历上写自己熟练使用vim。面试时也没有面试官会问你vim相原创 2022-07-04 18:08:54 · 476 阅读 · 1 评论 -
vim 从嫌弃到依赖(22)——自动补全
这篇文章我们将讨论 vim 自带的自动补全功能。当然,针对自动补全功能有许多好用的插件,但是了解vim自带的功能有助于我们更好的用来插件的补全功能。因为我见过有的配置文件将插件的功能配置的比原有的更难用,而且只用基本的功能不一定有原版的好用。所以这里也介绍一下原始版本用法,算是帮助各位在以后的配置中提供一个标杆。在了解自动补全之前,让我们先简单聊聊 这个命令,它与上一篇文章中介绍的 命令类似,也是对 命令的一个封装。它默认封装的是 命令。我们对 语言执行 也就是在调用 中的 命令。它会将编译原创 2022-07-01 14:22:04 · 18490 阅读 · 4 评论 -
vim 从嫌弃到依赖(21)——跨文件搜索
之前介绍了vim中的搜索模式,使用正则表达式可以很方便的在一个文件中进行搜索。后续也介绍了如何使用 命令在参数列表中进行替换操作。但是到目前为止还没有介绍如何在工程目录中进行搜索,而这个功能是其他编辑器的基本功能。vim 主要运行在 平台,而 平台信奉的哲学是专门的软件做好专门的事,在多个文件中搜索关键字是 这个程序的工作,vim本身并没有单独提供类似 的功能,而是提供了方法直接调用 。本篇我们将要讨论在vim中是如何调用 进行搜索的。并且介绍其他搜索整个工程中代码的方式。提前声明一下,因为vi原创 2022-06-28 17:29:13 · 719 阅读 · 0 评论 -
vim 从嫌弃到依赖(20)——global 命令
在前面的文章中,我们介绍了如何进行查找和替换,而替换是建立在查找基础之上的一个简单的应用,它只是将匹配文本修改为另一个。那么vim中还能针对匹配上的文本做哪些操作呢?在本篇文章中我们来对这个问题进行探讨。我们能够对存在匹配项的行进行其他操作的关键在于 命令。 命令的作用是存在匹配项的行上执行指定的ex命令。命令的格式如下:与大多数ex命令一样,它接收一个作用范围。如果不给范围,则默认作用于整个文件,即它默认范围是 %! 代表取反,是在不存在匹配项的行上执行ex命令pattern 表示匹配模式cm原创 2022-06-24 11:22:36 · 736 阅读 · 0 评论 -
vim 从嫌弃到依赖(19)——替换
之前讨论了关于在vim中使用正则表达式的相关知识能方便的进行搜索,现在在之前的基础之上继续来讨论如何进行替换操作。substitute 允许我们先查找一段文本并用新的文本将匹配上的文本进行替换。它的使用比较复杂,需要提供一个匹配模式和一个替换的字符串。命令格式如下:range 表示范围,与之前介绍的其他 ex 命令中范围的作用一样。pattern 表示一个匹配模式,回忆一下之前说过的,这里的模式跟之前介绍的普通模式、插入模式的含义不同,它代表的是一串用来进行匹配并高亮显示的字符串。string是一串原创 2022-06-22 14:21:34 · 687 阅读 · 0 评论 -
vim 从嫌弃到依赖(18)——查找模式进阶
上一篇文章中,我们初步结识了如何使用查找模式,也能够通过n和 N进行查找。这篇将会介绍搜索中更高级的用法。另外在写上一篇文章的时候我发现介绍查找相关内容的时候不能用动图来演示,主要是因为输入的内容太多了,剪成动图的话太大了,不一定能上传。第二个就是开启了匹配高亮的选项,比起动图来能更直观的看到匹配的结果。所以这篇文章就不采用动图了。默认情况下,在搜索时是大小写敏感的,例如下面的例子中,我们无法匹配到大写的REQUIRE的可以使用 项来取消大小写敏感,例如在 中写上如下配置或者在 的配置文件中写上原创 2022-06-20 11:48:43 · 450 阅读 · 1 评论 -
vim 从嫌弃到依赖(17)——查找模式
最开始介绍vim的时候,提到vim有普通模式、插入模式、可视模式和命令行模式,并且已经对这几个模式做了详细的介绍了。除了这几个模式以外,vim还有一个非常强大的模式——查找模式,为什么最开始没有将其列举出来呢,这是因为我很少看到有教程将它与前面介绍的模式并列作为一个新的模式。但是在日常使用中,我又习惯将它叫做查找模式。我在这里就不深究这些了,请读者自行判断。我们可以在普通模式下输入 进入插入模式。在其后面输入想要查找的字符串,按下 进行查找。此时vim光标会自动跳转到匹配的位置,并将对应位置高亮显示( 这原创 2022-06-13 13:43:32 · 708 阅读 · 0 评论 -
vim 从嫌弃到依赖(16)——宏
终于到了我第二喜欢的vim功能了(当然了,最喜欢的是命令)。我原本计划在介绍完命令之后介绍宏,以便让各位小伙伴们能了解到vim对于重复操作进行的强大的优化。但是由于宏本身跟寄存器息息相关,所以还是忍痛割爱,将它放到寄存器之后。废话不多说让我们开始吧。我们还是以一个例子进入相应的内容。我要将下面这段代码变为这样通过分析它这三行其实做的都是同样的功能,即在每行的行首添加 关键字,然后在每行的行尾添加分号。我们可以利用之前介绍的命令或者针对列的可视模式来处理,只是不管用哪种方法都需要至少两次操作。问题先放原创 2022-06-08 17:37:07 · 413 阅读 · 0 评论 -
vim 从嫌弃到依赖(15)——寄存器
在计算机里面也有寄存器,计算机中的寄存器是看得见,摸得着的实体,寄存器中存储需要经常访问的一些数据。而vim中也有寄存器的概念,vim中的寄存器是一个虚拟的概念,更像是一块专门用来存储数据的内存缓冲区。在使用vim的过程中离不开寄存器,而且我们很早就用到了寄存器,只是没有发现罢了。这篇文章将深入介绍寄存器,这样我们对之前使用的命令将会有更深的认识。在之前介绍过,可以使用来删除一段内容,使用来粘贴,使用来复制, vim中其他的带有删除功能的 像 、、 之类的,vim在删除之前会将被删除内容先放到无名寄存器中,原创 2022-06-02 13:16:52 · 742 阅读 · 0 评论 -
vim 从嫌弃到依赖(14)——快速跳转
之前介绍过众多的motion,根据移动范围来排序的话有 l、e、w、j等等,但是面对那么长的代码文件,仅仅使用这几个简单的motion不知道要移动多少次才能找到我想要的代码,这个速度有时候还不如我用鼠标移动光标。vim作为编辑器之神当然提供了快速移动光标的方式了,这篇文章我们就来了解一下如何使用vim在代码间进行快速跳转。利用标签,快速跳转vim中提供了标签的方式进行跳转,事先可以在对应位置设置标签,后面通过标签访问该标签所在位置可以使用m{a-z} 来在任意位置设置标记,而后使用`{a-z}来回到对原创 2022-05-31 11:31:49 · 3379 阅读 · 2 评论 -
vim 从嫌弃到依赖(13)——motion 进阶
在最开始的时候我们介绍了一些vim中的motion 包括如何在字符间、单词间、行间以及多行间移动。·但是motion中的内容可远不止我们介绍的这些,平时用到的也远不止之间介绍的那些。之所以没有一次介绍完,主要是不想搞那么复杂,一次性全都介绍完那么篇幅会显得很长,而且显的很复杂。vim入门最重要的一步就是用起来,如果初学者因为看到入门类的文章出现一堆不知道什么意思的操作命令,肯定会被吓跑的,也就无法体会到vim的魅力了。像这种进阶类的内容我想将它们放到后面,等各位小伙伴能熟练使用vim完成编辑任务之后再来考原创 2022-05-25 10:38:03 · 662 阅读 · 0 评论 -
vim 从嫌弃到依赖(12)——打开及保存文件
在前几篇文章中,我们从vim各种模式的使用着手介绍了vim如何进行文本本身的编辑。也通过缓冲区列表的介绍了解到了vim是如何进行打开文件的管理。这篇我们将会着眼于文件的打开和保存的基本操作。通过这篇的阅读,我们可以正式开始尝试将vim用做代码编辑器,而不再是像之前那样作为普通的文本编辑器。开始前的准备先来介绍一下vim的工作目录的概念。我们知道进程都有自己的工作目录,后续需要操作某个目录的时候,可以根据这个工作目录使用相对路径。这样的好处是比较灵活,只要我们的文件按照一定的规则进行组织,后续可以更换程序原创 2022-05-18 17:06:52 · 1171 阅读 · 1 评论 -
vim 从嫌弃到依赖(11)——标签页操作
各位小伙伴们,你们好,我又更新了!之前介绍了vim关于多窗口的操作,vim中多窗口是将多个窗口在一个屏幕中显示,这似乎与我们常见的ide有点不一样,一般的ide都是新开一个窗口之后在新的标签页中显示,通过不同的标签页对应不同的文件。我们的浏览器就是一个典型的例子。而vim似乎不是这样的,vim管理文件采用的是缓冲区列表的方式,一个缓冲区对应一个显示窗口,而多个窗口可以显示在一个屏幕上。而vim中的标签页更像是一个容器,用来容纳这么些窗口。它更像是一个虚拟桌面,不管在功能上还是使用习惯上都像是虚拟桌面。(原创 2022-05-11 17:52:10 · 1220 阅读 · 0 评论 -
vim 从嫌弃到依赖(10)——缓冲区列表
之前的一系列文章主要介绍了vim文本相关的操作,并且也介绍了vim的几种模式。通过前面的内容,相信各位小伙伴们已经对vim有了一个基本的了解,同时也能够使用vim快速编辑文本,从这篇开始,我们将要介绍vim针对多个文件的操作,例如如何在多个文件中查找、跳转等等方式方法。让我们先从vim如何管理打开的多个文件开始吧缓冲区列表简介有过编程经验的小伙伴应该知道,将文件从磁盘读取到内存中时,都会事先分配一块内存缓冲区用来保存读取到的文件内容,vim同样是这么干的。vim在读取文件时会通过内存映射的方式,将磁盘原创 2022-05-07 10:39:57 · 542 阅读 · 0 评论 -
vim 从嫌弃到依赖(9)——命令模式进阶
上一篇文章更新还是在51前,最近发生了很多事情了,全国各地的疫情又有蔓延的趋势,北京朝阳区都已经开始实施居家办公。各位小伙伴请注意安全,安全平安的度过这个疫情。废话不多说了,接着上次的内容往下写。在上一个篇章中,我们介绍了命令模式的使用,也通过一些例子理解了在需要大范围操作文本或者进行光标跳转的情况下,相比于使用普通模式中的operator + motion 来说,使用范围加命令的方式更快速而且也更方便。同时也以copy 和 move 操作,介绍了操作文本命令的一搬用法。接下来就要继续往前走,介绍命令模原创 2022-05-05 11:51:24 · 403 阅读 · 0 评论 -
vim 从嫌弃到依赖(8)——使用命令模式编辑文本
通过前面的文章,我们已经介绍了vim的普通模式、插入模式、可视模式。接下来让我们接着介绍vim中另一个强大的模式——命令行模式命令模式简介命令模式可以说在vim中的使用频率不亚于普通模式,像我们平时使用 :w 将缓冲区的内容写入文件,使用 :q 退出vim,这些都是在命令行模式下执行命令。vim最早是由 ed 编辑器发展而来,中间经历过了 ed --> ex --> vi --> vim 的流程,vim继承了vi的模式区分以及ex的一些处理文本的命令,这也就是为什么有时候会将vim命原创 2022-04-27 11:23:43 · 646 阅读 · 0 评论 -
vim 从嫌弃到依赖(7)——可视模式
vim 的可视模式下可以选择一个区域,然后针对区域进行操作。可视模式有点类似于在其他编辑器上使用鼠标选中一块区域然后针对区域进行操作。vim中有3种可视模式,分别用来处理不同范围的文本:处理字符的可视模式处理行的可视模式处理列块的可视模式在普通的文本编辑器中,例如在写博客的时候会发现有些地方表述不太正确,这个时候一般会选择先用鼠标选择一句或者一段,然后按退格或者删除键删除所选内容。vim的可视模式也是相同的逻辑,先选区然后对选区进行操作。选区时可以使用之前介绍的motion 来移动光标进行选区原创 2022-04-25 09:52:54 · 1009 阅读 · 0 评论 -
vim 从嫌弃到依赖(6)——插入模式
插入模式是vim中主要用来处理输入的一种模式,在这种模式中,用户的输入的字符会显示在窗口中。该模式中的行为与在普通编辑器中输入类似。由于在该模式中输入的字符会被当做有效输入,因此该模式下涉及的到命令也少,内容也不多,这一篇文章差不多就能讲完进入插入模式的一些命令...原创 2022-04-21 11:19:50 · 1605 阅读 · 0 评论 -
vim 从嫌弃到依赖(5)——普通模式的一些操作
通过前面几章内容的铺垫,基本已经介绍完了普通模式的大部分内容,按照进度下面会依次介绍插入模式、命令模式、选择模式的一些操作。根据不同模式提供功能的多少和使用频率,篇幅会有长有短。本来这篇文章应该介绍插入模式的。但是我在整理最近写的内容的时候发现我忘记了一些不太常用但是很好用的一些小技巧,所以这篇文章我们还是停留在普通模式下。快速翻阅文本跳转光标的操作,之前介绍过 h j k l w等操作,但是在阅读代码的时候,仅仅根据这几个操作,效率着实有点低,即使使用类似 数字 + j/k 的方式来进行行间跳转,效率原创 2022-04-19 10:04:31 · 432 阅读 · 0 评论 -
vim 从嫌弃到依赖(4)—— .命令
通过之前几篇文章的介绍,如果各位小伙伴能够勤加练习,并在日常工作上经常使用,那么相信那些内容已经会对工作效率的提升产生好的影响。但是如果那些就是vim的全部的话,我们也就没那么大的必要花这么大的精力来学习如何使用它,而且它也不会在程序员中口口相传,并且令很多程序员对它如此着迷。接下来让我们更加深入到vim中,去学习更多更好的,可以进一步提升效率的技巧Don’t Repeat Yourself. Let vim repeat it for you不要进行重复的操作,让vim替你自动完成这些重复的操作。v原创 2022-04-17 10:52:42 · 542 阅读 · 0 评论 -
vim 从嫌弃到依赖(3)——vim 普通模式
在上一篇中,我们提到vim的几种模式,并且给出了一些基本的操作命令,包括移动光标,删除、替换操作。并且给出了几个重要的公式,理解这个公式对于理解vim和提高使用vim的效率来说至关重要。所以在这篇文章里面我打算再围绕这几个公式给出一些示例,希望能给各位理解公式提供一些帮助。行内查找字符串vim操作的效率很大程度上取决于移动光标的效率,平时在修改代码的时候很大程度上都是需要在特定位置修改,下面介绍到的操作很大程度上能提高我们移动光标和修改的效率行内查找字符使用 f{char} 来进行,即使用f后面加一个原创 2022-04-14 12:21:15 · 1320 阅读 · 0 评论 -
vim 从嫌弃到依赖(2)——vim 模式
在上一篇文章中我们获取到了neovim 并对它进行了基础配置。现在已经具备一般编辑器的基本功能了。让我们先学会如何使用vim基本功能进行编辑,后面再看如何进行配置,以达到某某IDE或者编辑器的效果vim 为何高效这里我们先聊聊vim为何高效。一般进行编辑工作,不管是使用Word,记事本,写PPT,对于文本的操作无外乎这么几种操作移动光标到指定位置输入删除替换(删除 + 输入)而vim之所以高效就是将这几个部分分解为几个模式,不同的模式针对这些场景进行了一些优化。下面是几个简单的示例将原创 2022-04-12 14:32:16 · 1573 阅读 · 2 评论 -
安装和定位vimrc
在上一篇文章中,我们简单开了一个头,阐述了下学习vim的必要性,这章开始,会慢慢由浅入深的学习它的一套完整的,高效的文本编辑方式方法。废话不多说,咱们正式开始吧安装NeoVim相对于vim来说,neovim更加现代化,配置也更加友好。而且之前vim相关配置可以很容易的就移植到neovim上。对于mac平台来说,可以使用homebrew来安装brew install neovim对于linux平台来说,neovim支持现有的软件包管理工具,例如针对debian及其衍生系统来说可以使用apt i原创 2022-04-08 21:40:05 · 1066 阅读 · 0 评论 -
vim 从嫌弃到依赖(0)——概述
最近我想开一个新的系列,记录我使用vim的相关心得。初次接触vim是在大学操作系统实践课程中,跟着Linux一块进行学习的。当初我是百般嫌弃它的,想要进行编辑还要按下其他键,我想要移动光标居然还的切换到普通模式下,这些种种我一直认为是反人类的。后来经过无数次的尝试、放弃、再尝试的过程,如今我已经离不开它了,不管用何种编辑器、用何种IDE,我首先会找是否有相关的vim模拟插件。这个文章标题也是我使用vim的心路历程,我采用这个标题,也是希望我写出来的文章,能给我的读者带来一些帮助,使各位读者也能像我一样从恶语原创 2022-04-04 11:42:45 · 1063 阅读 · 0 评论