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
出来た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
で日本語が表示されるようになった。
関連記事
- Windows 10でMSVCでnghttp2のサンプルを動かす
- Windows 10でFirefoxをソースからビルドして動かしてみた
- WindowsでPostgreSQLをソースからビルドした
- Windowsで64ビットなPythonでPython-Fuが動くgimpをビルドした
- Go言語でコマンドプロンプトに画像を表示するコマンドを作って、Vimの:terminalで表示させた
- WindowsでmrubyからGoで作ったライブラリを呼び出して、Webカメラの画像をコマンドプロンプトに表示した
- WindowsのVimが色付きの絵文字に対応したと聞いてやったがなかなか色がつかなかった件
- 過去8月にブログ記事が無かった日を挙げる
WindowsでソースからビルドしたGimpでPYTHONPATHを指定せずにPython Fuを使うには
おはようございます。7月はほとんど実家で長男、次男が熱を出してましたが、何とか保育園の役員になっての一大イベントの夕涼み会に 子供たちも元気に参加でき、自分も担当だったうちわ係を無事に終えた@kjunichiです。
背景
でWindows環境でGimpのPython Fuを64ビットなPythonを使って動かせた。 しかし、PYTHONPATHを指定しないと動かせない。
一方当然ながら公式の32ビットPythonをつかうGimpではPYTHONPATHの設定はいらない。
この記事では、PYTHONPATHを不要にする方法を調べた。
どうやって調査したか
俺的神コマンドのptを使って、調べ上げることが出来た。
PYTHONPATHを不要にする方法
前述のptコマンドを公式版のGimpフォルダ配下で
pt PYTHONPATH
として「PYTHONPATH」を含むファイルを検索して、 該当するファイル
- lib\gimp\2.0\environ\default.env
を探した。
lib\gimp\2.0\environ\default.envの編集
ビルドした方のGimpのファイルを以下の様に、
PYTHONPATH=${gimp_installation_dir}\lib\gimp\2.0\plug-ins;${gimp_installation_dir}\lib\gimp\2.0\python
とすることで、64ビットなPythonをPYTHONPATH指定なしで呼び出すことが出来た。
新たな課題
なぜか、公式と同様にPATHをdefault.envで設定するとScript-Fuがクラッシュするようになってしまった。
関連記事
- Windowsで64ビットなPythonでPython-Fuが動くgimpをビルドした
- OSXでgimpのプラグインを作りたくなりgimpをソースからビルドした件
- GIMPのプラグインをGoで書く(その1)
- 過去8月にブログ記事が無かった日を挙げる
Windowsでのビルド関連記事
久しぶりにCordovaを動かしてみたら動かなかった
おはようございます。7月は奥さんが海外出張で実家に来てから、長男、次男が夏風邪で、月末まで実家生活で、地元の盆踊りに子供達を2回も連れて行けたりした@kjunichiです。
背景
AndroidとiOSに対応する(つもりの)mrubyを組み込んだcordovaのプラグインを昨年作った。
その後、すっかり触らず、 思い出して、cordovaを動かしてみたら、動かなくなっている!
Androidのarmなエミュレーターが起動しない
昨年作成したプラグインはx86のバイナリが含まれておらず、armで動かす必要があった。しかし、 どうもcordovaからは、x86なエミュレーターは呼び出せるが、armなエミュレーターは呼び出せない。
対策
Android Studio経由、もしくは単独AVDマネージャーで予めarmなエミュレーターを事前に動かしておく。
iOSのエミュレーターが動かない
TypeError: Cannot read property 'replace' of undefined
このエラーで動かない。
対策
cd platforms/ios/cordova/node_modules/ sudo npm install ios-sim@latest
今回、ふと思いついて、始めるにあたり、新規のcordovaのプロジェクトを作成しての作業かつ、cordovaも更新したつもりだが、 上記のようにios向けのnode.jsモジュールディレクトリで、ios-simモジュールを最新版に更新することで、エラーが解消した。
まとめ
Android, iOSともエミュレーターで取らぶったが、なんとなく、昨年、プラグイン作っているある程度動かせるようになってからは、 Android,iOSともに、ひたすら実機でトライアンドエラーしていたような気がしてきた。
今回みたいに動かないこともあるものの、cordovaはハイブリッドアプリ開発の中ではメジャーなので、エラーメッセージを頼りに検索すれば、 Stackoverflow等で情報が見つかることが多そうな感じ。
次回の課題
libmruby.aをどうやって作っていたか?
iOS向けはFatバイナリーみたいなことをやった記憶がうっすらある。Androidもx86_64向けも作ってその時のメモをQiitaに投稿はした。
あと、そもそもCordovaのプラグイン自体の開発ってローカルでどうやってたんだ?
cordova plugin add --link ~/path/to/plugin
と見つけたが、記憶がない。
関連記事
- cordovaのプラグインを作ってkindle fireでmrubyを動かしてみた
- iOSでもCordovaプラグインを作ってmrubyを動かした
- 過去7月にブログ記事が無かった日を挙げる
- cordovaでwindowsアプリを作るにはMSBuild ToolではなくVSのIDE環境が必要だった件