在使用Vim之前,让我们来认识一下Vim的模式(Mode)与各个模式之间的操作与转换。
h
、j
、k
、l
y
(yank )、d
(delete )、c
(change )等命令复制、删除、修改对应游标下的文字。i
(insert)会进入插入模式。v
(visual)会选取游标下的该y
、d
、c
)操作所VSCodeVim支援的所有模式如文件连结
Vim 里面的各个模式转换可以用状态机来思考,当我们在普通模式输入不同命令後,会进入对应的模式,再按下Esc
键可以退出所进入的模式,如下图所示。(VSCodeVim亦直接支援使用Ctrl/Cmd + c
快捷键来退出目前的模
式)
(图源:作者自制)
在VS Code 中,当我们安装Vim Extension 并进入Vim Mode 後,我们会先进入普通模式,在这个模式下,游标会变成块状。
同时,我们可以在最底下的状态列看到--NORMAL-- 的字样,确认我们已经进入普通模式,如下图所示。
(图源:作者自制)
之後,我们输入i,进入插入模式,如下图所示。
完成输入或相关的编辑动作後,可以和前面一样点击Ctrl+c
(或是Esc
)退出可视模式。
不过,这样做通常没有什麽意义,让我们直接输入c
(Change)命令来修改下图的这段内容,看看会发生什麽事情?
(图源:作者自制)
选中的文字会先被删除,并进入插入模式的状态,让我们可以马上输入要修改的文字。这是c
命令的标准行为,若我们在普通模式使用相关的s
(substitute)命令命令修改一个字,状态一样会直接进入插入模式。
好的,这里我们多认识了一个命令,并且了解不同命令跟状态转换之间的关联性。那麽删除功能的d
命令呢?也许你开始好奇这些Vim命令的规则了,回到普通模式後,让我们按u
(undo)先复原文字。
现在,再次重复刚才的选取操作,但我们改为输入d
来删除选取文字区段。删除选中文字後,我们回到了普通模式。这也是合乎逻辑的行为,毕竟仅需删除动作的我们,无需再度进入插入模式。
(图源:作者自制)
好的,现在让我们输入:
,进入命令列模式吧!进入此模式後预设的游标样式如下图所示。
(图源:作者自制)
此时,不一样的是,在最底下的状态列中,我们不会看到--COMMAND LINE MODE-- 的字样,告诉我们已经进入对应模式。而是看到:
与状态列上面的游标,如下所示:
(图源:作者自制)
现在,我们可以输入对应命令,假设我们要跳转到第二行,在Vim 里面我们可以输入:{n}
来跳转到指定行数 (此处的n为指定跳转的行数),这里我们接着输入2
。
(图源:作者自制)
输入完整命令後,按下enter键
即可执行对应命令,跳转到第二行。
(图源:作者自制)
好的,从前面文章中,我们认识了最基本的Vim 用法。Vim的设计是考量过盲打(TouchTyping)的,了解模式下的基本操作和键盘的姿势,会让我们的编辑器操作更得心应好,现在我们已经有足够的基础可以进阶了。
透过有方法跟顺序的练习,我们会逐步认识到一个新的编辑器的世界。
<<: [VSCodeVim] Touch Typing 建立良好的键盘操作习惯
执行推论(C/C++ + Arduino IDE + MCU) 书接上回[Day 12] tinyM...
在定义 Gradle Build Script 里的 dependencies 时,您是不是也曾跟笔...
在影像内绘制图案 绘制点、线条 绘制多边形 *在影像内填入文字 小实作-制作Qrcode ...
Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单...
要开始写网页之前,首先要了解到网页是如何形成的,其实网页形成非常的简单,透过网页浏览器(google...