:terminal
何かと話題のvimの:terminal。
ここ一月くらいでvimのmasterへどんどんpushされていっています。
きっと今vimの:terminalに特に興味があるのは、
windows環境でvimを使っている人ではないでしょうか。
私も職場がwindows環境で、日頃はKaoriyaさんのバイナリにお世話になっています。
というわけで、執筆時点で最新のリポジトリからbuildして:terminalを使ってみました。
きっと、:terminalをいち早く試してみたいという方は沢山おられると思いますので、
簡単に手順をまとめておきました。
environment
- windows10 64bit
- msys2 20161025
- vim 8.0.0862
step
まず、今回実施した手順は以下の通り。
- msys2のインストール
- MinGwのインストール
- vimのソースコードのcloneとterminalオプションのenable
- build
- packageの作成
1. msys2のインストール
これはofficialからインストーラが公開されているので、インストーラからインストールして下さい。
特に今回注意した点はありません。
インストール後にpacman -Su
を実施して必要なpackageをインストールしておけばOK。
インストール後に立ち上がるプロセスでは警告が出たりしますが、もう一度起動してやればできます。
2. MinGWのインストール
次にmsys2のシェルからMingGWをインストールします。
pacman -S mingw-w64-x86_64-toolchain
※ 32bit環境の場合はx86_64
をi686
にします。
どれをインストールするかを聞かれますが、確認が面倒なので私はdefault:All
のまま全てインストールしました。
3. vimのソースコードのcloneとterminalオプションのenable
ソースの用意
buildに向けてソースコードの用意をします。
githubのvim/vimからgit clone
するか、
ダウンロードするなりしてローカルにリポジトリの内容一式を持ってきます。
terminalオプションのenable
そのままbuildしてもterminalオプションがdisableでbuildされてしまうので、
まずはmakefileの以下のように書き換えて下さい(実行時オプションでTERMINAL=yes
でも構わないかもしれませんが)。
CHANNEL=$(GUI)
endif
# Set to yes to enable terminal support.
-TERMINAL=no+TERMINAL=yes
# Link against the shared version of libstdc++ by default. Set
他にもユーザの要求に従った様々なoptionがありますが、とりあえず:terminalを試す分にはこれで十分だと思います。
4. build
それではいよいよ用意したソースコードをbuildします。
buildはvim/src
ディレクトリで行って下さい。
$ cd path/to/vim/src
$mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64 clean
$mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64
※ これも32bit環境の場合はx86-64
をi686
にします。
※ CUI版も必要な場合は別途GUI=no
にてbuildします。
これでエラーなくbuildされると、カレントにgvim.exe(vim.exe)
が作成されます。
あとは次のstepで必要なファイルとpackagingすれば使えるようになります。
5. packageの作成
最後に、依存ライブラリや必要なファイルと一緒にpackageにします。
結果的に以下のような構成となりました。
iconv関連の依存ライブラリは:terminalとは直接関係ありません。
2017/08/05 17:17 <DIR> .
2017/08/05 17:17 <DIR> ..
2017/08/05 13:57 3,151,872 gvim.exe # buildしてできた実行体
2017/08/05 15:46 44 gvimrc # gui向けの設定ファイル
2017/03/06 14:30 1,056,753 libiconv-2.dll # 以下3ファイルはmsys2のbinから(iconvオプション向け)
2017/02/21 17:26 133,779 libintl-8.dll
2017/07/13 16:35 57,379 libwinpthread-1.dll
2017/08/05 13:45 <DIR> vim80 # ここへはvim/runtimeの内容を全てコピーする
2017/08/05 15:46 101 vimrc # gui/gui共通の設定ファイル
2017/06/01 11:08 901,632 winpty-agent.exe # 以下4ファイルはGit/usr/binから
2017/06/01 11:08 791,040 winpty-debugserver.exe
2017/06/01 11:08 830,976 winpty.dll
2017/06/01 11:08 749,056 winpty.exe
それぞれコメントに従って必要なファイルを持ってきてもらえればよいです。
winpty関連のファイルは不要なものもあるかもしれません。dllとexeは必須でした。
そもそもGitから持ってきたけどそれで良かったかも不明。(知識不足)
vimが端末になったぞ!!
というわけで:terminalが使えるようになりました。
実用はKaoriya-vimへの依存が強い今はまだ無理かなーという感じですが、
早くいろんなシチュエーションで使ってみたいですね!!
reference
vimのbuildについて以下のページを参考にさせて頂きました。