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

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

関連記事

WindowsでソースからビルドしたGimpでPYTHONPATHを指定せずにPython Fuを使うには

おはようございます。7月はほとんど実家で長男、次男が熱を出してましたが、何とか保育園の役員になっての一大イベントの夕涼み会に 子供たちも元気に参加でき、自分も担当だったうちわ係を無事に終えた@kjunichiです。

背景

Windows環境でGimpPython 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でのビルド関連記事

久しぶりにCordovaを動かしてみたら動かなかった

おはようございます。7月は奥さんが海外出張で実家に来てから、長男、次男が夏風邪で、月末まで実家生活で、地元の盆踊りに子供達を2回も連れて行けたりした@kjunichiです。

背景

AndroidiOSに対応する(つもりの)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バイナリーみたいなことをやった記憶がうっすらある。Androidx86_64向けも作ってその時のメモをQiitaに投稿はした。

あと、そもそもCordovaのプラグイン自体の開発ってローカルでどうやってたんだ?

cordova plugin add --link ~/path/to/plugin

と見つけたが、記憶がない。

関連記事

3年後の記事