■ DroidVim (テキストエディタ)

DroidVimはテキストエディタVimのAndroid移植版です。
Vim (Huge version)、grep、diff、ctagsはすぐに使用できます。
https://play.google.com/store/apps/details?id=com.droidvim
▼必須 - ARM(Android 4.1以降)、x86(Android 4.3以降)

■ ノート:

終了方法

  • ":qa"コマンド
  • ファンクションバーの"Q"ボタンをタップ
  • ナビゲーションドロワーの"QUIT"ボタンをタップ

Vimチュートリアル

":Vimtutor"を入力してください。
または
はじめてのvi

直接入力/通常入力

  • デフォルトではノーマルモードのための直接入力(英数字のみ)に設定されています。
    直接入力/通常入力

■ トラブルシューティング:

  • デフォルトではノーマルモードのための直接入力(英数字のみ)に設定されています。
    日本語入力モード
  • Vimがフリーズした場合は、メニューの「ウィンドウを閉じる」をタップして終了します。
  • Vimのambiwidthオプションを変更する場合は、「設定」の「東アジアの曖昧な文字幅」も変更してください。
  • ファイラーまたはクラウドストレージアプリケーションによっては、[共有](または[プログラムから開く])メニューでファイルを開くときに読み取り専用に設定されている場合があります。
       この場合は「ファイルを開く」ボタンからファイルを開くか、ファイラーまたはクラウドストレージアプリケーションの開発者に問い合わせてください。
  • ドロワーメニューの「ファイル管理」ボタンを使用してファイマネージャー(Files)を起動できます。
       ただしセキュリティ上の理由でホームディレクトリの「ルート」にはVimfiles(.vimrcや.vim)などの「ドットファイル」をコピーすることはできません。(サブディレクトリ内に含まれている「ドットファイル」は問題なくコピーされます)

■ ストレージアクセス:

VimはAndroidファイルシステムに直接アクセスします。
したがって、Vimでファイルを編集するには、Androidのファイルシステムとセキュリティを理解する必要があります。

アプリ固有ストレージ
Androidアプリはサンドボックス内で実行されます。 そして、そのアプリだけがアクセスできる領域があります。
    この領域は、一般的なLinuxファイルシステムとほぼ同じように扱えます。 ホームディレクトリはこの領域にあります。
    Android 7以降では、この領域は「ファイル管理」ボタンや「Files」アプリからアクセスできます。
内部ストレージ
Androidアプリが一般的に共通してアクセスできる領域。
    多くの場合、Vimからは":e /sdcard"で直接アクセスする事ができます。
    Android 6以降では、セキュリティ上の理由から直接アクセスするには権限が必要です。
    Android 11以降では、セキュリティ上の理由から直接アクセスできなくなりました。 ファイルにはナビゲーション・ドロワーの「ファイルを開く」または"Files"アプリからアクセスする必要があります。
外部ストレージ
外部SDカード、USBメモリ、さまざまなクラウドストレージ。
    セキュリティ上の理由から直接アクセスできないため、キャッシュを介してファイルを編集します。
    ナビゲーション・ドロワーの「ファイルを開く」ボタンからファイル・ピッカーを起動してください。(Android 4.4以降)
    Android 7以降では、この領域は「ファイル管理」ボタンや「Files」アプリからアクセスできます。

セキュリティ上の理由から、DroidVimは各種ストレージアクセスの際にキャッシュファイルを作成し、そのキャッシュファイルを編集する場合があります。
このキャッシュファイルへのアクセスはDroidVimを一旦終了したあとでも有効なままなので、各種MRUプラグイン等でアクセスする事が可能です。

内部ストレージ

内部ストレージへのアクセスにはVimのnetrw (例 :e .)も使用可能です。
$INTERNAL_STORAGEを使用して内部ストレージへアクセスできます。
:e $INTERNAL_STORAGE
* ホームディレクトリにシンボリックリンクが存在します。
* Android 11以降の場合は内部ストレージへのアクセスは禁止されています。

■ Vimfilesとホームディレクトリ

Vimの設定ファイル(.vimrcと.vim, :h vimrc)は$HOMEへ作成してください。
.vimrcは「長押しメニュー→.vimrcを編集」でも編集することができます。

Vimは"$HOME/.vim"直下のディレクトリから個人用の設定ファイルを読み込みます。
/autoload 自動的に読み込まれるスクリプト :h autoload-functions    
/colors   色テーマ定義ファイル           :h colorscheme          
/doc       ヘルプドキュメント             :h write-local-help      
/ftplugin ファイルタイププラグイン       :h write-filetype-plugin
/pack     パッケージ                     :h packadd              
/plugin   プラグインスクリプト           :h write-plugin          
/syntax   文法ファイル                   :h mysyntaxfile          

Vimからshellコマンドを使用してディレクトリの作成とファイルのコピーが行なえます。
  1. :!mkdir -p $HOME/.vim/colors
  2. :!cp /path/to/your_colorscheme.vim $HOME/.vim/colors

それとは別にDroidVimのホームディレクトリにファイルをコピーする、より簡単な方法がいくつか用意されています。

!!! 注意 !!!
DroidVimをアンインストールすると$HOMEは削除されます。定期的なバックアップをおすすめします。

シンボリックリンク (Android 10以前)

Vimfiles(.vimrc.vim)を内部ストレージに作成/コピーしてシンボリックリンクを作成してください。
この方法だとDroidVimをアンインストールしてもVimfilesは削除されません.
  1. :!rm $HOME/.vimrc
       ($HOME/.vimrcの削除)
  2. :!ln -s /path/to/.vimrc $HOME/.vimrc
  3. :!rm -rf $HOME/.vim
       ($HOME/.vimの削除)
  4. :!ln -s /path/to/.vim $HOME/.vim
($INTERNAL_STORAGEを使用して内部ストレージのパスへアクセスすることができます)

ファイルマネージャー(Android 7以降)

ファイルのコピーにはドロワーメニューの「ファイル管理」ボタンを使用してください。
Android Storage Access Frameworkに対応したファイルマネージャーアプリも使用可能です。

ファイルマネージャーアプリ

Android Storage Access Frameworkに対応していないファイルマネージャーアプリを使用したい場合は、ホームディレクトリを$APPEXTHOMEに変更する方法があります。
$APPEXTHOMEのパスはVimを介して:echo $APPEXTHOMEを実行すると表示されます。
必要に応じて$APPEXTHOME/.vimへプラグインやカラースキームファイルをコピーして下さい。

Android10以前では内部ストレージのディレクトリも指定可能ですが、シンボリックリンクを作成することをおすすめします。

!!! 注意 !!!
  • ホームディレクトリ内のファイルの属性変更ができなくなります。
  • DroidVimをアンインストールすると$APPEXTHOMEは削除されます。定期的なバックアップをおすすめします。

ホームディレクトリのバックアップとリストア

内部ストレージまたはSDカード上のVimfiles(.vimrc, .vim)をホームディレクトリ($HOME)へコピーして使用することができます。
「ドロワーメニュー→ストレージ→バックアップ/リストア」

バックアップ/リストアは以下のように動作します。
  • タイムスタンプが新しいファイルのみバックアップ/リストアします。
  • シンボリックリンクはバックアップ/リストアされません。
  • ミラーリングは行いません。

■ Tips:

直接入力/通常入力

デフォルトではノーマルモードのための直接入力(英数字のみ)に設定されています。
直接入力/通常入力を切り替えるには以下の方法があります。(「起動時の入力モード」は設定で変更可能)

一行テキスト入力

一行テキスト入力 (画面下部でダブルタップ)を起動すると、一般的なAndroidアプリと同等の通常入力が行なえます。
一行テキスト入力は「画面下部をダブルタップ」して起動可能です。
「設定」→「◇ボタン」を「一行テキスト入力」に変更するのも便利です。

カーソル移動

  • 画面下半分で左右にスワイプして、カーソルを移動
  • [○]ボタンでカーソルボタンの上下と左右を入替え。
       [Ctrl]ボタンの状態に応じて上下と左右が一時的に入れ替わります([ESC]ボタンで終了)

HTMLとLink

  • 編集中のHTMLファイルをブラウザで開く
       - "メニュー" -> "共有" -> \"ファイル\"
       - Type :ShareIntent file
  • カーソル下のURLを開く
       - gx (:h gx)

カラースキーム

DroidVimは256色端末用のカラースキームをサポートしています。
:colorscheme term256
好みのカラースキームファイルを"$HOME/.vim/colors"へコピーして使用することもできます。
Vimfiles

プラグイン

ホームディレクトリに.vimディレクトリを作成してVimScriptプラグインをインストールすることができます。
Vimfiles
以下のヘルプを参照してください。
  • :h plugin
  • :h runtimepath
packaddを使うこともできます。
  • :h packages

zip, tar

zipファイルやtarファイルはbusybox unzipまたはbusybox tarを使用して展開することができます。

Samba

Sambaで共有されているファイルを編集したい場合は、以下のアプリを使用してみてください。

設定例
Share Path:\\192.168.1.100\storage
Domain:192.168.1.100
Username:username
Password:password

shell script

Android 10以降でホームディレクトリ内のシェルスクリプトを実行したい場合は、「設定→シェル→proot」を有効にしてください。

rootアクセス

DroidVimは端末エミュレータ上で動作しているので、suコマンドをインストールしている環境ではrootアクセスが可能です。
通常はroot化した際にviコマンドが使用可能になっているはずなので、shellまたはCtrl+zでシェルを起動してからのviの使用を推奨します。
  1. :shell or Ctrl-Z
  2. su
  3. vi
なおsuvimでDroidVimのvimバイナリを起動することも可能です。
  1. :shell または Ctrl-Z
  2. suvim
  3.  exitでrootを終了

Android 10以降

もしもsuコマンドでエラーが出る場合は":TerminalMode"をVim上で実行してください。
DroidVimをリスタートすると「端末エミュレータモード」で起動するので、suまたはsuvimを実行してください。
bashで問題が起きる場合は":TerminalMode sh"を使用してください。
DroidVimを終了すると次は「通常モード」で起動します。
[設定]→[シェル]→[proot]をオフにして使用することもできます。

■ 日本語入力モード:

デフォルトでは「英数直接入力」が強制されています。
通常入力(日本語入力)へはファンクションバーの"🔤"キーを使用して、「英数直接入力」/「通常入力」を切り替えてください。
なお一行テキスト入力ウィンドウを使用する場合は"🔤"キーによる切り替えは不要です。

その他にも以下の方法で通常入力(日本語入力)への切替が行えます。
  • iminsert (<C-^>)
  • Vimスクリプト
  • IMEショートカット (物理キーボード)

DroidVimはその性質上IME(日本語入力アプリ)のAPIを直接操作する必要があり、IMEの実装の違いが大きく影響します。
ほとんどのソフトキーボードはデフォルトで問題なく動作しますが、物理キーボードをGboard以外のIMEで使用して日本語入力を行いたい場合は適切な設定変更を必要とする場合があります。
まずはGboardを使用して動作確認してみてください。

iminsert <C-^>

Vimには日本語入力などのためにIMEをコントロールするiminsertオプションが用意されています。(:h iminsert)
以下の設定で"🔤"ボタンをiminsertを使用する英数/通常入力に変更してみてください。
  • DroidVimの「設定」→「ファンクションバーモード」→「"🔤"ボタン」→「<C-^>

以降は「挿入モード」で"🔤"ボタンを使用してから「英数/通常入力」を切り替えます。
この場合はiminsertの機能でノーマルモード/挿入モード移行時にIMEの状態が保存されて適切に切り替わります。
iminsert<C-^>または<C-6>でも入力を切り替えることができます。

IMEによっては以下の設定が必要かもしれません。
" `<C-^>`で英数/通常入力の切り替えと[Shift]+[Space]を自動実行 let g:imactivate_language_switch = 61

物理キーボード

「挿入モード」で<C-^>(<C-6>)を押すことでiminsertを利用して通常入力(日本語入力)に切り替えが行えます。
<C-^>はVimコマンドなので「挿入モード」の任意のキーにマップできます。
" 挿入モードでは<C-j>で入力切替 inoremap <C-j> <C-^>
[Alt]+[半/全]などの特殊キーで英数強制/通常入力切り替えを行いたい場合はIMEショートカットを利用してください。
Gboardなどで2つ以上の言語を使用している場合は、AndroidOS標準の入力切替ショートカット[Shift]+[Space]で入力を切り替えることができます。

IMEショートカット (物理キーボード)

IMEショートカットは物理キーボード用のショートカットキーを追加する機能です。
IMEショートカットを使用することでVimではなく端末エミュレータ側から入力モードの制御をおこなえます。
設定は「設定」→「テキスト入力モード」→「IMEショートカット」で設定可能です。

試しに→「IMEショートカット」のAlt+[半/全] | Alt + [`]を有効にしてみてください。
以降はAlt+[半/全]または Alt + [`]を、物理キーボードで入力するたびに「IMEショートカットアクション」で指定したコマンド(デフォルトでは「通常入力/起動時の入力モード」のトグル)が実行されます。
また「IMEショートカットアクション」を「<C-^>」にするとiminsertによるIME制御が行われます。

Gboard以外のIMEで物理キーボードを使用する。

物理キーボードはIMEによって動作がまちまちな上、動作保証を行っていないIMEも多くあります。
このためGboard以外のIMEで物理キーボードを使用する場合はIMEショートカットの設定を適切に変更する必要があります。

IMEで日本語を入力できる条件は以下のとおりです。
  • DroidVimの入力モードが「通常入力」である
  • IMEが有効になっている
使用しているIMEのモード切替とIMEショートカットによる「英数強制/通常入力」等を組み合わせて設定してください。

以下の設定により物理キーボード接続時のみ「通常入力」に設定することもできます。
  • 「テキスト入力モード」→「通常入力の強制」→ 有効
この設定を有効にすると入力状態はIMEにのみ依存するようになります。

DroidVimプラグイン

DroidVim専用の文字種変更プラグインが同梱されています。

" ノーマルモード移行時にIMEを英数入力へ変更 let g:imctrl_normal=53 " 挿入モード移行時にIMEを通常入力へ変更 let g:imctrl_insert=50

オプション詳細

imctrl_insert               挿入モードへの移行時                  
imctrl_normal               挿入モードへの終了時                  
imactivate_insert           挿入モードへの移行時 (iminsert=2)    
imactivate_normal           挿入モードへの終了時 (iminsert=2)    
imactivate_language_switch 挿入モードへの移行/終了時 (iminsert=2)
「設定値詳細」を参照して適切に設定を行ってください。

Vimスクリプト

コマンドモードやVimスクリプトから文字入力モード等を変更することができます。
:call ATEMod(72) :ATEMod 72
「設定値詳細」を参照して適切に設定を行ってください。

設定値詳細

使用しているIMEによって同じ設定でも動作は異なります。
設定値効果備考
50 通常入力
51 直接入力 : パスワード 英数確定入力になる。
日本語入力不可。
52 直接入力 : URI       多くのIMEでは変更後に英数入力に切り替わる。
英数確定入力にはならない。(IMEの設定に依存)
日本語入力可能。
53 直接入力 : デフォルト
54 通常入力 : Raw      
55 「通常入力」/「起動時の入力モード」を切替
56 一行テキスト入力へ移動
61 言語切替 ([Shift]+[Space]) 「言語切替」が有効でないIMEに使用すると空白が入力されます。
62 言語切替 ([Alt]+[Space]) 「言語切替」が有効でないIMEに使用すると空白が入力されます。
63 <C-^> iminsert
70 IMEを隠す
71 IMEを表示
72 IMEをトグル

AndroidとIMEのショートカットキー

Androidのショートカットキーで言語、レイアウト、IMEを切り替えることができます。
レイアウト切替 [Ctrl]+[Space]   複数レイアウトを選択している場合
言語切替       [Shift]+[Space] IMEが複数言語を使用可能な場合    
IME切替         [Meta]+[Space]   複数のIMEを使用可能な場合
[Meta]は[Windows]キーまたは[Command]キー
(Android 7以降)

その他にも、多くのIMEでは日本語/英数の言語切替をショートカットキーで行えます。

日本語/英数入力切替
Gboard           [半/全]
[Shift]+[Space]            
Google日本語入力 [半/全]
[Alt]+[`]
[Ctrl]+[Shift]
ATOK             [半/全]
[Alt]+[Space]
[変換]    
Wnn keyboard lab [半/全]
[Shift]+[Space]            

ほとんどのIMEは英語配列キーボードの[Alt]+[`]で日本語/英数入力の切替が可能です。
英語配列キーボード [Alt]+[`]

物理キーボードにファンクションキーがない、あるいはfnキーと同時押しで面倒な場合でも、IMEによっては文字種変換をショートカットキーで行えます。

文字種変換 (Gboard/Google日本語入力/ATOK)
ひらがな変換 [Ctrl]+[u]
カタカナ変換 [Ctrl]+[i]
半角変換     [Ctrl]+[o]
全角無変換   [Ctrl]+[p]

Gboard/Google日本語入力
英数変換 [Ctrl]+[t]
Gboard/Google日本語入力で「物理キーボードの[Alt]キーで絵文字を表示」するように設定していた場合、[Alt]キーによる絵文字入力キーボードの表示中に英数直接入力が行なえます。(正式な仕様ではない可能性があります)

ATOK
英数変換(日本語配列) [Ctrl]+[@]
英数変換(英語配列)   [Ctrl]+'['

■ 追加機能 (アプリ内課金):

追加コンテンツ

一部のプラグイン等で必要とされる、以下のパッケージを追加します。
  • Git, curl - バージョン管理システム
  • Python - プログラミング言語
その他
  • マークダウンHTML変換プラグイン (実験的)

寄付について

一度の寄付であなたのすべてのデバイスで追加コンテンツが使用可能になります。またアップデートに寄付は必要ありません。
あなたが新しいデバイスを追加した場合、Google Playにはまだ課金の状態が反映されていないことがあります。
その場合は「Google Playの課金ダイアログ」が出るまでフローを進めてください。(課金する必要はありません)
「Google Playの課金ダイアログ」が表示された時点で、Google Playがサーバからデータを取得し最新の課金状態が反映されます。

python (pip)

pipを使用するためには以下の手順が必要です。
  1. :shell または Ctrl-z
  2. pip
  3. Vimに戻ってDroidVimを終了
  4. :shellまたはCtrl-z
  5. pip install --upgrade pip
DroidVim上のPythonはnumpy/scipyをサポートしていません。
これはnumpy/scipyの開発者がAndroid用のライブラリファイルを作成していないためです。

busybox-setup

追加コンテンツが特定のデバイス(Samsung社製など)にインストールされていると、一部のコマンド(lsなど)が機能しないことがあります。
このような場合は、"busybox-setup sysbin"を使用してください。

  1. :shell または Ctrl-z
  2. busybox-setup sysbin

まだ問題が起きる場合は初期化してから、個別のコマンド設定を行います。

初期化

  1. busybox-setup clean
  2. busybox-setup

個別のコマンド設定

  1. 例えばlsが動作しない場合はbusybox-setup sysbin lsbusybox-setup lsを実行します。
  2. もし動作しないコマンドがあれば、同様に処理します。

オプション        
{command}          指定したbusyboxコマンドを追加します(例: busybox-setup ls)
all                すべてのbusyboxコマンドを追加します(busybox-setup all)
sysbin {command}   デバイス本体の指定したコマンドを優先します(例: busybox-setup sysbin ls)
sysbin             デバイス本体の全てのコマンドを優先します(busybox-setup sysbin)
clean              すべての追加コマンドを消去します(busybox-setup clean)
オプションを指定しない場合は通常のインストールを行います。

■ 権限

DroidVimは以下の目的でネットワークアクセス権限を使用しています。
  • 追加コンテンツ
  • HTMLファイルプレビュー
  • ヘルプ
  • クラッシュリポート
気に入らない場合は自分でソースコードからビルドするか、使用を中止してください。

■ ソースコード:

DroidVimはオープンソースプロジェクトです。
https://github.com/shiftrot/droidvim

■ 連絡先:

<< Prev  |  PageTop