首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏编译思想

    详解nvim内建LSP体系与基于nvim-cmp的代码补全体系

    为了更加方便快速的使用nvim的LSP模块,nvim官方提供了neovim/nvim-lspconfig这个插件。 而nvim-treesitter则是tree-sitter和nvim之前的封装桥接插件。在nvim中要想体验代码高亮,基本上都离不开该插件。 但是,我们使用nvim想要搭建一套趁手的代码编写环境,基本上是离不开nvim-treesitter的,像上面的nvim-lspsaga在使用的过程中,也是会调用nvim-treesitter相关的API nvim的LSP、lspconfig与lspsaga之间的关系 看到这里,可能有的小伙伴对目前介绍的nvim内置的LSP模块、nvim-lspconfig与nvim-lspsaga插件的关系还有些疑惑, nvim-cmp简介 nvim-cmp是一款通过lua编写的,nvim中的代码补全引擎框架插件。

    3.6K12编辑于 2023-10-18
  • 来自专栏编译思想

    lazy-nvim插件管理器基础入门

    一篇通过使用lazy.nvim进行nvim插件管理的入门笔记。 ~/AppData/Local/nvim -- bootstrap lazy.nvim -- . = { "nvim-tree/nvim-tree.lua", version = "*", dependencies = {"nvim-tree/nvim-web-devicons dependencies = {"nvim-tree/nvim-web-devicons"}:说明该插件依赖另一个插件:"nvim-tree/nvim-web-devicons",同样是一个short /share/nvim/lazy/lazy.nvim,~/.local/share/n vim/lazy/lualine.nvim,~/.local/share/nvim/lazy/nvim-web-devicons

    4.1K30编辑于 2023-10-18
  • 来自专栏石头岛

    vim-IDE进化02-nvim自身配置

    配置好基础环境之后,开始对nvim进行配置,这个配置是非常有必要的,nvim 的默认配置实际上是不附合我们的需求的。 在本系列文中说提到vim都是指nvim,本人的习惯改不过来。 nvim 的配置非常之多,要配置成适我们的IDE,要配置各个细节。 从本节开始,每一次的改进都会一点一点随着文章添加进这个配置,每一篇的配置都基于上一篇。 主要从几个方面进行配置: 编码设置 分屏设置 按键映射 其他设置 编辑配置文件 ~/.config/nvim/init.vim "=================================

    63530编辑于 2023-10-23
  • 来自专栏石头岛

    vim-IDE进化01-iterm2、nvim、oh-my-zsh环境配置

    配置存放仓库 不定期更新配置 https://github.com/forfreeday/vim 先上效果图 图片 环境准备 macOs iterm2 on-my-zsh nvim 这三个是什么关系 iterm2 是终端工具,负责调用终端命令行工具 on-my-zsh 是 bash 工具,对bash增加了一些优化 nvim 是vim的改进版 插件依赖环境 python3 nodejs pip3 如果已经有了相关环境不需要安装 wiki/themes agnoster bira 我选 agnoster 这个风格,因为跟 air-line 一样的风格 vim ~/.zshrc ZSH_THEME="agnoster" 安装 nvim 官方Github brew install neovim nvim自动配置 nvim 默认路径,如果没有就手动创建一个:~/.config/nvim/init.vim。 让 nvim 替换vim alias vim='nvim' alias vi='nvim' 好的,到这里基本的环境就搞定了,接下来需要对vim进行一番骚操作。

    97020编辑于 2023-10-23
  • 来自专栏编译思想

    从null-ls归档再看nvim的代码格式化与lint方案

    在之前的文章中《详解nvim内建LSP体系与基于nvim-cmp的代码补全体系 - 知乎 (zhihu.com)》中我们提到了null-ls这个插件的目的与作用:诸如prettier、eslint等本身不属于 代码格式化方案 nvim的代码格式化有一个比较经典的插件:mhartington/formatter.nvim。插件安装就不再赘述了,这里主要讲解下formatter这个插件的基本配置思路。 在不使用null-ls的情况下,lint方案实际上完全可以通过nvim自己的lsp模块配置外部工具完成。 先说代码格式化,在nvim中,格式化有两种形式,一种是调用外部独立专用的格式化工具来完成代码格式化;另一种就是通过nvim提供的lsp模块的format来进行格式化,从本质上来讲,后者和前者是一样的,毕竟语言服务不过也是一种特殊的外部工具而已 PS:笔者已经将自己的nvim配置中的null-ls和需要基于null-ls的prettier.nvim、eslint.nvim都删除了;换成使用formatter.nvim和lspconfig启用eslint

    92430编辑于 2023-10-18
  • 来自专栏Coxhuang

    NeoVim 安装及配置

    /init.vim(默认没有该文件) mkdir -p ~/.config/nvim cd ~/.config/nvim touch init.vim 终端输入nvim 至此,NeoVim安装结束 /autoload/plug.vim 配置 vim ~/.config/nvim/nit.vim call plug#begin('~/.config/nvim/plugged') call plug #end() ~/.config/nvim/plugged表示插件安装路径 #1.2.2 主题 git clone git@github.com:ellisonleao/gruvbox.nvim.git ~/.config/nvim/plugged/gruvbox.nvim git clone git@github.com:kyazdani42/nvim-web-devicons.git ~/.config /nvim/plugged/nvim-web-devicons call plug#begin('~/.config/nvim/plugged') Plug 'ellisonleao/gruvbox.nvim

    4.8K21编辑于 2022-05-09
  • 来自专栏浪浪山下那个村

    neovim 从0开始配置优化

    快速使用方法: git clone https://git.zeekling.cn/linux/nvim-config.git ~/.config/nvim # 或者 git clone ssh://git @git.zeekling.cn:222/linux/nvim-config.git ~/.config/nvim 打开nvim就可以自动安装插件了。 /neo-tree.nvim", branch = "v3.x", dependencies = { "nvim-lua/plenary.nvim", "nvim-tree /nvim-web-devicons", -- not strictly required, but recommended "MunifTanjim/nui.nvim", -- } }, { "tiagovla/scope.nvim", lazy = false }, { "akinsho/bufferline.nvim"

    1K20编辑于 2024-06-09
  • 来自专栏MasiMaro 的技术博文

    从零开始配置vim(26)——LSP UI 美化

    本篇讲作为一个补充,我们来优化一下LSP 相关的显示 配置 UI 原始的 lsp 显示有点素,我们使用插件对它进行一些美化,这里使用插件 lspsaga.nvim 。 使用如下的代码进行安装 use{"glepnir/lspsaga.nvim"} 然后我们新建一个 plugin-config/lspsaga.lua 对它进行配置 local saga = require "gd", "<cmd>Lspsaga peek_definition<CR>", {silent = true, noremap = true}) -- 跳转到定义 vim.api.nvim_buf_set_keymap 使用下面的代码进行安装 use {'simrat39/symbols-outline.nvim'} 还是额外的给它创建一个文件保存它的配置 require("symbols-outline").setup () 配置完成之后我们可以使用 :SymbolsOutline 命令来控制窗口的打开和关闭,为了方便我们可以绑定到一个快捷上 vim.api.nvim_set_keymap("n", "<leader>

    2.9K30编辑于 2022-10-28
  • 来自专栏goodcitizen

    老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim

    tree-sitter 是一个解析器生成工具和增量解析库,在 nvim 中主要用作 latex 语言解析器、以及 rainbow-delimiters.nvimnvim-treesitter.nvim /nvim.appimage 报错: /tmp/.mount_nvim.aw3KspQ/usr/bin/nvim: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /tmp/.mount_nvim.aw3KspQ/usr/bin/nvim) /tmp/.mount_nvim.aw3KspQ/usr/bin/nvim: /lib64 /usr/local/bin/nvim > nvim --version NVIM v0.9.2 Build type: Release LuaJIT 2.1.1692716794 system 退出 lazy、退出 nvim,插件安装路径位于:~/.local/share/nvim 目录下。再次进入 nvim,将看到欢迎界面: 基本功能已经可用,有几个未安装的插件将继续安装。

    1.4K10编辑于 2024-08-01
  • 来自专栏JVMGC

    15.1K Star酷!!!一个项目再次提升你的编码体验

    它通过集成的lazy.nvim工具,提供了一种易于定制和扩展配置的方式,结合了从头开始配置的灵活性和预配置设置的便利性。 它不仅提供了极速的响应体验和一系列合理的默认设置,包括选项、自动命令和键位映射,还通过lazy.nvim工具简化了配置的定制和扩展过程。 ://github.com/LazyVim/starte.~/.config/nvim 3.移除.git文件夹: r. -r.~/.config/nvim/.git 4.启动Neovim: nvim Windows安装 1.备份Neovim配置: Move-Ite.$env:LOCALAPPDATA\nvi. $env:LOCALAPPDATA\nvim 3.移除.git文件夹: Remove-Ite.$env:LOCALAPPDATA\nvim\.gi.-Recurs.

    50110编辑于 2024-06-25
  • 来自专栏刘悦的技术博客

    Win11平台安装和配置NeoVim0.8.2编辑器搭建Python3开发环境(2023最新攻略)

    NeoVim有两个启动程序,分别是nvim-qt.exe和nvim.exe,前者是基于Gui的客户端,后者则基于终端Terminal,解压之后,最好将bin目录配置到系统的环境变量:C:\nvim-win64 其后,在C:\Users\liuyue\AppData\Local\nvim\目录中建立NeoVim的初始化配置init.vim: call plug#begin('C:\nvim-win64\nvim-win64     修改init.vim配置: call plug#begin('C:\nvim-win64\nvim-win64\share\nvim\plugged') Plug 'navarasu/onedark.nvim \nvim-win64\share\nvim\plugged') Plug 'navarasu/onedark.nvim' Plug 'pablopunk/native-sidebar.vim' \nvim-win64\share\nvim\plugged') Plug 'navarasu/onedark.nvim' Plug 'pablopunk/native-sidebar.vim'

    2.7K30编辑于 2023-03-01
  • 来自专栏MasiMaro 的技术博文

    从零开始配置 vim(18)——终端模式

    我们只需要在普通模式下映射一个快捷键 vim.api.nvim_set_keymap("n", "<A-=>", ":split term://zsh<CR>", {noremap = true, silent = true}) 我们再试着定义一个关闭终端的快捷键,我这里的实现思路是在终端模式中,先退回到普通模式,然后按照普通模式的思路来退出一个 buffer vim.api.nvim_set_keymap( 来强制结束 窗口间跳转 我们发现在打开终端之后,我们的 bufferline 插件为它分配了一个新的标签,我们还是沿用原先的使用 leader 的思路 vim.api.nvim_set_keymap(" 还是沿用我们之前在普通缓冲区定义的那些快捷键 vim.api.nvim_set_keymap("t", "<leader>h", "<C-\\><C-n><C-w>h", {noremap = true ("TERM_MODE", {clear = true}) vim.api.nvim_create_autocmd({"TermOpen"}, { pattern = "*", group

    2.7K10编辑于 2022-09-27
  • 来自专栏程序员小助手

    【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新

    /nvim-macos/bin/nvim Linux (x64) Tarball 1. Download nvim-linux64.tar.gz 2. Run nvim AppImage 1. Download nvim.appimage 2. Run chmod u+x nvim.appimage && . nvim-win64.msi — 16个发行包: • nvim-linux64.deb • nvim-linux64.deb.sha256sum • nvim-linux64.tar.gz • nvim-linux64 .tar.gz.sha256sum • nvim-macos.tar.gz • nvim-macos.tar.gz.sha256sum • nvim-win64.msi • nvim-win64.msi.sha256sum • nvim-win64.zip • nvim-win64.zip.sha256sum • nvim.appimage • nvim.appimage.sha256sum • nvim.appimage.zsync

    49320编辑于 2022-12-20
  • 来自专栏Coxhuang

    Vim配置C++ debug环境

    /wiki/C-C---Rust-(via--codelldb)) nvim-dap // vim 插件 (https://github.com/mfussenegger/nvim-dap) nvim-dap-virtual-text // vim 插件 (https://github.com/theHamsta/nvim-dap-virtual-text) rcarriga/nvim-dap-ui // vim 插件 (https ://github.com/rcarriga/nvim-dap-ui) 准备 安装vim插件 Plug 'mfussenegger/nvim-dap' Plug 'theHamsta/nvim-dap-virtual-text ' Plug 'rcarriga/nvim-dap-ui' 2. /data/debug/tools/ ~/.config/nvim/data/debug/codelldb-x86_64-darwin.vsix 3.

    1.5K30编辑于 2022-05-23
  • 来自专栏MasiMaro 的技术博文

    从零开始配置vim(20)——模糊查询

    安装 我们使用下面的代码进行安装 use { 'nvim-telescope/telescope.nvim', tag = '0.1.0', requires = { {'nvim-lua/plenary.nvim '} } } 为了更好的使用体验可以安装一个 nvim-treesitter 插件,它主要用于代码高亮,它采用语法分析的形式对代码进行高亮,相比于使用正则表达式来说效果更好,后面会详细的介绍如何进行配置 这个时候我们的安装代码应该改为 use { 'nvim-telescope/telescope.nvim', tag = '0.1.0', requires = { {'nvim-lua /plenary.nvim'} , { 'nvim-treesitter/nvim-treesitter', run = function() require('nvim-treesitter.install 它扩展了 Telescope 插件的功能 use { "nvim-telescope/telescope-file-browser.nvim" } 并且我们需要在 telescope 配置中加载这个扩展

    1.6K20编辑于 2022-09-27
  • 来自专栏MasiMaro 的技术博文

    从零开始配置 vim(13)——标签页插件

    这里我比较喜欢使用 bufferline 这个插件 安装 首先我们来安装它, 在使用 packer 的前提下,你可以使用如下代码 -- using packer.nvim use {'akinsho/ bufferline.nvim', tag = "v2.*", requires = 'kyazdani42/nvim-web-devicons'} 它的效果如下 配置 注意这里的 v2 只支持 ("n", "<leader>bg", ":BufferLinePick", {noremap = true, silent = true}) vim.api.nvim_set_keymap("n", "gt", ":BufferLineCycleNext<CR>", {noremap = true, silent = true}) vim.api.nvim_set_keymap("n", "gT" 主要是这么几行 --- 配置tabline快捷键,主要以 t开头代表 t --- 关闭当前标签页 --vim.api.nvim_set_keymap("n", "tc", ":tabclose<CR>"

    1.6K10编辑于 2022-09-21
  • 来自专栏MasiMaro 的技术博文

    从零开始配置vim(23)——lsp基础配置

    但是现在有了更方便的方式了我们使用 nvim-lsp-installer 插件进行安装。 use { "williamboman/nvim-lsp-installer", "neovim/nvim-lspconfig", } 我们还是一样,在plugin-config 目录下创建一个配置文件用来配置 nvim-lsp-installer 插件 require("nvim-lsp-installer").setup {} 我们可以使用 LspInstallInfo 命令来查看当前lsp服务的安装情况 另外再在 ~/.config/nvim/lua 目录创建一个 lsp目录,专门用来保存语言的配置。 看到这里不知道小伙伴是否有点头晕了,这次我们安装了好多内容,也创建了不少配置文件,下面来回顾一下 安装 nvim-lspconfig 来用于lsp的配置 安装 nvim-lsp-installer 来安装不同语言的

    4.2K10编辑于 2022-09-28
  • 来自专栏博客·技术专栏

    Vim折腾PowerShell篇

    关于内容移步官网:https://chocolatey.org/install#psdsc 安装plug-vim 这是一款用来扩展nvim的插件管理器,nvim可以越发强大,主要就是靠插件的集成,也支持 Lua脚本(对nvim和vim都有版本限制),所以建议各位都安装vim8.3+或者neovim0.7+的版本。 call plug#begin('~/.AppData/Local/nvim/plugged') Plug '插件名称' Plug '...' "Plug 'kyazdani42/nvim-web-devicons' " Coc 智能补全插件引擎 Plug 'neoclide/coc.nvim', {'branch': 'release'} " 在nvim命令模式下输入:PlugInstall,它会自己安装所有的插件,过程也需要科学上网,并且可能不会一次成功,多试几次就好了。

    2.1K20编辑于 2022-11-24
  • 来自专栏MasiMaro 的技术博文

    从零开始配置vim(24)——自动补全

    针对代码的补全我们可以基于 lsp的配置使用插件来完成,这里我推荐使用 nvim-cmp插件 安装 我们使用下面的代码进行安装 -- nvim-cmp use {'hrsh7th/cmp-nvim-lsp '} use {'hrsh7th/cmp-buffer'} use {'hrsh7th/cmp-path'} use {'hrsh7th/cmp-cmdline'} use {'hrsh7th/nvim-cmp '} use {'hrsh7th/vim-vsnip'} use {'rafamadriz/friendly-snippets'} -- lspkind use {'onsails/lspkind-nvim '} 看着好像要安装好多插件,但是真正重要的就只有 nvim-cmp 剩下的以 cmp- 开头的都是在指定补全的来源,就想 neovim 自带补全功能可以来源于当前buffer、路径、引用一样,该插件的补全项也来源于各个地方 例如 cmp-nvim-lsp来源于语言的 lsp 服务端、cmp-buffer来源于当前 buffer 、cmd-path来源于路径 配置 我们还是按照原来的惯例进行配置,新增一个 plugin-config

    3.2K40编辑于 2022-09-30
  • 来自专栏程序那些事儿

    使用 lua 编写 neovim 插件

    简单的代码如下: local api = vim.api local buf, win local function open_window() buf = api.nvim_create_buf (false, true) -- create new emtpy buffer api.nvim_buf_set_option(buf, 'bufhidden', 'wipe') -- get dimensions local width = api.nvim_get_option("columns") local height = api.nvim_get_option("lines win_height, row = row, col = col } -- and finally create it with buffer attached win = api.nvim_open_win 在 neovim 中,我们可以通过api.nvim_buf_set_keymap来进行输入按键的功能绑定。 函数导出 最后,我们可以将我们的插件中的函数进行导出,也就是让它们可以被执行。

    1.7K40编辑于 2023-03-07
领券