October 24, 2017
Windows上编译vim文件导航跳转插件command-t
用Bundle在Windows平台上配置成功了以后,绝大多数插件都已经可以使用,但是唯独强大的文件导航Command-T因为Ruby开发的插件,需要手动编译。
官方文档写的安装编译过程代码大概是这样的,我省去了使用bundle的安装过程:
$ cd ~/vim\bundle\command-t\ruby\command-t\ext\command-t>
$ ruby extconf.rb
$ make
要完成这些肯定得装ruby和make,网上的绝大多数答案也都已经过期,说的是vim7.4左右的版本,而现在已经是vim 8.0。于是只好自己探索。
windows的ruby是一个特殊的安装包,和Ruby的官网都分开,网址是RubyInstaller for windows。
可供下载的版本从2.0.0-p648到2.4.2-2版本。
我从高版本开始尝试,安装2.4.2-2,安装成功并设置好windows环境变量,开始编译。结果发现报错 You have to install development tools first.
. 于是我在官网发现了DEVELOPMENT KIT
可以下载,但是居然只支持(Ruby 2.0 到 2.3),只好重新安装了Ruby 2.3, 并且按照官网development tools。
假设Ruby 安装到 C:\Ruby22-x64, 配置PATH环境变量。然后将Development tools 就解压到 C:\Ruby22-x64\DevKit, 然后进入该目录执行
$ ruby dk.rb init
成功后再执行
$ ruby dk.rb install
接着进入~/vim\bundle\command-t\ruby\command-t\ext\command-t>
文件夹,执行ruby extconf.rb
命令,发现ruby执行成功了,用choco安装make并执行make一切都顺利。
但是进入vim一按command-t的快捷键报错,报错内容是:
command-t.vim could not load the C extension
Please see INSTALLATION and TROUBLE-SHOOTING in the help
Vim Ruby version: 2.2.6
Expected version: 2.3.3
也就是vim内置的ruby版本和这个版本不匹配,看来我确实遗漏了vim内置版本的问题。于是继续降级到Ruby 2.2, 结果居然还是报错。报错内容依旧是You have to install development tools first.
然而我明明已经安装了development tools.
October 22, 2017
windows的包管理Chocolate和vim.Vundle
Windows的开发环境一直都会让人比较头疼,一般解决方法有用Cygwin等模拟Linux的环境,Windows 10又自带了Ubuntu On Windows 10的环境。但是都或多或少有点问题,例如Cygwin的文件目录和windows分离,Ubuntu On Windows 10不能用Nodejs,打开X应用比较麻烦,只能用终端等。
经过很多尝试,我认为最友好的环境还是windows原生的环境,只是你需要偶尔告别命令行搜索某些应用需要的依赖,依次安装,这样其实绝大多数的开发环境都是可以部署的。不过还是有工具可以帮助我们,例如Windows其实也有一个类似apt-get或者Homebrew的包管理工具,叫做Chocolate.
安装Chocolate只要在Powershell里写这行代码即可:
Set-ExecutionPolicy Bypass; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
安装包的方法是choco install <package_name>
但是这个命令必须用admin权限的powershell来执行。于是想是不是有个windows的sudo
,结果一查还真的有,而且可以用chocolate安装。于是admin执行powershell并运行了choco install sudo
就安装好了。以后只要在普通用户的powershell执行sudo choco install <package_name>
即可了。
我用choco安装了git
, vim
, python
,curl
,wget
等工具,安装后powershell可以执行不少的类似linux的命令了。
但vim是裸奔状态,如果我直接把以前配置的.vimrc文件拿过来,显然用不来,甚至连Vundle包管理都用不来。Vundle的官方文档有windows上配置的方法就是把:
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
改成
set rtp+=$HOME/.vim/bundle/Vundle.vim/
call vundle#begin('$HOME/.vim/bundle/')
然后再执行vim +BundleInstall +qall
就好了。