基于coc.nvim打造开箱即用的个人PDE

1. 前言

自从Neovim横空出世之后,提供了比Vim更好的可扩展性。后来Vim也觉醒了不再固步自封,开始追赶Neovim的步伐。二者之间良性竞争,互相吸纳对方的优点。经过多年的发展,二者之间的差异已经比较小了,大部分三方插件都能同时兼容NeovimVimNeovimVim两个项目是开源项目间竞争发展的一个好的例子。

本文的目的是打造一个基于coc.nvim的开箱即用的轻量级Neovim PDE(Personal Development Environment)。

2. 安装

首先你需要安装Neovim到你的操作系统上,建议nvim版本在0.95以上。安装neovim的方式很多,可以用os自带的包管理器安装,也可以直接下载对应平台的二进制,例如:

bash 复制代码
# 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等开发语言编译工具链和运行环境。

bash 复制代码
sudo dnf install -y gcc go nodejs
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

接着还需安装一些文件查找辅助工具,例如fd-findfzfripgrep等。

bash 复制代码
sudo dnf install -y fd-find fzf ripgrep -y
sudo dnf install -y gcc go nodejs clang llvm

最后,克隆下面的仓库并复制到本地~/.config/nvim目录即可:

bash 复制代码
git clone https://github.com/fangying/dotfiles.git
cd dotfiles
mkdir ~/.config -pv
cp .config/nvim ~/.config -rf

dotfiles仓库里面包含了在用的nvimtmuxalacritty, wezterm配置文件,这里我们只需要将nvim的文件拷贝到nvim的配置目录即可。拷贝完成后,执行nvim命令会自动下载plug.vim并通过plug.vim插件管理器自动下载其他插件。还是那句话,这个过程会自动去github下载插件,建议挂梯子。

注意:

插件自动安装完成之后,建议运行:checkhealth命令,安装部分插件缺失的依赖。

3. 私人定制

coc.nvim提供了一站式的LSP服务,集成了众多的语言LSP Server,建议看下coc.nvim的项目文档,了解coc.nvim的具体使用方法。初始化之后,我们安装一些必要的coc.nvim集成的子插件。例如,下面的命令coc会帮忙安装jsonrust-analyzerclangdgotypescript等语言的LSP Server这样可以支持对语言的自动补全。

bash 复制代码
:CocInstall coc-json coc-python coc-rust-analyzer coc-clangd coc-go coc-tsserver coc-yaml coc-snippets

也可以安装一个叫做coc-marketplace的插件,这样可以用marketplace查看和管理coc的各种插件。

bash 复制代码
:CocInstall coc-marketplace
:CocList marketplace

查看当前coc.nvim当前的配置文件,看下当前LSP Server的配置,执行CocConfig命令:

这里默认集成了C语言的LSP Server是cclsclangd似乎更好用,Rust语言使用rust-analyzer,Go语言使用gopls。更多的语言配置可以参考coc的文档:

配置好LSP之后,就可以使用nvim了,coc.nvim提供能全面的代码补全功能支持。

代码浏览默认会计键映射:

bash 复制代码
gd # 查看符号定义
gy # 查看类型声明
gi # 查看符号的实现
gr # 查看符号的调用关系

4. 使用

这个里面配置一些比较实用的插件,下面挑重点几个简单介绍一下。

vim-clap

vim-clap提供了非常优秀的查找功能体验,并且可以和coc.nvim互相配合打通数据,让文件和符号的查找都十分方便。默认的快捷键配置如下。

bash 复制代码
<leader>ff 查找文件
<leader>fg 查找符号

Nerd-Tree

NerdTree是老牌的文件浏览器插件,使用<leader>e快捷键打开和关闭NerdTree,使用?查看插件的更多用法。

Airline

Airline插件提供了多Tab支持,使用<leader>n快捷键组合快速在多Tab之间无缝切换。

NerdCommenter

使用nerdcommenter可以帮助我们对选择的代码块进行注释,或者取消注释。

5. 其他

更多的插件可以直接打开~/.config/nvim/init.nvim来看看,里面集成的都是非常nice的插件,可以自行查阅插件的说明文档,多多联系各种快捷操作,早日融汇贯通。

参考文件:

相关推荐
hlyling18 小时前
优化视频编辑体验:精准高效视频分割,降低误差率,显著提升处理精度与效率
macos·eclipse·vim·phpstorm·visual studio
2401_8576100319 小时前
精通Vim的艺术:Ex命令的深度指南
编辑器·vim·excel
原机小子1 天前
探索Vim的窗口艺术:窗口拆分功能全解析
linux·编辑器·vim
代码之光_19803 天前
探索Vim表达式寄存器:提升文本处理的高级技巧
编辑器·vim·excel
Tassel_YUE3 天前
使vim创建.sh文件时自动添加头部描述信息
linux·运维·编辑器·vim
杨哥带你写代码4 天前
探索 Vim 的撤销树:时光倒流的编辑艺术
linux·编辑器·vim
争取三天至少一篇4 天前
【vim程序编辑器与shell】
linux·编辑器·vim
不会C语言的男孩5 天前
vim常用操作
linux·编辑器·vim
williamdsy6 天前
【Ubuntu noble】apt 无法安装软件 Unable to locate package vim
ubuntu·vim·apt·unable locate
dike89897 天前
聚焦从业人员疏散逃生避险意识能力提升,推动生产经营单位每年至少组织开展(疏散逃生演练,让全体从业人员熟知逃生通道、安全出口及应急处置要求,形成常态化机制。
经验分享·笔记·其他·单例模式·vim