1.前言
自从Neovim和Vim分道扬镳之后,Neovim开端原生支撑Lua言语并内置了LSP Client,运用体会变的超级棒!本文意图是记载和共享一个依据neovim
的PDE(Personal Development Environment)环境,这个装备简直能够开箱即用,可作为程序员的成产力东西。
2. 装置
首先你需求装置Neovim到你的操作系统上,主张nvim版本在0.7以上。装置neovim
的方法许多,能够用os自带的包办理器装置,也能够直接下载对应渠道的二进制,例如:
# Download nvim-linux64.tar.gz
wget https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.tar.gz
# Extract to system directory
sudo tar xf -C nvim-linux64.tar.gz -C /usr/share/
# Add to $PATH
echo PATH=/usr/share/nvim-linux64/bin:$PATH >> ~/.bashrc
source ~/.bashrc
# Check nvim version
nvim --version
NVIM v0.10.0-dev-2278 g35ffe58ea
Build type: RelWithDebInfo
LuaJIT 2.1.1707061634
Run "nvim -V1 -v" for more info
装置好nvim之后,主张先装置一下gcc
,go
, nodejs
, rustc
等开发言语编译东西链和运转环境。
sudo dnf install -y gcc go nodejs
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
另外需求装置一下github cli即github的命令行东西,Mason.nvim这个LSP Server办理器默许会用到它。
sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --add-repo -y https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install -y gh
接着还需装置一些文件查找辅助东西,例如fd-find,fzf和ripgrep等。
sudo dnf install -y fd-find fzf ripgrep -y
最后git clone这个github库房到本地的./config/nvim
目录下即可:
mkdir ~/.config
git clone https://github.com/fangying/nvim.git ~/.config/nvim
克隆到本地之后,直接履行nvim命令,nvim会主动开端履行以下几个步骤来完结初始化。
- 主动调用curl下载Packer.nvim插件办理器;
- Packer插件办理器主动下载lua/plugins.lua中装备的插件;
- Packer插件办理器主动编译生成最终的装备文件。
注意:
- 下载装置nvim插件或许会失败,强烈主张挂上梯子,或许需求多次履行
PackerSync
命令才干完结初始化。 -
Tree-sitter
这个插件装置和初始化或许时间会久一点,原因是它会编译和装置一堆言语相关组件。 - 初始化遇到问题不要慌,依据
nvim
提示细心排查一般都能够顺畅解决。 - 初始化完结后,主张履行
checkhealth
命令,再次查看各插件的依赖是否都装置好了,一般主张装置好nodejs
、pynvim
等或许用到的辅助东西。
3. 私人定制
这个库房依据github.com/ofseed/nvim…进行了一些优化,这是一个非常个性化的装备,或许需求依据个人习气做一些修改。下面简要介绍一下这个超级装备里的一些中心插件。
alpha-nvim
这个漂亮的发动界面是alpha-nvim插件供给的,你能够对该插件进行定制。
telescope.nvim
Telescope.nvim
是一个超级插件,它能够为咱们供给查找、过滤、预览、挑选等功能。其本身还能够集成许多子插件,进一步能够实现项目办理、会话办理等功能。Telescope
的默许快捷键装备为:
<leader>ff 查找文件
<leader>fg 查找符号
<leader>fp 查找项目
<leader>fs 查找代码片段
Tree-Sitter
Tree-sitter
是一个语法增量解析器,依据它咱们能够实现对代码的语法分析,做到更细粒度的代码高亮。此外它还能够跟LSP进行交互,供给更加丰富的功能。
Mason.nvim
Mason
是一个非常好用的LSP Server
办理器,运用Mason
咱们能够非常方便地下载各种言语的LSP Server
,有了它之后再也不用挨个去下载和装置LSP Server
。目前常用的编程言语LSP Server
在Mason
中都有了齐备的支撑。
CodeCompletion
CodeCompletion
是一个代码主动补充东西,是IDE
必不可少的功能。
有了LSP Server
的支撑再加上Neovim
自带LSP Client
,Neovim
具有媲美VsCode
般的代码补全和提示功能。
#常用功能键,默许leader键是空格键。
<leader>gs # 大局符号搜索
<leader>gr # 查抄符号引证
<leader>rn # 符号重命名
4. 扩展
假如需求进一步对上述装备进行扩展,能够阅览一下该装备的中心代码。
- lua/plugins.lua 文件中界说了一切用到的插件集合;
- core文件夹是一些中心插件的独立装备项,可自行扩展;
- edit文件夹是一些代码编辑相关插件装备项,可自行扩展;
- efficiency文件夹是一些功率相关插件的装备项,可自行扩展;
- language是一些LSP Server相关的装备项,可自行扩展;
插件装备的入口文件是lua/plugins.la
,每个插件能够具有自己的个性化装备,这些装置插件依据类型分类放到了不同的目录下面,能够依据自己的个性化需求调整部分插件的装备。
5. 完毕
感谢Yi Ming的共享!
亲,还在等什么?
赶忙开端捣鼓打造归于你自己的Neovim
全功能PDE吧!