Neovim 基础
Neovim 模式简介
Neovim 有6个模式之多,Neovim 之所以有这么多模式,主要是继承了 Vim 的设计理念,而 Vim 又是从其前身 Vi 演变而来的。Vi 和 Vim 是为提高编辑效率而设计的文本编辑器,而 Neovim 则是对 Vim 的现代化重构。
Vi 和 Vim 的设计核心理念是高效文本编辑。在早期计算机资源有限、鼠标等图形用户界面尚不普及的环境下,开发者们需要一种只依赖键盘的高效编辑方式。通过多种模式的划分,可以减少频繁切换手指位置(比如从主键区到箭头键)的需求,极大地提高了编辑速度。
- 普通模式 (Normal Mode): 默认模式,用于导航、复制、粘贴等操作。在其他模式按 Esc 可以进入普通模式。
- 插入模式 (Insert Mode): 用于插入文本。按 i、a、o 等可以进入插入模式,按 Esc 退出插入模式。
- 可视模式 (Visual Mode): 用于选择文本块。按 v 进入可视模式,V 进入行可视模式,Ctrl + v 进入块可视模式。
- 命令行模式 (Command-Line Mode): 用于执行命令,如保存、退出、查找替换等。按 : 进入命令行模式。
- 选择模式 (Select Mode): 用于选择文本(类似于可视模式),不过使用起来更像是传统编辑器中的选择行为,在块可视模式下按 gh 进入选择模式。
- 替换模式 (Replace Mode): 类似插入模式,但会替换现有文本。按 R 进入替换模式。
其实不需要记住这么多模式,常用的模式只有命令行模式(执行一些命令)、插入模式(编辑文本)、可视模式(选择文本),其他模式了解即可。
常用快捷键
Neovim 中快捷键非常多,不同模式下快捷键的作用也不同,所以不建议强行记住所有快捷键,大概了解一下,记住常用快捷键就行,其他快捷键在使用过程中慢慢记忆即可。
普通模式(Normal Mode)
导航
h
、j
、k
、l
:向左、下、上、右移动光标。w
:移动到下一个单词的开头。b
:移动到前一个单词的开头。0
:移动到行首。$
:移动到行尾。gg
:移动到文件开头。G
:移动到文件末尾。
编辑
x
:删除光标下的字符。dw
:删除光标后的一个单词。dd
:删除当前行。d$
:删除到行尾。u
:撤销上一个操作。Ctrl + r
:重做上一个撤销的操作。
复制与粘贴
yy
或Y
:复制(yank)当前行。yw
:复制一个单词。p
:在光标后粘贴内容。P
:在光标前粘贴内容。
查找
/text
:向下查找text
。?text
:向上查找text
。n
:跳转到下一个匹配项。N
:跳转到上一个匹配项。
保存与退出
:w
:保存当前文件。:q
:退出当前文件。:wq
:保存并退出。:q!
:强制退出不保存。
插入模式 (Insert Mode)
i
:在光标前插入。I
:在行首插入。a
:在光标后插入。A
:在行尾插入。o
:在当前行下方新开一行并进入插入模式。O
:在当前行上方新开一行并进入插入模式。
可视模式 (Visual Mode)
v
:进入字符可视模式。V
:进入行可视模式。Ctrl + v
:进入块可视模式。y
:复制选中的文本。d
:删除选中的文本。>
和<
:缩进或取消缩进选中的文本。
命令行模式 (Command-Line Mode)
:w
:保存文件。:q
:退出文件。:wq
:保存并退出文件。:q!
:强制退出不保存。:e filename
:打开一个新的文件。:s/old/new/g
:替换当前行中的old
为new
。:%s/old/new/g
:替换整个文件中的old
为new
。
常见组合操作
- 修改操作:
c
表示改变。cw
:改变一个单词(删除并进入插入模式)。cc
:改变整行。
- 重复操作: 按
.
可以重复上一个操作。 - 多行编辑: 进入块可视模式 (
Ctrl + v
) 后,选中多行,进行批量操作。
总结
以上只是 Neovim 的基本功能,作为一款文本编辑器,以上功能已完全能满足需求,但我们的目标并不止如此,当给 Neovim 配上插件,就像老虎添上了翅膀,可以从编辑器进化成 IDE!