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之后,主张先装置一下gccgo, 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会主动开端履行以下几个步骤来完结初始化。

  1. 主动调用curl下载Packer.nvim插件办理器;
  2. Packer插件办理器主动下载lua/plugins.lua中装备的插件;
  3. Packer插件办理器主动编译生成最终的装备文件。

注意

  • 下载装置nvim插件或许会失败,强烈主张挂上梯子,或许需求多次履行PackerSync命令才干完结初始化。
  • Tree-sitter这个插件装置和初始化或许时间会久一点,原因是它会编译和装置一堆言语相关组件。
  • 初始化遇到问题不要慌,依据nvim提示细心排查一般都能够顺畅解决。
  • 初始化完结后,主张履行checkhealth命令,再次查看各插件的依赖是否都装置好了,一般主张装置好nodejspynvim等或许用到的辅助东西。

3. 私人定制

这个库房依据github.com/ofseed/nvim…进行了一些优化,这是一个非常个性化的装备,或许需求依据个人习气做一些修改。下面简要介绍一下这个超级装备里的一些中心插件。

alpha-nvim

这个漂亮的发动界面是alpha-nvim插件供给的,你能够对该插件进行定制。

依据neovim打造归于自己的PDE

telescope.nvim

Telescope.nvim是一个超级插件,它能够为咱们供给查找、过滤、预览、挑选等功能。其本身还能够集成许多子插件,进一步能够实现项目办理、会话办理等功能。Telescope的默许快捷键装备为:

<leader>ff 查找文件
<leader>fg 查找符号
<leader>fp 查找项目
<leader>fs 查找代码片段

Tree-Sitter

Tree-sitter是一个语法增量解析器,依据它咱们能够实现对代码的语法分析,做到更细粒度的代码高亮。此外它还能够跟LSP进行交互,供给更加丰富的功能。

依据neovim打造归于自己的PDE

Mason.nvim

Mason是一个非常好用的LSP Server办理器,运用Mason咱们能够非常方便地下载各种言语的LSP Server,有了它之后再也不用挨个去下载和装置LSP Server。目前常用的编程言语LSP ServerMason中都有了齐备的支撑。

依据neovim打造归于自己的PDE

CodeCompletion

CodeCompletion是一个代码主动补充东西,是IDE必不可少的功能。

依据neovim打造归于自己的PDE

有了LSP Server的支撑再加上Neovim自带LSP ClientNeovim具有媲美VsCode般的代码补全和提示功能。

#常用功能键,默许leader键是空格键。
<leader>gs # 大局符号搜索
<leader>gr # 查抄符号引证
<leader>rn # 符号重命名

依据neovim打造归于自己的PDE

依据neovim打造归于自己的PDE

依据neovim打造归于自己的PDE

依据neovim打造归于自己的PDE

依据neovim打造归于自己的PDE

4. 扩展

假如需求进一步对上述装备进行扩展,能够阅览一下该装备的中心代码。

  1. lua/plugins.lua 文件中界说了一切用到的插件集合;
  2. core文件夹是一些中心插件的独立装备项,可自行扩展;
  3. edit文件夹是一些代码编辑相关插件装备项,可自行扩展;
  4. efficiency文件夹是一些功率相关插件的装备项,可自行扩展;
  5. language是一些LSP Server相关的装备项,可自行扩展;

插件装备的入口文件是lua/plugins.la,每个插件能够具有自己的个性化装备,这些装置插件依据类型分类放到了不同的目录下面,能够依据自己的个性化需求调整部分插件的装备。

依据neovim打造归于自己的PDE

5. 完毕

感谢Yi Ming的共享!

亲,还在等什么?

赶忙开端捣鼓打造归于你自己的Neovim全功能PDE吧!