从源码编译 vim,以支持使用系统粘贴板。

why

" + Y " + P 这两组组合键可以实现 vim 与系统粘贴板之间的共享数据。重要性可想而知,至少有时还是需要和外部交换粘贴板的。

如果不自己编译源码,唯一的办法就是额外安装GUI版本的 vim。很蠢,不是吗?

编译

  1. 下载源代码, https://github.com/vim/vim 使用 git git clone https://github.com/vim/vim.git

  2. 安装依赖 sudo apt-get install xorg-dev # 参考文档 sudo apt-get install libncurses5-dev # 参考文档

  3. 编译 cd vim ./configure --with-features=huge # 参考文档 cd src/ make && sudo make install

验证

vim --version | grep "clipboard" 看到 +clipboard 即是成功了。

其他

安装 YouCompleteMe 直接参考官方文档,先安装依赖。 http://valloric.github.io/YouCompleteMe/#ubuntu-linux-x64

如果出现下面错误(一定会): YouCompleteMe unavailable: requires Vim compiled with Python (2.7.1 or 3.4 ) 需要在编译 vim 时加入支持 python 的参数。 --enable-pythoninterp=yes --enable-python3interp=yes # 前面的时 python2 的后面是3的。 参考文档1参考文档2。 使用 checkinstall 构建 deb 包。

1
2
3
sudo apt install checkinstall
cd ~/vim
sudo checkinstall

参考文档

图标

创建图标添加到右键列表。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
vim ~/.local/share/applications/vim.desktop 

[Desktop Entry]
Encoding=UTF-8
Name=Vim Text Editor (Console)
Comment=Edit text files in a console using Vim
Exec=vim %u
Terminal=true
Type=Application
Icon=/usr/share/pixmaps/vim.png # 此处设置图标路径 
# 可以下载这个 http://pixelwhip.github.io/svg-flavors/img/logos/vim.png
Categories=Application;Utility;TextEditor;
StartupNotify=true
MimeType=text/plain;
NoDisplay=true

参考文档. Set vim as your default editor with update-alternatives.

1
2
3
4
sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 1
sudo update-alternatives --set editor /usr/local/bin/vim
sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 1
sudo update-alternatives --set vi /usr/local/bin/vim

总结

vim 编译主要命令:

  1. ./configure --with-features=hug --enable-pythoninterp=yes --enable-python3interp=yes --enable-rubyinterp --enable-luainterp --enable-perlinterp --enable-multibyte=true --enable-cscope=true --prefix=/usr, --enable-gui=no GUI相关 --enable-gui=gtk2;
  2. cd src;
  3. make && sudo make install.

最后关于卸载以及 清理,(在源代码路径下) 使用 make clean 清理之间编译完成的; 使用 sudo make uninstall 卸载使用 make 安装的软件。 实在不行,先 whereis vim,使用 rm -rf 删掉文件即可。