DroidVim で日本語を編集したい。

まだ全く確かではないので、ただのメモ。

---

[Amazon の Fire８](https://forum.xda-developers.com/t/windows-tool-fire-toolbox-v10-1.3889604/) で日本語の文章を編集したかったので、 vim を使いたかった。
なんか間違っていますか。
starbucks coffee でピタピタとキーをタイプしている様子を想像して夢見ていました。

そして vim を使ったことがなかったので、慣れるために DroidVim をインストールしました。
DroidVim　https://github.com/shiftrot/droidvim
[google ストア](https://play.google.com/store/apps/details?id=com.droidvim "DroidVim")で。
間違ってませんよね。たぶんね、そこはね。

そうして、どうやってハードウェアキーボードで、日本語と、英語を切り替えて DroidVim で入力できるかな ? ということをずっと試したんですが、今のところ標準の IME である fire keyboard 日本語と英語で切り替えながら入力するというレベルで、英語は hackers keybard / codeboard github.com/peterekepeter を併用しつつで日本語が書けるところまでたどりつきました。たぶん、数日から数週間かかっています、 vim についての情報を集約するのに。過去を思い出したくありません。

ありがとうございます。

こういう感じです。
https://www.youtube.com/watch?v=-IKU3B_Kzsg&feature=youtu.be


#### 参考にしたのは、アプリに参照があった、ここ
https://droidterm-e8a40.firebaseapp.com/droidvim/ja-JP/#header

そして、ここ。の２つ。（あんまり多くを参照すると、わからなくなるから、他は無意識下で参照。）
#### fudist  androidでVim
https://sites.google.com/site/fudist/Home/qfixhowm/other-service/howm-android

>また以下を .vimrc に追加に追加すると挿入モードでは通常入力になり、ノーマルモード移行時に英数確定入力化が自動で行われます。
https://sites.google.com/site/fudist/Home/qfixhowm/other-service/howm-android

##### >vim スクリプト

```vim
" DroidVim IME control
" Input mode : 50 (Default) 51-53 (Disable word prediction)
let s:ImeNormal = 53
let s:ImeInsert = 50
augroup ATEModIME
  au!
  au InsertEnter * call IMCtrl('On')
  au InsertLeave * call IMCtrl('Off')
  au VimEnter    * call IMCtrl('VimEnter')
augroup END
function! IMCtrl(cmd)
  let cmd = a:cmd
  if cmd == 'On'
    call s:ATEMod(s:ImeInsert)
  elseif cmd == 'Off'
    call s:ATEMod(s:ImeNormal)
  elseif cmd == 'Toggle'
    call s:ATEMod(55)
  elseif cmd == 'VimEnter'
    call s:ATEMod(s:ImeNormal)
  endif
  return ''
endfunction
function! s:ATEMod(cmd)
  let cmd = printf('echo -n -e "\0033[%st"', a:cmd)
  exe 'silent !'.cmd
endfunction
```

とあり、この vim スクリプトをそのまま droidvim アプリのデフォルトの .vimrc に追記して、このようにしました。

Fire 8 スクリーンキャプチャ .vimrc 　
![IMG_20201223_204850_854.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/225786/31bd5dd5-6ea7-18f9-9fdd-44ba31b56abc.jpeg)
[（全部まるごと記載はこちらの gist ）](https://gist.githubusercontent.com/dauuricus/0f792ffe242ae90c71e206ff49aa5f20/raw/c1a909ab6607df17cefbcdf75ab84291ead26580/.vimrc "gist")

insert モードに入ったときの値を以下のように変更しています。

上の .vimrc のキャプチャ画像で 38 行目

```vim
let s:ImeInsert = 52
```

と変更して使っています（他は上の引用 vim スクリプトそのままです）。この設定はまた変わるかましれませんが、推奨されている設定値 50 だと日本語キーボードから、英語キーボードをいくつか切り替えて、再び日本語キーボードに戻ると、アルファベットと数字のみ入力切り替え可能になって、日本語入力はできなくなることがありましたから、 52 にしました。
これは以下の値と効果の対になっているということのようです。

##### >設定値詳細
>使用しているIMEによって同じ設定でも動作は異なります。
>https://droidterm-e8a40.firebaseapp.com/droidvim/ja-JP/#h75

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


たどたどしい設定の様子と、テストの様子 [youtube](https://youtu.be/1rmxtpyywFM)です。

ハードウェアキーボード（ US 配列）のコマンドキーとスペースキーで IME を切り替えています。

とてもいいかんじ。

ありがとう。

でもまだ、夢がかなっていません。

サパティスタコーヒーを飲みたくなってきました。

日本語の入力に SKK を使ってみたいと考えていますが、まだ方法を知らないので、来年になってしまうような気がします。

---
Cf.
vim について参考にさせてもらった youtube 映像
プログラミルクボーイ
https://youtu.be/P7LNU9HYr7M

2020 Lectures　editors(vim)
https://youtu.be/a6Q8Na575qc

いくつかの Text Editor の学習曲線
UNIVERSITY OF MINNESOTA
Tool Time Session 1: Emacs Basics
https://youtu.be/HyMCzEwI4cU?t=127

vim は、なぜウガンダの子供たちへのチャリティーソフトウェアなのか
Vim 25 presentation by Bram Moolenaar on 2016 November 2
https://youtu.be/ayc_qpB-93o?t=1421
Interview with Bram Moolenaar
https://moolenaar.net/pcrevue.html

Algorithms in Africa　From Issue #86
June 2001 Jun 01, 2001  By Wayne Marshall
https://web.archive.org/web/20120721132048/http://www.linuxjournal.com/article/4657?page=0,3
sponsor - Vim日本語ドキュメント
https://vim-jp.org/vimdoc-ja/sponsor.html
ICCF Holland (wikipedia)
https://en.m.wikipedia.org/wiki/ICCF_Holland