non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

Vimに:terminalが実装され、Windowsではコマンドプロンプトが動くと知り試してみた

こんばんは、先日次男が去年あたりから、保育参観に来てほしいという予てからの希望を ようやく実現し、夏休み期間中の為、普段の園児の半数程度でしたが、次男と保育園で過ごすことが 出来、次男は満面の笑みでごきげんでした。@kjunichiです。

背景

この記事を読んで、Windowsでもコマンドプロンプトが動くことを知り、自分も手元で試したくなった。

ちなみに、viよりはemacsを使う方が多いくらいで、普段はVS Codeな人です。

Windows版(MSVC)のビルド

日中不自由な環境に居ることが多く、c9.ioのターミナル越しではemacsのデフォルトのキーバインドが ことごとく、別の機能に割り当てられviを使うことが多く、:terminalに対応したこの機会にチャレンジすることにした。

:terminalに必要なモノ

:terminalするにはwinptyなるものが必要。

からwinpty-0.4.3-msvc2015.zipをダウンロードした。

Vimのビルド

まぁ、

に従えば、そんなに難しくない。 自分はREADME読んで、トライアンドエラーで検索しながら、だったからそこそこ時間が掛った。

VS 2014環境下で作業した。

素のcmd.exeを立ち上げて、

vcvarsall.bat amd64
set SDK_INCLUDE_DIR=c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
set PATH=%path%;<<winptyのパス>>

:terminalを使えるようにする

:terminalを有効にするには最低限以下の様な指定をすれば、日本語含め扱える

nmake -f Make_mvc.mak GUI=no IME=yes MBYTE=yes TERMINAL=yes

GUI=yesにすればgvim.exeがビルドされた。

出来たVim.exeをパスの通ったフォルダなりに置けば、完成。

vim初心者がハマった操作

viはヤバくなったらescキー連打して、:q!でピンチを切り抜ける程度の知識しかないので、 :terminalして死にそうになった。

:terminalでは:が効かない

:terminalで無事WindowsコマンドプロンプトVimの中に現れ、dirコマンド等実行できることが分かったが、Vimへの操作が 分からずしばらく途方に暮れた。EmacsだとC-x oで別のバッファに移れた気がするが、ここはVim、全くわかない。Vimのウィンドウ分割系のことを扱った ページを漁り、

Ctrl+w wでウィンドウの移動

どうやら、Ctrl+w後:が効くことが後から分かった。

:q!が効かない

:terminalでシェルが動いているとvimの終了が邪魔される模様 exitなりで、シェルを抜けると:q!出来た。

文字化けに気が付く

:set enc=utf-8

で日本語が表示されるようになった。

関連記事