• 从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

  • 相关阅读:
    关于SOA和AOP
    网络通信
    网络层ddos与应用层ddos区别
    python 模块发布及使用
    安全等级划分依据与应急响应流程
    ssl与ssh
    列表计数及插入
    博客首语
    聊聊当今市面上的国产耳机
    “互联网+”背景下使用微信公众号增强班主任工作与整合教学资源(泰微课)
  • 原文地址:https://www.cnblogs.com/ijpq/p/16409296.html
Copyright © 2020-2023  润新知