Skip to content

Lecture3 Vim

:material-circle-edit-outline: 约 427 个字 :material-clock-time-two-outline: 预计阅读时间 1 分钟

学习vim不仅仅是去了解这个编辑器的使用,更多的是去学习其背后的思想(idea)。

Vim是一个基于命令行的文本编辑器。相对的,有图形编辑器,例如VS code。

思想

思想一

vim是一个 模态编辑器(modal editor),意思是vim有多个操作模式。这一设计起源于人们对于代码有不同的需求,例如只阅读、小修改、大量编写,等等。

vim的不同模式间的一个显著差别是,不同模式下的案件含义不同,即快捷键不同。

以下介绍vim的几种模式:

  • normal:按i进入insert,按r进入replace,按v进入visual,按shift+v进入visual line,按ctrl+v进入visual block,按:进入command-line
  • insert:用于插入文本。
  • replace:用于覆盖文本。
  • visual
  • visual-line
  • visual-block
  • command-line

normal以外的模式回到normal需要按esc,为了方便,人们往往将capsLK键绑定为esc。

思想二

vim打开多个文件的思路是,可以创建多个标签(tab),每个tab可以包含多个窗口(window),每个window对应一个缓冲(buffer)。

buffer实际上就是一个被打开的文件,即每个window显示一个文件,不过一个文件可以被多个窗口同时显示,然后一个tab类似一个工作台,包含多个窗口。

通过:q退出时,是一个一个window关闭的,关完一个tab的所有window后再关闭这个空的tab,如果还有其它tab就进入其它tab,否则关闭vim。

思想三

vim交互本身就是一种基于命令的编程语言。

vim's interface, itself, is a programming language.