Help us understand the problem. What is going on with this article?

Vimの:terminalを試したいのでソースからbuildした(windows)

More than 3 years have passed since last update.

: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

まず、今回実施した手順は以下の通り。

  1. msys2のインストール
  2. MinGwのインストール
  3. vimのソースコードの入手
  4. build
  5. packageの作成

1. msys2のインストール

これはofficialからインストーラが公開されているので、インストーラからインストールして下さい。

msys2 official

特に今回注意した点はありません。
インストール後にpacman -Suを実施して必要なpackageをインストールしておけばOK。
インストール後に立ち上がるプロセスでは警告が出たりしますが、もう一度起動してやればできます。

2. MinGWのインストール

次にmsys2のシェルからMingGWをインストールします。

pacman -S mingw-w64-x86_64-toolchain
※ 32bit環境の場合はx86_64i686にします。

どれをインストールするかを聞かれますが、確認が面倒なので私はdefault:Allのまま全てインストールしました。

3. vimのソースコードの入手

buildに向けてソースコードの用意をします。
githubのvim/vimからgit cloneするか、
ダウンロードするなりしてローカルにリポジトリの内容一式を持ってきます。

4. build

それではいよいよ用意したソースコードをbuildします。
buildはvim/srcディレクトリで行って下さい。

$ cd path/to/vim/src

$mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64 TERMINAL=yes clean
$mingw32-make -f Make_ming.mak GUI=yes ARCH=x86-64 TERMINAL=yes

※ 今回buildしたverはdefaultでTERMINAL=noとなっているので上記の様にしてenableにして下さい。
※ これも32bit環境の場合はx86-64i686にします。(実際は内部で自動検出されるので、ARCH=自体が省略可能です)
※ 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  # 以下2ファイルはGit/usr/binから     
2017/06/01  11:08           830,976 winpty.dll

それぞれコメントに従って必要なファイルを持ってきてもらえればよいです。
winpty関連のファイルは今回はGitに同梱されているCygwin環境から持ってきました。

vimが端末になったぞ!!

というわけで:terminalが使えるようになりました。
実用はKaoriya-vimへの依存が強い今はまだ無理かなーという感じですが、
早くいろんなシチュエーションで使ってみたいですね!!

20170805_vim_term.png

reference

vimのbuildについて以下のページを参考にさせて頂きました。

akif999
組込み系なソフト屋さん クローズな業界だけどOSS Poweredに生きています 自称テキストエディット科学者 Go, Perl, C
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away