3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windowsで香り屋版パッチを当てた最新版Vimをビルドする

Posted at

動機

これまで、香り屋さん提供の Vim / GVim バイナリを利用して Windows 上で快適な Vimライフを送ってきました。プログラミングをたしなむ者として、自分の使うソフトをソースからビルドしてみたいと思い、やってみることにしました。

本記事の要約

  • Windows 10 上に ビルド環境を整える。
  • GVim の最新版に、香り屋版パッチを当てる。
  • ビルドする。
  • DLL を用意する。 (まだできていません)
  • ファイルを配置する。 (まだできていません)

前提

  • Windows 10 がインストールされている。
    • Windows 7 SP1 以降なら同様の手順で可能であると思われます。
  • インターネット環境がある。
    • Git を使ってソースコードを取得したりします。

手順

Windows 10 上に ビルド環境を整える

まず、ビルド環境を整えます。私の環境はWindows 10 Pro ですが、Windows 10 Home や、Windows 8/8.1、Windows 7 でも同様に構築できると思われます。

  1. Visual Studio Community 2019 のダウンロード・インストール
  2. Git for Windows のダウンロード・インストール
  3. Vim 最新版ソースコードのダウンロード
  4. 香り屋版パッチのダウンロード

Visual Studio Community 2019 のダウンロード・インストール

Visual Studio Community 2019 リリース ノート のページから、Visual Studio Community 2019 のインストーラをダウンロードし、実行します。
「ワークロード」タブで、「C++ によるデスクトップ開発」にチェックを入れると、必要なファイル一式がインストールされます。

Git for Windows のダウンロード・インストール

Git のウェブサイト (https://git-scm.com/) から、Git for Windowsをダウンロードし、インストールします。

Vim 最新版ソースコードのダウンロード

Git Bash を起動します。Vim のソースコードを置くディレクトリに移動し、以下のコマンドを実行します。

$ git clone https://github.com/vim/vim.git

香り屋版パッチのダウンロード

続けて次のコマンドを実行し、香り屋版パッチをダウンロードします。

$ git clone https://github.com/koron/vim-kaoriya-patches.git

Vim の最新版に、香り屋版パッチを当てる

guilt (Git で動くパッチ管理ツール) が Git Bash で動かない(´・ω・`)

guilt を利用すると、パッチ内容が変わっても同様の手順で処理できるのですが、残念ながら、Git for Windows の Bash では "unsupported" と言われて処理ができません。ならば、手動で……とまでは行きませんが、半自動での処理を目指します。

Vim のブランチを切る

master ブランチでそのまま直接作業しても構いませんが、ソースコードに変更を加える作業ですので、ブランチを切っておいたほうがいいでしょう。

$ git checkout -b with-patch

パッチファイルを微修正

2520-migemo_feature.diff が、2019/06/14 現在の最新版では、そのままパッチが通らないため、微修正します。
最終行と、その1行前のコメントブロックを、1行コメントのスタイルに変更します。

git apply を実行

guilt が Git Bash でも使えるようになったら、この手順は変わります。
python2-warn.diff はエラーが出て通りませんので、リネームするなどして、適用除外としておきます。 (ガッツリ修正するのが面倒で、実行に影響が出ないっぽいので……)

$ git apply ../vim-kaoriya-patches/master/*.diff

ex_cmdidxs.h を更新

私もまだ勉強中なのですが、新しい Ex コマンドを追加すると、表題のヘッダファイルを更新する必要があるみたいです。そのための Vim script が用意されています。

……えーと、Vim を作るのに Vim が必要……?どういうことなのか、詳しい方、ご教示ください。でも必要だというのなら、 Git Bash 付属の Vim を使うことにします。

$ vim -u NONE -i NONE -X -S create_cmdidxs.vim

ビルド

vim-jp のサイトの説明 (https://vim-jp.org/docs/build_windows_msvc.html) を参考に、プログラムのコンパイル (ビルド) を行います。

DLL を用意する

いろいろ調べていて、ここが一番難しいということに気付きました。 migemo.dll は、バイナリが提供されていますので、ダウンロードしてくれば大丈夫なのですが、残る 3つは基本的にソースコードによる提供となっていました。どうすれば、ソースコードをコンパイルして、DLL を用意できるか、勉強してきます。

  • iconv.dll
  • winpty.dll
  • intl.dll
  • migemo.dll

現時点では、Vim の香り屋版バイナリをダウンロードして、それに添付されている DLL を用いるのが一番早いかもしれません。

ファイルを配置する

感想

自分でビルドするって、とても大変です……Vimの開発に参加されている皆様、Windows向けバイナリを用意してくださるKoRoN様、ありがとうございます。プロジェクトに貢献できるように、腕を磨きます。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?