Docker打包一个配置好Vim的Arch系统全过程(持续更新)

Vim是一个Linux上最好用的编辑器,但是其复杂的配置让人头疼,本文将自己配置好Vim的Arch容器进行打包,最终会放到Github中去

本文选择体积最小的Arch Linux作为Docker镜像开启全部过程,其他Linux发行版可能会有所区别

一、前期准备

  1. 使用该命令初始化pacman要不然pacman不能用
curl -fsSL "https://repo.archlinuxcn.org/x86_64/glibc-linux4-2.33-4-x86_64.pkg.tar.zst" | bsdtar -C / -xvf -
  1. 更换pacman的镜像源 这个过程不太容易,我发现Docker的Arch镜像什么编辑器也没有。于是我把自己电脑的nano编辑器传入Docker容器里面去了

然后手动编辑/etc/pacman.d/mirrorlist添加

Server = https://mirrors.sjtug.sjtu.edu.cn/manjaro/stable/$repo/$arch

如果是Manjaro就简单了直接使用命令:pacman-mirrors -i -c China就可以了

  1. 获取最新的包
pacman -Sy
  1. 安装前期准备的软件 配置Neovim肯定得安装一个Neovim吧,还需要下载东西的wget和git,最终命令如下所示:
pacman -S neovim wget git

二、配置NVim的核心功能

我认为Nvim的核心功能主要有下面几个部分

  1. 自动补全
  2. 目录树
  3. 主题

我们先创建一下Nvim的配置文件,命令mkdir -p ~/.config/nvim

然后我们安装NVim的插件管理器,步骤如下:

步骤1. 创建~/.config/nvim/autoload/plug.vim文件

步骤2. 将Gist代码片段的内容复制进去

2-1、自动补全的配置

关于自动补全可以选择的有很多,比如Ncm,COC,Kite等等许多

本文使用Kite(一个基于人工智能的补全插件)来完成该功能

步骤1. 下载Kite 命令为: bash -c "$(wget -q -O - https://linux.kite.com/dls/linux/current)"

步骤2. 配置Kite 命令为

mkdir -p ~/.config/nvim/pack/kite/start/kite
git clone https://github.com/kiteco/vim-plugin.git ~/.config/nvim/pack/kite/start/kite/

如果没有代理的话,可以将上面的Github仓库替换成https://gitee.com/liu__yang/vim-plugin

接下来,我将进行简单的配置这个插件,使用Nvim编辑~/.config/nvim/init.vim文件,然后加入下面的内容,我对内容添加了注释,保证通俗易懂。

" 设置支持语言 Python, C++, Go
let g:kite_supported_languages = ['python', 'cpp', 'go']

" Kite 状态条
set statusline=%<%f\ %h%m%r%{kite#statusline()}%=%-14.(%l,%c%V%)\ %P
set laststatus=2  " always display the status line

Tip

我加入的配置仅仅是最基本的配置,关于NVim使用Kite的全部文档可以在这里查看https://github.com/kiteco/vim-plugin

2-2、主题配置

使用Nvim编辑~/.config/nvim/init.vim文件,然后加入下面的内容

call plug#begin("~/.vim-plug")
Plug 'connorholyday/vim-snazzy'
call plug#end()

let g:SnazzyTransparent = 1
color snazzy

解释一下:两个call之间是用来存储插件的,不可以放普通的配置

最后执行:PlugInstall进行安装

2-3、常规配置

使用Nvim编辑~/.config/nvim/init.vim文件,然后加入Gist代码片段的内容

2-4、文件树的配置

使用Nvim编辑~/.config/nvim/init.vim文件,将下面的代码放在call plug#begin("~/.vim-plug")下面

Plug 'preservim/nerdtree',{ 'on': 'NERDTreeToggle' }

然后两个call外添加按键映射,便可以使用T召唤出文件树来

map T :NERDTreeToggle<CR>

到此你的init.vim文件应该是这样的Gist代码片段

到此Arch-Nvim1.0版本已经制作完毕,该Docker镜像发表在了我的Github中。

三、后续优化

关于Neovim的插件有很多,下面我列举一些常用的插件,仅供选择。

updatedupdated2022-03-112022-03-11