我花了三年时间配置 (n)Vim,以下是我学到的东西。
TL;DR:直接给我插件就行了。
关于它
TL;DR:直接给我插件就行了。
(我用的是 Neovim,所以有些插件可能无法完全兼容 Vim)
你可以在这里查看我的完整配置。我没有提到映射,因为我认为这非常个人化,因人而异。本文只讨论插件。
要点
如果你使用neovimvim-plug作为插件管理器,只需将它们放入你的配置文件.vimrc或你的配置文件中即可。init.vim
- 插件“dense-analysis/ale”:Ale 是一个非常强大的代码检查器和修复器,适用于多种编程语言,绝对是必备工具(尤其是因为它几乎开箱即用)链接!
- 添加插件 'Shougo/deoplete.vim':deoplete 是一个代码补全工具,与 Neovim 配合使用效果尤佳,但您也可以找到其他补全工具,例如 CoC。您还可以为特定语言添加 deoplete,例如 Python 的 jedi、Go 的 deoplete-go 和 Ruby 的 solargraph:
if has('nvim')
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
else
Plug 'Shougo/deoplete.nvim'
Plug 'roxma/nvim-yarp'
Plug 'roxma/vim-hug-neovim-rpc'
endif
Plug 'deoplete-plugins/deoplete-go', { 'do': 'make'}
" do not forget to install jedi
Plug 'deoplete-plugins/deoplete-jedi'
" do not forget to install solargraph
Plug 'uplus/deoplete-solargraph'
call plug#end()
关联。
- 插件 'fatih/vim-go':作为一名 Go 开发者,它是必备工具,可以让你轻松查看文档并跳转到定义页面。它还有许多其他很棒的功能,你应该点击链接
vim-go查看。 - 插入“scrooloose/nerdcommenter”:评论变得简单链接。
- 插入“scrooloose/nerdtree”:在树中查找变得容易,并且比原生链接更容易理解(至少对我来说是这样)。
- 插件“mattn/emmet-vim”:编写 HTML 时自动生成标签,对 Web 开发人员最有用的链接。
- 插件“junegunn/fzf”:指尖上的快速搜索,再也不用使用nerdtree链接。
让你的编码过程更轻松
- 插件“jiangmia/auto-pairs”:自动完成括号和其他括号链接。
- 插件“tpope/vim-surround”:学习使用起来有点复杂,但之后在包装函数和代码块时,您将节省大量时间和击键次数。
- 插件 'itchyny/lightline.vim':一个不错的 vim 工具线,具有许多主题和高度可定制的链接。
- 插件“maximbaz/lightline-ale”:在 lightline link中显示您的 linter 错误和警告。
git
- 插件“airblade/vim-gutter”:在边栏中显示您的更改,撤销它们并预览它们链接。
- Plugs 'itchyny/vim-gitbranch' : 在您当前活动的 git 仓库链接中以 lightline 形式显示 git 分支。
- 插件 'junegunn/gv.vim':虽然不是必需的,但它是一个不错的 git 仓库和提交浏览器,如果您使用 tig link,则它没有用处。
奖金
- 插入“junegunn/goyo.vim”:获取更无干扰的 vim链接。
- 插件“psliwka/vim-smoothie”:更流畅的滚动链接。
- 插件“mhinz/vim-startify”:一个不错的启动页面,让您轻松启动并运行之前的缓冲区(链接)。
颜色
- 插件 'ayu-theme/ayu-vim':一个以橙色为主的配色方案,与 redshift link配合使用效果极佳。
- 插件“articicestudio/nord-vim”:一个以蓝色为主色调的配色方案,非常适合日常工作。
关于它
Vim 真是个神奇的工具。从我第一次听说它起,我就只有一个念头:一定要用它。当时我并不了解它的用途,我既不是程序员,对编程也一窍不通。几年过去了,我一直听说它有多棒,却从未真正尝试过。
有一天我成了程序员,试着用 Vim,但它太复杂、太繁琐了。我根本搞不清楚自己该做什么(写代码)和用编辑器。后来我改用 Sublime Text,一切都像我这个编程新手应该有的那样顺畅。
几个月过去了,Vim 就像迷雾中的美人鱼一样召唤着我。我把 Vim 模式切换到 Sublime Text,但几乎没怎么用它的其他功能。我努力学习,但越来越难,而且似乎没有什么能真正提升我的开发水平。我只是删代码的速度变快了而已。后来我接触了 VSCode,也用了它的 Vim 模式,但这次我尝试着去理解一些新的开发概念。至于 Sublime Text,我尽可能地对 VSCode 进行各种调整。我意识到,关键不在于工具本身,而在于你的编码方式:每个人的需求都不一样。
只有经过多年的开发,我才能真正理解:我需要快速实现什么功能?我需要哪些触手可及的功能?这正是配置 Vim 的核心原因:更快、更省力、更符合你的工作习惯。Vim 是终极生产力工具,但如果你沉迷其中,它也可能变成一个无底洞。
例如,我需要快速分屏(C-W + v|s),打开终端(neovim 中的 `:term`),返回函数定义(vim-go 中的 `:GoDef`),并且避免重复编写相同的代码(点运算符和宏)。显然,VSCode 可以做到这些,但由于某些原因,它对我来说并不适用,我们在 6 个月后就分道扬镳了。
我终于给了 Vim 两周时间,漫不经心地学习,桌上堆满了 Stack Overflow 和各种速查表,我每天摸索着学习,直到我所有的思维路径都能在 Vim 中找到对应的实现方式。我逐渐掌握了它,感觉棒极了。
这时我意识到了一件事。
寻找一款实用高效的代码编辑器或集成开发环境(IDE)首先,似乎需要审视自身的开发流程和技巧。关键不在于追求炫酷或速度,而在于运用智慧。重要的是与工具融为一体,不仅要理解它,还要根据自身需求灵活运用。
你写代码时需要什么?哪些功能能提高效率?你需要分屏显示吗?IDE 里琳琅满目的功能会让你分心吗(我知道我就是这样)?代码检查工具对你有用吗?你需要自动修复语法错误吗?颜色显示是否必要?问题很多,插件也很多,而大量的时间却浪费在了繁琐的配置上。
本质上,只有那些开发经验丰富但又没有过度依赖某个工具的人才能体会到这一点。Vim 需要时间学习,但我想就像斯德哥尔摩综合症一样,一旦你投入其中,就很难放弃之前付出的所有努力。
终于,在对着屏幕上自己的倒影凝视了那么多天之后,那近乎完美的画面就像冬日清晨的阳光一样出现在我眼前。就是它了。我知道。
代码编写起来很简单,事情也按照我的意愿发展,速度和效果都如我所愿。
我找到了出口。我退出了 Vim。现在我们一起走在开发的道路上。
文章来源:https://dev.to/evilcel3ri/i-spent-3-years-configuring-n-vim-and-this-what-i-learnt-22on