NeovimをUSBメモリに入れてポータブル運用する方法
普段使っているPC以外の端末で作業する機会があると、自分の設定やプラグインが入っていないことにストレスを感じることがあります。Neovimはインストーラーを使わずzipを展開するだけで動くため、USBメモリに設定一式を入れておけば、どのWindows PCでも同じ環境を持ち歩けます。
目次(9項目)
USBメモリ内のファイル構成
例えば、次のような構成でUSBメモリにまとめます。
{USBメモリのドライブ}
├─ nvim/ ← Neovim本体一式(zip展開したもの)
└─ conf/
├─ init.vim ← 設定ファイル
├─ plugins/ ← プラグイン管理ツールとプラグイン本体
├─ swap/
├─ backup/
└─ undo/
Neovim本体のzip展開方法はNeovimのインストール方法の記事を、設定ファイルの配置ルールは設定ファイルパスの記事を参照してください。
起動時に設定ファイルを明示的に指定する
起動コマンドで設定ファイルを指定する
ポイントは起動コマンドで、必ずUSBメモリ内の設定ファイルを明示的に指定します。指定しないと、PC側にすでにある(あるいは存在しない)標準の設定ファイルを読みにいってしまいます。
nvim.exe -u {USBメモリのドライブ}\conf\init.vim
バッチファイルで自動化する
毎回入力するのは手間なので、次のようなバッチファイルをUSBメモリのルートに置いておくと便利です。
@ECHO OFF
set USBDRV=%~dp0
set NVIM=%USBDRV%nvim\bin\nvim.exe
set CONFIG=%USBDRV%conf\init.vim
%NVIM% -u %CONFIG%
これをダブルクリックするだけで、自分の設定を読み込んだNeovimがその場で起動します。
PATHを通さずに使える
USBメモリから起動する場合、PC側の環境変数PATHにNeovimを追加する必要はありません。nvim.exeのフルパスを直接指定して起動すれば済むので、他人のPCや共有端末でも環境を汚さずに使える点がメリットになります。
-u {設定ファイルのパス}を必ず付けます。付け忘れるとPC側の標準設定で起動してしまいます。
動かないプラグインもある点に注意
全部が全部同じように動くわけではありません。外部のプログラム(PythonやGitなど)に依存するプラグインは、そのPCにその外部プログラムが入っていなければ動作しません。あくまで「テキスト編集を素早くできる簡易環境」と割り切って使うのが現実的です。
出張先や検証機でちょっとした設定ファイルを編集する機会が多く、USBメモリにNeovim一式を入れておいたところ、インストール権限がない端末でも普段どおりの操作感で作業できて助かりました。ただしLSPやフォーマッタなど外部ツール依存の機能はほぼ使えないので、あくまで軽い編集用と割り切っています。
書き込みが増えるファイルを外に出す
USBメモリはフラッシュメモリなので、書き込みの回数が寿命に効きます。Neovimは編集中つねにスワップファイルを書き、取り消し履歴やシェーダのキャッシュも作るので、そのままだと書き込みが多くなります。
set noswapfile
set directory=$TEMP
set undodir=$TEMP
スワップを切るとクラッシュ時の復元ができなくなるので、切るのではなくPC側の一時ディレクトリに逃がすほうが安全です。取り消し履歴も同じで、持ち帰る必要が無いなら一時ディレクトリで構いません。
ドライブレターが変わっても動くようにする
WindowsでUSBメモリを挿すと、挿す端末によってドライブレターが変わります。設定ファイルにフルパスを書いていると、別のPCで動かなくなります。
設定ファイル自身の位置を基準にすれば、どのドライブに割り当てられても動きます。<sfile> はいま実行している設定ファイルのパスを指します。
let s:root = expand('<sfile>:p:h')
let &runtimepath = s:root . ',' . &runtimepath
プラグインの置き場所やテンプレートのパスも、この s:root からの相対で組み立てておくと、まるごとコピーして別のUSBメモリに移しても動きます。
持ち込む前に確かめること
会社や学校のPCでは、外部メディアからの実行がポリシーで止められていることがあります。実行できないだけならまだしも、持ち込み自体が禁止されている場合もあるので、使う前に確認してください。
技術的には、実行できても文字が正しく出ないことがあります。設定でフォントを指定していても、そのフォントがPC側に無ければ代替のフォントが使われます。記号を使った見た目の設定を入れている場合は、素の状態でも読める組み合わせにしておくと安心です。ネットワークが使える環境なら、VPSに置いた環境へSSHで入る方法のほうが手間は少なく済みます。
まとめ
NeovimはUSBメモリに本体と設定を入れておくだけでポータブル運用できます。起動時に-uで設定ファイルを明示すれば、インストール不要でどの端末でも同じ操作感を再現できます。