archibate / vimrc

小彭老师自用 NeoVim 整合包
342 stars 53 forks source link
dotfiles lua neovim neovim-configuration neovim-lua-plugin neovim-plugins personal-config vim vim-configuration vim-plugin vim-plugins vimrc

小彭老师自用 NeoVim 整合包

本整合包内含大量实用插件,包括智能补全、语法高亮、错误提示、快速跳转、全局搜索、集成终端、文件浏览、Git 支持等。且安装方便,小彭老师自用同款,纯 Lua 配置,是您基于 NeoVim 的 IDE 不二之选。

图片演示

一键安装(推荐)

无需克隆本仓库,直接在命令行中输入以下命令即可安装:

curl -SLf https://142857.red/files/nvimrc-install.sh | bash

如果安装遇到问题,欢迎通过 GitHub issue 反映,我会尽快帮您解决。

安装完成后,输入 nvim 即可使用,按 q:wqa 即可退出。

如需更新,重新执行上面的一键安装命令即可。

推荐为您的终端安装 Nerd Fonts 字体,并把终端设置为该字体。然后在 nvim 中输入 :lua require'archvim.options'.nerd_fonts = true,这样就可以显示文件类型图标了。

小彭老师用的是 JetBrainsMono Nerd Font Regular,字号 16,这是一款专为程序员打造的等宽字体。

如需自己定制插件参数、移除不想要的插件或添加更多插件:可以编辑 ~/.config/nvim/lua/archvim/plugins.lua,里面有全部的插件列表,删除或添加即可。

注意:删除或添加了新插件后,需要运行 :PackerSync:PackerCompile 命令才能生效。

常见问题

支持的 Linux 发行版

开始上手

常用键位映射

i j k c d w 等 Vim 原生键位不再赘述,此处仅介绍本插件整合包额外增加或不同的。

以下默认读者知晓 Vim 的四大模式:普通模式(NORMAL)、插入模式(INSERT)、可视模式(VISUAL)、终端插入模式(TERMINAL)。

不同模式下有独立的键位映射,以下除非特殊说明,默认指的是普通模式下的映射。

太长不看(简略版)

基本

跳转

重构

预览

开关

标签页

文本查找

选择

举一反三:dat 删除当前注释块,cip 修改当前参数

移动

...以此类推,所有英文字母同上“选择”所述...

换位

括号

可视(VISUAL)模式中:

普通(NORMAL)模式中:

窗口

CMake 项目

内置终端

文件树

C/C++/CMake 配置

建议使用本插件自带的 cmake-tools 插件的 :CMakeGenerate:CMakeBuild 命令来构建项目。

这样是无需任何配置,所有 CMakeLists.txt 中配置的头文件都能找得到,语法高亮和代码提示就是正确的。

如果你想要手动命令行调用 cmake,那么也请指定 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON 参数:

cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

这会生成对 C++ 代码补全必不可少的 build/compile_commands.json 文件。

否则,本插件的语法高亮和代码提示插件将无法确定头文件目录,语法检测可能无法正常工作(俗称“飙红线”)。

:CMakeGenerate 实际上就是默认自带了 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON 这个参数,建议始终通过 :CMakeGenerate:CMakeBuild 来构建项目。

如果你用的是其他构建系统,可能需要自己在项目根目录下生成 compile_commands.json 文件。

如需指定没有 compile_commands.json 时默认的 Clangd 选项(单文件编译的情况),编辑文件 ~/.config/clangd/config.yaml,内容为:

CompileFlags:
  Add:
    - --no-cuda-version-check
    - -D__clangd__  # 添加你的自定义选项
  Remove:
    - -forward-unknown-to-host-compiler
    - --expt-*
    - -gencode*
    - --generate-code*
    - -Xfatbin*
    - -arch=*
    - -rdc=*

内含插件列表

完整插件列表,请查看 lua/archvim/plugins.lua,你可以编辑该文件,从而修改配置或添加新的插件。

语法高亮支持

c,cpp,cuda,cmake,lua,python,html,javascript,css,json,bash,regex,markdown,glsl,vim,vimdoc

你可以输入 :TSInstall <language> 来安装更多语言的语义高亮支持。

用于代码补全的 LSP 服务器

clangd,pyright,lua_ls

可以通过执行 :Mason 或修改 lua/archvim/config/lspconfig.lua 来安装更多语言的 LSP 补全支持。

脚本会创建或修改的文件

/usr/bin/nvim
/usr/bin/.nvim.appimage.noextract
~/.config/nvim
~/.local/share/nvim
~/.config/clangd
~/.clang-format

欲了解本整合包安装与打包原理,请看 .compile.sh

手动安装(不推荐)

如果你有稳定的 GitHub 外网连接,并且已经自己安装好了 NeoVim 版本 v0.10.0 以上,也可以尝试运行以下命令手动安装:

test -f ~/.config/nvim && mv ~/.config/nvim{,.backup}
git clone https://github.com/archibate/vimrc ~/.config/nvim
git clone --depth 1 https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim
bash ~/.config/nvim/install_deps.sh

手动安装的好处是你以后只需 git pull 就可以更新上小彭老师最新改动,缺点是他不会自动为你安装依赖项,也不会帮你升级 NeoVim 版本,不建议使用。

初次进入会有一些报错,若提示你包缺失,输入 :PackerInstall 即可自动安装全部所需的包(需要连接 GitHub),重启后稍等片刻,即可开始使用 nvim。

其他软件的配置文件参考

dotfiles/ 文件夹下有其他小彭老师自用的配置文件,欢迎参考。

$ ls -A dotfiles
.bashrc  .clang-format  .gdbinit  .inputrc  .zshrc  .config/

其中 .clang-format 是我推荐的 C/C++ 代码格式化方案,如果你是一键安装脚本那已经自动帮你拷贝到 ~ 了。

安装以后,当你在一个 C++ 源码中运行 :Neoformat 命令时,会采用其中的方案。但如果当前项目根目录下有 .clang-format 文件,则优先采用当前项目的。

旧版本 Vimrc

本分支为最新 NeoVim 版插件整合包,对于来自 BV1H44y1V7DW 视频想领取老版 Vim 插件的同学,请移步 main 分支

另外,NeoVim(~/.config/nvim)和 Vim(~/.vim)的配置完全独立,互不干扰,所以你可以同时拥有两个配置,取决于你启动的是 nvim 还是 vim

配色方案

:colorscheme zephyr  " 默认
:colorscheme gruvbox
:colorscheme nord

以下为写给小彭老师自己看的

通过运行 ./.compile.sh 生成 .build_cache/nvimrc-install.sh 这个一键安装脚本(约 25 MiB)后,我会把他发布到 142857.red。

我会运行 docker run -v $PWD/.build_cache:/mnt -it --rm ubuntu:20.04 来测试兼容性。

在 Ubuntu 容器中,我会用 NODEP=1 bash nvimrc-install.sh 避免使用包管理器,加速安装,方便测试。

TODO: 适配 nvim v0.10.0?