从vim转向nvim

原因

大型cpp项目中经常用到【符号跳转】等功能。
vim上有两种选择,1: 使用tags系统进行静态分析,完成符号跳转;2:安装LSP支持。
对于第一种方法,即使是宣称比ctags好用的gtags,也存在无法跳转准确的情况,而ctags经常出现各种编译问题,难以解决。
对于第二种方法,给vim安装lsp过程较繁琐,如果更换了开发机就需要大量时间配置。

因此,尝试使用nvim,减少更换开发机带来的配置工作量,同时还能使用lsp进行准确的符号跳转等语义分析功能。

开始

0x00 安装nvim

我选择build安装,因为开发机上是多用户环境,package安装容易污染环境。

build nvim

nvim官方给出的过程,因此先作pre

pre

  1. 第一步,装一些包
  2. 第二步
    git clone https://github.com/neovim/neovim
  3. 第三步 build


这里选择stable,先checkout stable

设置cmake参数
make CMAKE_EXTRA_FLAGS="-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=${HOME}/.install/neovim"

检查以下PATH,如果没错的话就OK了

(base) tangke@jy-apu-engine-test-ba220200319:~/neovim$ nvim --version
NVIM v0.7.0
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -DNVIM_TS_HAS_SET_ALLOCATOR -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wdouble-promotion -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wimplicit-fallthrough -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=malloc -Wsuggest-attribute=cold -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/home/tangke/neovim/build/config -I/home/tangke/neovim/src -I/home/tangke/neovim/.deps/usr/include -I/usr/include -I/home/tangke/neovim/build/src/nvim/auto -I/home/tangke/neovim/build/include
Compiled by tangke@jy-apu-engine-test-ba220200319.ops.megvii-inc.com

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/home/tangke/.install/neovim/share/nvim"

Run :checkhealth for more info

0x01 从一个已有配置开始定制

lunar neovim比较火,但是需要看视频来学习配置是什么意思。
从zhihu上找了一个还不错
github:https://github.com/nshen/learn-neovim-lua
zhihu:https://zhuanlan.zhihu.com/p/434731678

clone

posted @ 2022-06-24 16:10  ijpq  阅读(868)  评论(0编辑  收藏  举报