LJ的Blog

学海无涯苦做舟

0%

有趣的启动Vim的方式

同事用的是 emacs 开发,每次使用 ec 命令时都会弹出一首唐诗,觉得挺有意思的。于是咨询了一下,使用的是 fortune 和阮一峰大神整理的两个 tang300 的数据文件。

于是在 .zshrc 中编写了一个 vim 代码,让 vim 在启动时也会弹出一首唐诗:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
alias v=av
alias nv=av
alias vim=av

function av() {
# res=`curl --connect-timeout 2 https://v1.jinrishici.com/rensheng.txt`
# echo -e "\033[31m $res"
fortune -e tang300
sleep 0.7
if [[ $1 == *.java ]]
then /opt/homebrew/bin/vim $1
else nvim $1
fi
}

这里 sleep 0.7s 是因为不用 gui 的话,在终端中启动 vim 是十分快的,连唐诗没弹出来就已经打开 vim 了。这里判断 java 文件是个人需要,vim 配置支持了很多语言,很多插件在不同的 vim 上有不同的问题,brew 安装的 neovim 无法使用 java auto complete2 插件(应该有编译选项,这里是直接安装编好的二进制包),提示 python3 错误,这里就用 brew 安装的 vim 启动 java 文件。

安装 fortune

1
brew install fortune

阮一峰大神整理的 fortune 数据,将对应的数据放到你的 brew 安装目录/share/games/fortunes,比如我的就是:/opt/homebrew/Cellar/fortune/9708/share/games/fortunes

后记

上文提到因为 brew 安装的 neovim 不带 python3 模块导致 javacomplete 模块无法使用,特意写了一个函数区分文件后缀用不同的 vim 打开,上 github neovim 的 wiki 看了一下,通过 :checkhealth 查看缺失 python3 provider,提示是 python3 中没有 neovim 模块,通过 :help provider-python3 知运行以下命令可以解决:

1
python3 -m pip install --user --upgrade pynvim

再通过 neovim 打开 java 文件果然正常了。所以启动 Vim 的函数也就用了原来的,毕竟还有启动 Vim 跳转到指定行数的方式:

1
2
3
4
5
function av() {
fortune -e tang300
sleep 0.7
nvim $1 $2 $3 $4 $5 $6 $7 $8 $9
}