2025年nvim配置(nvim配置lsp补全)

nvim配置(nvim配置lsp补全)关键词 mac source insight understand 读代码 C C neovim nvim 主要诉求 在 mac 平台上弄一个和 source insight 功能差不多的工具 和其他工具的对比 source insight 只有 windows 版本 通过 wine 安装后并不稳定 而且快捷键一塌糊涂 毕竟它并不是为 mac 键盘布局设计的 understand 功能极其强大 但巨大 速度慢

大家好,我是讯享网,很高兴认识大家。



关键词: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 = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", 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</em></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span><em style="font-size:17px;" data-v-2505e99a>rm -rf compile_command.json</em></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span><em style="font-size:17px;" data-v-2505e99a>touch \)filename

touch .git

#echo &quot;set_project(&quot;\(1&quot;)&quot; &gt;&gt; \)filename

echo &quot;set_project(&quot;\(projectname&quot;)&quot; &gt;&gt; \)filename

echo &quot;set_xmakever(&quot;2.7.9&quot;)&quot; &gt;&gt; \(filename</em></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span><em style="font-size:17px;" data-v-2505e99a>echo &quot;set_version(&quot;1.0.0&quot;)&quot; &gt;&gt; \)filename

#echo &quot; target(&quot;\(1&quot;)&quot; &gt;&gt; \)filename

echo &quot; target(&quot;\(projectname&quot;)&quot; &gt;&gt; \)filename

echo &quot;   set_kind(&quot;binary&quot;)&quot; &gt;&gt; \(filename</em></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span><em style="font-size:17px;" data-v-2505e99a>echo &quot;   set_targetdir(&quot;https://www.bilibili.com/read/cv/build&quot;)&quot; &gt;&gt; \)filename

echo &quot;   add_files(&quot;https://www.bilibili.com/read/cv/.c")" &gt;&gt; \(filename</em></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span><em style="font-size:17px;" data-v-2505e99a>echo &quot;   add_files(&quot;https://www.bilibili.com/read/cv/.s&quot;)&quot; &gt;&gt; \)filename

#echo &quot;   add_files(&quot;https://www.bilibili.com/read/cv/.cpp")" &gt;&gt; \(filename</em></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span><em style="font-size:17px;" data-v-2505e99a>#echo &quot;   add_files(&quot;https://www.bilibili.com/read/cv/.cxx&quot;)&quot; &gt;&gt; \)filename

find . -iname &quot;.h&quot; -o -iname &quot;.hpp&quot; -o -iname &quot;*.hxx&quot; |

  xargs -o dirname |sort|uniq|

  while read dir_name ;do 

    echo &quot;   add_includedirs(&quot;\(dir_name&quot;)&quot;;</em></p><p data-v-2505e99a data-v-5b474d2a><span style="font-size:17px;" data-v-2505e99a> </span><em style="font-size:17px;" data-v-2505e99a>  done &gt;&gt; \)filename

xmake project -k compile_commands

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

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

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

常用快捷键:

&lt;空格&gt;e 打开/关闭文件列表

&lt;空格&gt;cs 打开/关闭outline(函数列表)

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

Ctrl+o 跳回上一次位置

Ctrl+i 跳转到下一次位置

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

&lt;空格&gt;ff 找文件

&lt;空格&gt;ss 当前文件找字符串

&lt;空格&gt;sS 全局字符串

&lt;空格&gt;sw 全局查找当前单词

窗口操作和窗口切换

搜索

编辑

代码不全

——-这些都是vim的基操

小讯
上一篇 2025-05-17 13:21
下一篇 2025-04-21 23:43

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/205135.html