[VSCodeVim] Vim的基本操作、模式与状态列

Vim的基本操作、模式与状态列


[系列文目录]

在使用Vim之前,让我们来认识一下Vim的模式(Mode)与各个模式之间的操作与转换。

普通模式(Normal Mode):为Vim启动后的预设模式,在此模式中可以使用多种命令快速移动游标至对应位置。在使用Vim之前我们可能习惯使用方向键移动,现在在普通模式里,我们改为使用右侧主列上的hjkl
四个键进行左、下、右、上的移动,并且使用y(yank )、d(delete )、c(change )等命令複製、删除、修改对应游标下的文字。插入模式(Insert Mode):在普通模式下输入i(insert)会进入插入模式。
在此模式中可以输入文字、自由修改与编辑。可视模式(Visual Mode):在普通模式下输入v(visual)会选取游标下的该
文字并进入可视模式。这个模式里可以选取并重点标示(Highlight)文字区
域,突显选取的纯文字区域,之后我们可以使用对应命令(ydc)操作所
有选中的文字。命令列模式(Command Line Mode):在普通模式下,我们点击 : 键会进
入命令列模式,在此模式中输入一段文字,最后按下Enter,即可执行输入的
命令。

VSCodeVim支援的所有模式如文件连结

Vim的模式转换


Vim 里面的各个模式转换可以用状态机来思考,当我们在普通模式输入不同命令后,会进入对应的模式,再按下Esc键可以退出所进入的模式,如下图所示。(VSCodeVim亦直接支援使用Ctrl/Cmd + c快捷键来退出目前的模
式)


(图源:作者自製)

预设的普通模式

在VS Code 中,当我们安装Vim Extension 并进入Vim Mode 后,我们会先进入普通模式,在这个模式下,游标会变成块状。


(图源:Visual Studio Code实用指南)

同时,我们可以在最底下的状态列看到--NORMAL-- 的字样,确认我们已经进入普通模式,如下图所示。


(图源:作者自製)

进入插入模式

之后,我们输入i,进入插入模式,如下图所示。

进入插入模式
(图源:Visual Studio Code实用指南)

完成输入或相关的编辑动作后,可以和前面一样点击Ctrl+c(或是Esc)退出可视模式。
不过,这样做通常没有什么意义,让我们直接输入c(Change)命令来修改下图的这段内容,看看会发生什么事情?

change word
(图源:作者自製)

选中的文字会先被删除,并进入插入模式的状态,让我们可以马上输入要修改的文字。这是c命令的标準行为,若我们在普通模式使用相关的s(substitute)命令命令修改一个字,状态一样会直接进入插入模式。

好的,这里我们多认识了一个命令,并且了解不同命令跟状态转换之间的关联性。那么删除功能的d命令呢?也许你开始好奇这些Vim命令的规则了,回到普通模式后,让我们按u(undo)先复原文字。

现在,再次重複刚才的选取操作,但我们改为输入d来删除选取文字区段。删除选中文字后,我们回到了普通模式。这也是合乎逻辑的行为,毕竟仅需删除动作的我们,无需再度进入插入模式。

After Delete a word
(图源:作者自製)

进入命令列模式

好的,现在让我们输入:,进入命令列模式吧!进入此模式后预设的游标样式如下图所示。

CommandLineModeUI
(图源:作者自製)

此时,不一样的是,在最底下的状态列中,我们不会看到--COMMAND LINE MODE-- 的字样,告诉我们已经进入对应模式。而是看到:与状态列上面的游标,如下所示:


(图源:作者自製)

现在,我们可以输入对应命令,假设我们要跳转到第二行,在Vim 里面我们可以输入:{n}来跳转到指定行数 (此处的n为指定跳转的行数),这里我们接着输入2


(图源:作者自製)

输入完整命令后,按下enter键即可执行对应命令,跳转到第二行。


(图源:作者自製)

本篇小结


好的,从前面文章中,我们认识了最基本的Vim 用法。Vim的设计是考量过盲打(TouchTyping)的,了解模式下的基本操作和键盘的姿势,会让我们的编辑器操作更得心应好,现在我们已经有足够的基础可以进阶了。

透过有方法跟顺序的练习,我们会逐步认识到一个新的编辑器的世界。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章