USBでvimとpython持ち運び

これまでは、macwindowsでも同じ環境ができるようにとgitでコンフィグを管理して、macとwinで場合分けしてvimrcを作成していたけど、windowsをメインで使う職場でネット環境が思いっ切り制限された……

セキュリティ上しょーがないとはいえ、USBメモリがおめこぼしされているだけでも良しとしないといけないかな。

そこで環境をがっつり変えることにした。

前提

  • 職場でgithubを使えないと思え
  • Admin権限は無し
  • USBは使える
  • USBメモリで環境を持ち運ぶ
  • ちなみにWindows7の32bit環境
  • プログラムは運ぶけど、データは運ばない。

やったこと

  • vimはKaoriya版でzipで取得

https://www.kaoriya.net/blog/2016/04/09/

  • PythonはAnacondaの簡易版minikondaを使用

https://conda.io/miniconda.html

どちらも32bit版を使用

一つフォルダを作って、下記のようにファイルを配置した

vims(一番上のフォルダ。名前はなんでもいい)
|
|-vim
|-miniconda
|-home
| |-start_vim.bat
| |-vimfiles
| |-vimtemp

今回のメインであるhomeに配置したバッチファイル

内容は下記の通り

@echo off

REM %~d0で実行ファイルの存在するドライブに移動
%~d0
REM %~dp0で実行ファイルの存在するフォルダに移動
cd %~dp0

REM 環境変数の設定
set HOME=%~dp0
pushd %~dp0..
set PYTHONHOME=%CD%\miniconda
set PYTHONPATH=%PYTHONHOME%\libs
set LOCALBIN=%CD%\bin
cd %CD%\vim
set VIM=%CD%
path=%VIM%;%PYTHONHOME%;%PYTHONHOME%\Scripts;%PYTHONPATH%;%LOCALBIN%;%PATH%

start gvim.exe

環境変数でHOMEを設定することで、vimだけがUSBメモリに作成したHOMEフォルダを使用する。
(他のWindowsのソフトは通常のユーザー名のフォルダを使用)
PYTHONHOMEとPYTHONPATHはdllとlibファイルの場所を指定するために必要。
system32にdllがないので、PATHも追加しておく。
この状態でvimを起動して

echo has('python3')

1を返す

py3 import sys; print(sys.version)

でminicondaの3.5.2と応答があった

PYTHONPATHをPYTHON_PATHとしたりするとpy3の実行時にvimが落ちて動かないので注意。
単純な違いだけに、原因を見つけるのに時間がかかった。

vimのパッケージ管理はvim8のものにした。
予めダウンロードしといてフォルダにコピーすればいい。
使いたいのは
\home\vimfiles\pack\mypack\start
プラグインをフォルダごと放り込んでおいた。
mypackは好きな名前でOK。
遅延実行はstartをoptにすればいい。
大量に入れてないので、これでいまのところは問題ない。
このやり方でいっとき運用してみる。