使用容器启动 Neovim 并自启动 Neovim 和 NvimTree
2024-12-23 tech vim linux neovim nvchad 4 mins 3 图 1660 字
我上一篇文章《neovim 安装使用备忘》已经有点老了,这会儿 NvChad 已经更新到2.5了。按照之前的办法已经无法安装了。
1. 编写 Dockerfile
FROM alpine:latest
# 设置工作目录
WORKDIR /root
# 安装必要的软件包:git、nodejs、neovim 等
RUN apk add --no-cache git nodejs neovim ripgrep build-base wget && \
git clone https://github.com/NvChad/starter ~/.config/nvim && \
nvim --headless +PlugInstall +qall
CMD ["nvim"]
- 自动安装插件:使用 nvim –headless +PlugInstall +qall 来在容器构建过程中自动安装 Neovim 插件。–headless 使得 Neovim 在没有 GUI 的情况下运行,而 +PlugInstall +qall 则是自动安装插件并退出 Neovim。
2. 构建镜像
docker build -t nvchad:v20241223 .
构建完成后,Docker 会生成一个镜像,可以用于后续的容器启动。
3. 使用 docker-compose
version: '3.2'
services:
nvChad:
image: nvchad:v20241223
network_mode: bridge
container_name: nvchad
volumes:
- /root/Workspace:/root/Workspace
command: nvim +NvimTreeToggle
working_dir: /root/Workspace
tty: true
stdin_open: true
- command: nvim +NvimTreeToggle:每次容器启动时,nvim 会自动执行 :NvimTreeToggle,打开 NvimTree 文件树视图。
4. 通过 docker exec 进入容器时自动打开 Neovim
docker exec -it nvchad nvim +NvimTreeToggle
nvim +NvimTreeToggle:容器启动时,nvim 会自动执行 :NvimTreeToggle,打开 NvimTree 文件树视图。
5. 后续
push 镜像到docker.io了:
docker tag nvchad:v20241223 kelvinblood/nvchad:v20241223
docker push kelvinblood/nvchad:v20241223
6. 快速打开容器
基于步骤4,我写了一个 alias,方便在目录下快速进入容器中,它需要预设该容器的名字为 文件夹名+nvchad
:
dneo() {
# 如果没有参数,获取当前文件夹名并追加 "-nvchad"
if [ -z "$1" ]; then
local folder_name=$(basename "$PWD")
local container_name="${folder_name}-nvchad"
docker exec -it "$container_name" nvim +NvimTreeToggle
else
docker exec -it "$1" nvim +NvimTreeToggle
fi
}
例如我在文件夹 workspace
下,此时有一个 workspace-nvchad
的容器,输入 dneo
命令即可快速进入。