Ubuntu配置NeoVim (小白可进)

本文详细介绍了如何在Ubuntu22.04环境中安装和配置NeoVim,包括安装GCC和CMake,设置系统环境,安装NerdFont,以及配置插件如Gruvbox、Lualine等,以及LSP配置的初步介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NeoVim配置

NeoVim是什么?

不百度,只说我的理解:是一个 个性化极强的, 上手难度极大的, 不太适配windows的 文本编辑器

虽然说是文本编辑器,但其具有非常活跃的社区去开发插件,于是其插件非常多,也非常强大

系统环境

Ubuntu 22.0.4

安装GCC和CMake

安装GCC

sudo apt update
sudo apt install build-essential
sudo apt-get install manpages-dev

测试

gcc --version

安装CMake

首先卸载掉默认的CMake版本

sudo apt remove --purge --auto-remove cmake

下载另一个库

sudo apt update && \
sudo apt install -y software-properties-common lsb-release && \
sudo apt clean all

然后获得Kitware的key

wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null

将Kitware’s repository 加入到我们的库中

sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main"

开始下载

sudo apt update
sudo apt install kitware-archive-keyring
sudo rm /etc/apt/trusted.gpg.d/kitware.gpg

复制key

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4

下载CMake

sudo apt update
sudo apt install cmake

测试

cmake --version

下载一些必要的软件

sudo apt-get install ninja-build gettext libtool-bin cmake g++ pkg-config unzip curl

安装NeoVim

首先从github上下载代码

git clone https://github.com/neovim/neovim

然后再目录里跑CMake

cd neovim && make CMAKE_BUILD_TYPE=RelWithDebInfo

获得Stable版本

git checkout stable

安装

sudo make install

在这里插入图片描述

授权NeoVim

如果 nvim 命令不可用,需要去改权限

cd /usr/local/bin
sudo chmod u+x nvim

配置插件

配置文件在 ~/.config/nvim 里,但默认应该是没有这个文件夹

cd ~/.config
mkdir nvim
touch init.lua

我的目录是这样的

nvim
    ├── init.lua
    ├── lua
    │   └── v9
    │       ├── keymaps.lua
    │       ├── lsp
    │       │   ├── cmp.lua
    │       │   ├── handlers.lua
    │       │   └── init.lua
    │       ├── plugin_config
    │       │   ├── bufferline.lua
    │       │   ├── gruvbox.lua
    │       │   ├── lualine.lua
    │       │   └── nvim-tree.lua
    │       └── plugins.lua
    └── plugin
        └── packer_compiled.lua

keymaps和plugins

首先需要创建这两个文件

keymaps

local set=vim.opt

vim.wo.number=true

set.backspace='2'
set.showcmd=true
set.laststatus=2
set.autowrite=true
set.autoread=true

set.tabstop=2
set.shiftwidth=2
set.shiftround=true
set.expandtab=true

init.lua 中:

require("v9.keymaps")

需要执行 :source % 来生效

之后在 plugins.lua 中:

local ensure_packer = function()
  local fn = vim.fn
  local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
  if fn.empty(fn.glob(install_path)) > 0 then
    fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path})
    vim.cmd [[packadd packer.nvim]]
    return true
  end
  return false
end

local packer_bootstrap = ensure_packer()

return require('packer').startup(function(use)

  use 'wbthomason/packer.nvim'

  use 'ellisonleao/gruvbox.nvim'
  use 'nvim-tree/nvim-tree.lua'
  use 'neovim/nvim-lspconfig'
  use 'williamboman/mason.nvim'
  use 'williamboman/mason-lspconfig.nvim'
  use 'kosayoda/nvim-lightbulb'
  use 'ray-x/lsp_signature.nvim'
  use 'rmagatti/alternate-toggler'
  use 'windwp/nvim-autopairs'
  use 'mg979/vim-visual-multi'
  use 'gcmt/wildfire.vim'
  use 'tpope/vim-surround'
  
  use{
      'nvim-lualine/lualine.nvim',
      requires = {
        'kyazdani42/nvim-web-devicons',
        opt = true
      }
    }

  use 'akinsho/bufferline.nvim'

  use {
  'nvim-telescope/telescope.nvim',tag = '0.1.1',
  requires ={{'nvim-lua/plenary.nvim'}}
  }

  use 'hrsh7th/cmp-nvim-lsp'
  use 'hrsh7th/cmp-buffer'
  use 'hrsh7th/cmp-path'
  use 'hrsh7th/cmp-cmdline'
  use 'hrsh7th/nvim-cmp'
  use 'hrsh7th/cmp-nvim-lua'
  use 'L3MON4D3/LuaSnip'
  use 'saadparwaiz1/cmp_luasnip'
  use 'onsails/lspkind-nvim'
  use 'jose-elias-alvarez/null-ls.nvim'
  use 'terrortylor/nvim-comment'

  if packer_bootstrap then
    require('packer').sync()
  end
end)

这里面都是我安装的插件,想要改的,可以在进行修改

每次配置完插件都需要 :PackerSync 进行安装/升级

init.lua 中:

require("v9.keymaps")
require("v9.plugins")

nvim-tree

vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1

require("nvim-tree").setup({
  view = {
    adaptive_size = true,
    signcolumn = "yes"
  }
})

vim.keymap.set('n', '<c-b>', ':NvimTreeFindFileToggle<CR>')

lualine

require('lualine').setup {
  options = {
    icons_enabled = true,
    theme = 'dracula',
  },
  sections = {
    lualine_a = {
      {
        'filename',
        path = 1,
      }
    }
  }
}

gruvbox

vim.o.termguicolors = true
vim.cmd [[ colorscheme gruvbox ]]

buffline

local status, bufferline = pcall(require, "bufferline")
if not status then
    vim.notify("没有找到 bufferline")
  return
end
 
bufferline.setup({
	options = {
    close_command = "bdelete! %d",       -- 点击关闭按钮关闭
		right_mouse_command = "bdelete! %d", -- 右键点击关闭
		indicator = {
			icon = '▎', -- 分割线
			style = 'underline',
		},
		buffer_close_icon = '󰅖',
		modified_icon = '●',
		close_icon = '',
		offsets = {
			{
				filetype = "NvimTree",
				text = "File Explorer",
				text_align = "left",
				separator = true,
			},
		},
	},
})

下载Nerd Font

很多图标和字符显示不出来,是因为没有正确的字体,所以需要下载Nerd Font

官网是: [Nerd Font官网](https://www.nerdfonts.com/)

我这里用的是 JetBrains Mono Nerd Font (真的很喜欢Jetbrains的字体)

在这里插入图片描述

要是远程访问的话,需要配置SSH工具的字体

一套下来,基本你的界面就是这样的了

在这里插入图片描述

是不是超级好看!我真的好喜欢这个配色,让人很舒服

LSP配置

还没太弄明白,弄明白了再回来更新

| 文章借鉴:https://medium.com/nerd-for-tech/configuring-neovim-from-scratch-setting-up-ubuntu-3eb8135e5a71

<think>嗯,用户问的是如何在Ubuntu系统中配置Neovim编辑器。首先,我需要回顾一下已有的引用内容。引用[1]提到通过APT安装的Neovim可能版本较旧,所以用户可能需要其他方法,比如使用LinuxBrew。引用[3]详细介绍了用LinuxBrew安装最新版Neovim,并提到配置的部分。引用[2]则是在Windows下的安装,但用户问的是Ubuntu,所以可能不需要这部分。 用户已经知道如何安装,但需要配置。那配置部分应该包括哪些步骤呢?通常Neovim配置文件在~/.config/nvim/目录下,特别是init.lua或者init.vim。现在很多用户转向用Lazy.nvim这样的插件管理器,所以可能需要指导用户安装插件管理器,并配置插件。 引用[3]里提到安装完Neovim后需要配置,但具体步骤没有详细说明。可能需要结合常见的配置流程,比如创建配置文件的结构,安装插件管理器,添加插件,以及可能的语言服务器配置。此外,用户可能希望知道如何安装主题或者代码补全等插件。 另外,用户可能需要知道如何安装依赖项,比如对于LSP(Language Server Protocol),需要安装像nvim-lspconfig这样的插件,并配置相应的语言服务器。或者对于文件搜索,可能需要安装telescope.nvim,并依赖ripgrep或fd-find。 还要考虑是否需要分步骤说明,比如先安装Neovim,然后创建配置文件,安装插件管理器,添加插件配置,最后进行个性化设置。确保每一步都有明确的命令和说明,特别是针对Ubuntu系统可能需要安装的依赖包,比如Python支持或剪贴板集成所需的xclip或wl-clipboard。 另外,用户可能在安装过程中遇到问题,比如权限问题或者依赖缺失,应该在步骤中提前提醒,比如使用sudo apt安装必要的工具,或者检查是否安装了git、curl等。同时,可能需要说明如何验证安装是否成功,比如运行:checkhealth命令。 总结下来,回答的结构应该是:安装最新版Neovim(可能通过LinuxBrew或AppImage),创建配置文件结构,安装插件管理器(如Lazy.nvim),配置插件,安装依赖工具,最后个性化设置。同时,生成相关问题需要考虑用户可能的后续疑问,比如优化配置、插件推荐、LSP设置等。</think>### 如何在 Ubuntu 系统中配置 Neovim 编辑器 #### 1. 安装最新版 Neovim 若系统通过 `apt` 安装的 Neovim 版本较旧(如低于 0.8),可通过以下方法安装最新版: - **方法1: LinuxBrew** 引用[3]中提到的 LinuxBrew 是跨平台包管理器,适合安装最新软件: ```bash # 安装 LinuxBrew(若未安装) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 添加环境变量到 ~/.bashrc 或 ~/.zshrc echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc source ~/.bashrc # 安装 Neovim brew install neovim ``` - **方法2: AppImage** 直接从 [Neovim GitHub Releases](https://github.com/neovim/neovim/releases) 下载 AppImage 并赋予执行权限: ```bash chmod +x nvim.appimage mv nvim.appimage ~/.local/bin/nvim ``` #### 2. 基础配置 Neovim配置文件默认位于 `~/.config/nvim/`,使用 Lua 或 Vimscript 编写: ```bash mkdir -p ~/.config/nvim touch ~/.config/nvim/init.lua # 或 init.vim ``` ##### 示例配置 (`init.lua`) ```lua -- 设置行号与语法高亮 vim.opt.number = true vim.opt.syntax = "enable" -- 设置缩进 vim.opt.tabstop = 4 vim.opt.shiftwidth = 4 vim.opt.expandtab = true -- 启用系统剪贴板(需安装 xclip 或 wl-clipboard) vim.opt.clipboard = "unnamedplus" ``` #### 3. 使用 Lazy.nvim 管理插件 Lazy.nvim 是轻量级插件管理器,引用[1]中提到可快速配置: ```lua -- 在 init.lua 中添加以下内容 local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath, }) end vim.opt.rtp:prepend(lazypath) -- 插件列表 require("lazy").setup({ "folke/tokyonight.nvim", -- 主题插件 "nvim-telescope/telescope.nvim", -- 文件搜索 "neovim/nvim-lspconfig", -- LSP 支持 }) ``` #### 4. 安装依赖工具 部分插件需要外部工具支持: ```bash # 安装 Telescope 的依赖 sudo apt install ripgrep fd-find # 安装剪贴板支持(X11 或 Wayland) sudo apt install xclip # X11 sudo apt install wl-clipboard # Wayland # 安装 LSP 语言服务器(以 Python 为例) sudo apt install python3-pynvim npm install -g pyright # Python LSP ``` #### 5. 验证配置 运行 `nvim` 后执行: ```vim :checkhealth # 检查系统依赖和配置状态 :Lazy # 查看插件管理界面 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值