当前位置:网站首页 > 编程语言 > 正文

nvim配置(nvim配置lsp补全)



关键词:mac source insight understand 读代码C/C++ neovim nvim

主要诉求:在mac平台上弄一个和source insight功能差不多的工具

和其他工具的对比:

source insight:只有windows版本。通过wine安装后并不稳定,而且快捷键一塌糊涂。毕竟它并不是为mac键盘布局设计的

understand:功能极其强大,但巨大,速度慢,上手起点略高。它似乎是给管理大神用来审核代码用的,而不是日常开发使用。

vscode:可以给它各种赞美词,但在我眼里它就是个又慢又难用的怪物。绝大部分功能它都有,但都不好用。动不动还要你到处找地方用json语法进行配置。一顿操作猛如虎,一看进展原地杵。

操作过程:

1、brew install neovim git python3 fd ripgrep xmake (可能还需要安装很多其他东西,待补充)

2、安装lazy管理包,参考https://www.lazyvim.org/installation。安装完成后运行一下nvim,此时会启动lazy,下载很多插件

3、在2的基础上进行简单的个人化定制。例如我的定制有

a、修改配色。在nvim配置的plugins目录下增加一个colorscheme.lua文件,内容如下

return {

 -- add molokai

 { "tomasr/molokai" },

 -- Configure LazyVim to load gruvbox

 {

  "LazyVim/LazyVim",

  opts = {

   colorscheme = "molokai",

  },

 }

}

b、进行一些简单的设定。主要修改mason和TreeSitter。在plugings目录下增加一个myconfig.lua,添加下述内容

-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim

--

-- In your plugin files, you can:

-- * add extra plugins

-- * disable/enabled LazyVim plugins

-- * override the configuration of LazyVim plugins

return {

 -- disable module

 { "folke/tokyonight.nvim", enabled = false },

 { "catppuccin/nvim", enabled = false },

 --  {"folke/which-key.nvim",enabled = false},

 { "folke/flash.nvim", enabled = false },

 --{"folke/neodev.nvim",enabled = false},

 { "folke/trouble.nvim", enabled = false },

 { "dstein64/vim-startuptime", enabled = false },

 { "RRethy/vim-illuminate", enabled = false },

  

 -- close virtual_text

 {

  "neovim/nvim-lspconfig",

  opts = {

   diagnostics = {

    virtual_text = false,

   },

  },

 },

 

 -- add symbols-outline

 --{

 -- "simrat39/symbols-outline.nvim",

 -- cmd = "SymbolsOutline",

 -- keys = { { " cs", " SymbolsOutline ", desc = "Symbols Outline" } },

 -- config = true,

 --},

 -- add more treesitter parsers

 {

  "nvim-treesitter/nvim-treesitter",

  opts = {

   ensure_installed = {

    "bash",

    "c",

    "cpp",

    "json",

    "lua",

    "python",

   },

  },

 },

  

 -- add any tools you want to have installed below

 {

  "williamboman/mason.nvim",

  opts = {

   ensure_installed = {

    "clangd",

    "pyright",

    "lua-language-server",

    "json-lsp",

   },

  },

 },

 -- config nvim-tree

 -- {

 --  "nvim-tree/nvim-tree.lua",

 --   dependencies = {'nvim-tree/nvim-web-devicons'},

 --   config = function()

 --    require("nvim-tree").setup({

 --    actions = {

 --     open_file = {

 --      quit_on_open = true,

 --     },

 --    },

 --   })

 --   end,

 -- },

}

4、运行nvim,在首界面菜单上可以看到lazy和lazy extra选项,在这两个里面找到outline,把它安装上(怎么安装,摸索一下)

5、正常使用

a、在需要阅读的代码总目录下运行 

git init

git add .

如果代码本身上从git上取下来的,则忽略此步骤。因为lazy里的telescope配置有点问题,导致它找不到git就会报错,所以高低给它整一个

b、在代码总目录下运行下面这个脚本

#!/bin/zsh

#mac平台。linux平台需要改为/bin/bash

#本脚本用于生成compile_command.json,用于neovim+lsp+clangd阅读代码

#应该尽量使用编译工具链生成compile_command.json.

#只有在其他途径都难以获得时,才使用本脚本

#本脚本仅用于阅读代码,不能用于编译

#用法 https://www.bilibili.com/read/cv/gen_compile_commands.sh projectname

filename="xmake.lua"

projectname="fake_xmake"

rm -rf $filename

rm -rf compile_command.json

touch $filename

touch .git

#echo "set_project("$1")" >> $filename

echo "set_project("$projectname")" >> $filename

echo "set_xmakever("2.7.9")" >> $filename

echo "set_version("1.0.0")" >> $filename

#echo " target("$1")" >> $filename

echo " target("$projectname")" >> $filename

echo "   set_kind("binary")" >> $filename

echo "   set_targetdir("https://www.bilibili.com/read/cv/build")" >> $filename

echo "   add_files("https://www.bilibili.com/read/cv/.c")" >> $filename

echo "   add_files("https://www.bilibili.com/read/cv/.s")" >> $filename

#echo "   add_files("https://www.bilibili.com/read/cv/.cpp")" >> $filename

#echo "   add_files("https://www.bilibili.com/read/cv/.cxx")" >> $filename

find . -iname "*.h" -o -iname "*.hpp" -o -iname "*.hxx" |

  xargs -o dirname |sort|uniq|

  while read dir_name ;do 

    echo "   add_includedirs("$dir_name")";

  done >> $filename

xmake project -k compile_commands

这个基本的目的是给当前的所有代码组合一个虚假的编译脚本,方便解析

如果当前工程本身已经有makefile一类的,可以自行解决,而不遵照此脚本

做完上述两部,就可以在代码总目录下运行nvim了

常用快捷键:

<空格> e 打开/关闭文件列表

<空格> cs 打开/关闭outline(函数列表)

光标落在某个变量或者函数上按gd,跳转到定义处

Ctrl+o 跳回上一次位置

Ctrl+i 跳转到下一次位置

光标落在某个变量或者函数上按gr,显示调用/引用

<空格> ff 找文件

<空格> ss 当前文件找 字符串

<空格> sS 全局字符串

<空格> sw 全局查找当前单词

窗口操作和窗口切换

搜索

编辑

代码不全

-------这些都是vim的基操

到此这篇nvim配置(nvim配置lsp补全)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vs如何显示行号(vs2017怎么显示行号)2026-05-19 13:54:05
  • linux yum命令怎么读(linux yum命令详解)2026-05-19 13:54:05
  • ddpm模型跟dpm区别(dpm模型全称)2026-05-19 13:54:05
  • 换国内ip地址(国内ip地址切换)2026-05-19 13:54:05
  • linux文件目录重命名命令(linux文件目录改名)2026-05-19 13:54:05
  • 学前儿童游戏的分类定义(学前儿童游戏的定义 概念)2026-05-19 13:54:05
  • 网页即时聊天(网页即时聊天程序)2026-05-19 13:54:05
  • 结构游戏的分类方法(结构游戏分析)2026-05-19 13:54:05
  • 自带的edge怎么恢复(自带的edge怎么恢复出厂设置)2026-05-19 13:54:05
  • vsz(vsz是什么意思)2026-05-19 13:54:05
  • 全屏图片