いつもポエムの様にDroidVimの話を垂れ流す当記事ですが、最近androidからのsshクライアントをTermuxに変更したため、「Termuxでもvimが必要」というケースが増え、vimrc内で条件分岐が欲しいケースがまた増えました。gitを使って共通の設定を使っているので、設定内で複雑な記述を避けるために環境(と端末)を特定する方法が必要なわけですが…
出来らぁ!
とはいえ、とりあえずDroidVimとTermuxのケースに絞ります。他の方法は非現実的でしょうし、UserLAndなら逆にこんなことで困りません。この2つのアプリで共通するのは、android内の/data/data
ディレクトリにアプリ専用のホームディレクトリがあるということです。つまりecho expand('~')
で現在のアプリのホームディレクトリのフルパスが取得できます。というわけで…
detectAppSample.vim
if expand('~')=~? 'droidvim'
echo "I'm DroidVim."elseif expand('~')=~? 'termux'
echo "I'm Termux."endif
が出来てしまいます。これで片方は解決です。もう一つ、複数のandroidデバイスをどう識別するかですが、adbから使えるgetprop
が難なく使えました。というわけで…
detectDeviceSample.vim
let device = system('getprop ro.product.model')
で問題なしです。