前言

Neovim是我最喜欢的编辑器,它几乎可以无缝衔接Vim的操作跟配置,天生支持正则表达式、录制宏等
除了VimScript之外,Neovim还支持使用Lua进行配置。

Vim系列编辑器只要用一个键盘就能完成所有的操作,手不需要离开键盘去操作鼠标。
通过自己的配置,让编辑器去适配用户的习惯,而不是等IDE更新之后再去适应新的操作方式。

其他编辑器

  • Emacs:这个被人称之为全世界最好的操作系统,Emacs使用Lisp语言做配置,可拓展性很强,但是个人感觉Lisp学习成本高了点。Vim跟Emacs势不两立
  • VSCode: 微软开源的编辑器,图形化界面对新手入门比较友好,使用TypeScript编写拓展插件,通过json配置。

工作模式

Vim主要有三种工作模式,在任何模式下都可以通过 Esc 回到正常模式(Normal mode)

  • 标准模式(Normal mode),主要用来浏览文件,快速的对文本进行增删改查等工作
  • 插入模式(Insert mode),在这个模式下编辑文件
  • 命令模式(Command mode),使用一些命令拓展Vim的功能
# 打开vim
$ vim

# 使用vim打开指定文件
$ vim filename

# 使用vim打开指定文件,光标移动到第63行
$ vim filename +63

简单操作

标准模式

移动光标

除了用小键盘的上下左右移动光标之外,在Normal模式下还可以使用 hjkl 移动光标

巧记方法

在QWERTY布局的键盘上 hjkl 这四个按键是并排着的

  • h 在最左边,所以光标往左移动
  • l 在最右边,所以光标往右移动
  • j 由右手食指点击,我们浏览文本都是从上往下看,食指按一下就往下移动(习惯问题)
  • k 按照4399小游戏的那一套方案,k是跳跃,跳跃就是向上移动
    k
h     l
  j

除了上下左右移动之外,还有几个常用移动光标方式

按键 描述
w 移动到下一个单词的第一个字母
e 移动到下一个单词的最后一个字母
b 移动到上一个单词的第一个字母
ge 移动到上一个单词的最后一个字母
gg 移动到文件第一行
G 移动到文件到最后一行

进阶操作

Vim的操作方式大小写都有不同的效果,自己手动尝试一下有惊喜!!

最常用的还是复制粘贴

按键 描述
dd 删除当前光标所在行
yy 复制当前光标所在行
x 删除当前光标下的字符
p 粘贴

Vim可以在按键前指定执行次数

按键 描述
7k 执行7次k,光标向上移动7行
12j 执行12次j,光标向下移动12行
20p 执行20次p,粘贴20次文本

把这些操作结合起来,体验极佳

按键 描述
d10k 向上删除10行
diw 删除当前光标所在位置的单词
de 从当前光标位置开始删除字符到该单词的最后一个字符

可视模式

可视模式下移动光标可以选择需要的文本,然后配合其他的按键进行一系列操作

按键 描述
v 进入可视模式
V 进入可视行模式
<c-v> 进入可视块模式

插入模式

插入模式最简单,就像普通的编辑器那样编辑文件即可,主要区分几个进入Insert模式时不同的效果

按键 描述
i 从光标所在字符前开始编辑
a 从光标所在字符后开始编辑
o 向下新插入一个空行开始编辑
s 覆盖光标所在字符,继续编辑

命令模式

命令模式是在Vim最后一行输入特定的命令来执行,是拓展Vim的关键

搜索

命令 描述
/string 向下搜索string
?string 向上搜索string

保存退出

命令 描述
:w 保存
:q 退出
:q! 强制退出
:wq 保存并退出

基本设置

命令 描述
:set number 显示行号
:set cursorline 高亮光标所在行
:set nowrap 文本超出屏幕不换行
:set hlsearch 高亮搜索匹配到到文本