使用Lunarvim搭建开发环境
前两个周上班时感觉右手手麻,以为自己是不是年纪轻轻就椎间盘突出压迫神经了,吓人的很,花 500 大洋去医院拍了个 CT, 好消息是医生说没什么事,不是椎间盘的问题,然后问到我的工作,是不是经常用鼠标的问题,我一下子就想到了我那个毫无人体工程学的 magicmouse, 害。
虽然现在已经好了不再手麻了,但是之前就有的学习一下 vim 的念头又被我拾起来了,趁着周末折腾一下配个环境试试。
为什么选 Lunarvim
其实在选用 Lunarvim 之前,我在网上已经看了一些帖子了,但是 vim 相关的文章真的不多哦,东拼西凑了一些文章开始用 neovim 来从头配置开发环境,还赶潮流的用了 Lazy.nvim 作为插件管理器,真的是太年轻了,两个晚上没配出来一个能用的环境,直接心态爆炸了。。。
然后就退而求其次,我们 VSCode 装一个 vim 插件,也可以的,但是用着 vim 的快捷键和 VSCode 的快捷键,有点割裂,又想再折腾一下。
这个时候,在网上发现了 spacevim 和 lunarvim,看了一下还是别人的 starter 比较香,最终选用了 Lunarvim。我选择的原因如下:
Lunarvim会自动安装打开文件所需要的LSP和treesitter高亮内容- 开箱即用,我没有额外安装任何插件
- 官网有中文文档,虽然没有全部翻译,但是够用了。
安装
Lunarvim 的安装是比较简单的,照着官网教程走即可。我这里碰到了两个坑,可以记录一下:
- 使用
neovim 0.8版本的时候nvm-web-devicons的图标有些不能正常显示,换到了neovim 0.9之后就可以了。 telescope的文本搜索没生效,后边才发现需要本地装一个插件ripgrep, 直接brew install ripgrep即可。
然后我做了一些自己觉得舒服的配置,这个自己根据自己的需求来即可:
1 | -- config.lua |
vim语法
如果是自己从头配置 vim ,那么真的是可以洋洋洒洒写一大篇配置的文章,但是由于我选用了 Lunarvim, 真的没有什么配置的内容好写了,所以这篇文章的主要目的是搜罗一些常用的 vim 语法记录下来,毕竟在这之前对于 vim 的了解仅限于能打开能退出的程度。。。
在这里分类记录一下 vim 的各个语法,方便查阅。
光标移动相关
| 命令 | 行为 |
|---|---|
h,j,k,l |
左,下,上,右 |
control + u |
翻上半页 up |
control + d |
翻下半页 down |
control + f |
翻下一页 forward |
control + b |
翻上一页 backward |
w |
跳到下一个单词的字首 |
e |
跳到下一个单词的字尾 |
b |
跳到上一个单词的字首 |
0 |
跳到当前行的行首 |
^ |
跳到当前行行首的第一个字符 |
$ |
跳到行尾 |
gg |
跳到文本的开头 |
G |
跳到文本的结尾 |
f + x |
在当前行搜索 x 字符,按;跳到下一个x字符 |
/ + x |
在文本中搜索 x 字符,按n跳到下一个 |
复制/删除
| 命令 | 行为 |
|---|---|
dd |
删除一行 |
dw |
从光标位置开始删除到单词结束 |
x |
删除当前字符 |
y |
复制光标下的内容 |
yw |
从光标位置开始复制到单词结束 |
yy |
复制一行 |
p |
粘贴内容到当前行的下方 |
P |
粘贴内容到当前行的上方 |
插入/编辑
| 命令 | 行为 |
|---|---|
i |
在光标前进入插入模式 |
I |
光标移动到行首进入插入模式 |
a |
在光标后进入插入模式 |
A |
光标移动到行尾进入插入模式 |
o |
当前行下边新加一行并进入插入模式 |
O |
当前行上边新加一行并进入插入模式 |
r |
按下r之后输入的字符会替换光标下的字符,替换完成后进入普通模式 |
s |
删除光标所在的字符并进入插入模式 |
S |
删除光标所在行并进入插入模式 |
u |
撤销最近的一次操作 |
control + r |
重做,可以恢复撤销的内容 |
>> |
当前行右移 |
<< |
当前行左移 |
== |
自动缩进当前行 |
保存/退出
| 命令 | 行为 |
|---|---|
:w |
保存 |
:wq |
保存并推出 |
:q |
退出,如果修改未保存会提示 |
:q! |
强制退出,放弃修改的内容不保存 |
对于刚接触 vim 的我来说,以上的命令足够我用了,接下来就可以使用 vim 来做一些简单的工作熟悉一下各种命令了,至于复杂项目,至少短期内应该不会用 vim 来作为主力开发工具,我也没想过用 vim 来作为主力开发工具。
使用Lunarvim搭建开发环境