Ubuntu配置NeoVim (小白可进)

1 篇文章 0 订阅
1 篇文章 0 订阅
本文详细介绍了如何在Ubuntu22.04环境中安装和配置NeoVim,包括安装GCC和CMake,设置系统环境,安装NerdFont,以及配置插件如Gruvbox、Lualine等,以及LSP配置的初步介绍。
摘要由CSDN通过智能技术生成

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

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值