us キーボードと vichrome

chrome の神機能拡張、vichrome。

macbook pro は us キーボードを使っている身として、vichrome のコマンドラインモードに入る度々やられる "ひっかけ問題"、どうにかならないものか、と。

keys
keys / DaveBleasdale

で、こういうことでした、というお話。

[Key Mapping / Command Aliases] ページの [Key Mapping / Alias Setting] に、以下を追記。;

nmap ; :GoCommandMode

これでコマンドラインモードに入るのに、いちいち Shift キー押しながら、とやることなく、直 ; セミコロンキー一発で逝ける。
となります。

何時もの通り、これが最もスマート、とか、本当の正解なのか、という事には自信ありません。
でも。とりあえずは。...動く :p

背景

上述通り、ここでは us キーボードを使っています。

macvim では、随分と前のことになるのですが vim 自身の導入当初から、こちらを知って便利!と「';'キーと':'キーを入れ替え」てます。;

" ;でコマンド入力( ;と:を入れ替)
noremap ; :
noremap : ;

で、
オフィスで宛がわれている環境もフツーに win で、そこでも vim 入れているのですが、そこの入力デバイスも当然フツーに jis キーボード。

なもんですから、完全に身に沁みついている。

chrome 使って作業中、いつもの調子でコマンドラインモードに入ろうとすると...、
ちょいとしたコトではありますが、結構なストレスであったりもするのです。

どうにかせねば、と。

と言う事で、
vim だし chrome だし、そんな機能拡張だから、当然どなたか先人がいらっしゃるだろう、と思い、軽い気持ちで検索窓を叩いたのですが、
結構、少ないものなのですね。

検索結果から、探す事自身が面倒に思えてくるほど。

やったこと

; キーに、コマンドラインモードに入るコマンド GoCommandModeマッピングします。

  1. vichrome の [オプション] リンク蹴って設定ページに入り、[Key Mapping / Command Aliases] ページを表示。
  2. 同ページ内にある [Key Mapping / Alias Setting] 内に、nmap ; :GoCommandMode を記載し、[Update Key Mapping] クリック。
    • 定義する場所は、任意で良いはずです*1
    • ここで設定状況を確認(体感?)できるようにするため [Key Mapping / Alias Setting] エリアの下にある、[All KeyMappings] の内容をチェックしておくと良いかと思います。
      見るべき箇所は、[Normal Mode Mapping (nmap)] パラグラフの ; : GoExtFMode とある行です。
  3. 今作業している設定ページを一旦閉じ、もう一度設定ページへアクセスします。
    再び [Key Mapping / Command Aliases] ページは [All KeyMappings] を確認。先ほどの ; キーのマッピングを示す ; : GoExtFMode の行が ; : GoCommandMode となっていたら ok。
  4. 新しいページを開く、または既ページのリロードで確認。
    ; キーのみの押下で、vichrome のコマンドラインモードへ入れるようになると思います。

ちなみに、設定の確認の仕方で触れた、[All KeyMappings]。 ここが設定にしたがって内容が変わること、ついさっき知りました。コレ知った時は、結構感動。

こんな感じにしています

[Key Mapping / Alias Setting] の内容です。

既存のデフォルト定義以外の、追記のみです。;

たいした設定はないのですが、個人的に重宝しているのが p へのマッピング

これは pinboard.in の bookmark ダイアログを呼んでいます。
なので "p"。((デフォルトで pマッピングされている機能は、個人的にあまり使う事はないように思えたので、潰してしまって自分の好きなのを充てています。))

Open コマンドで呼んでいるのは、bookmarket への javascript リンクです。

こうすることで、ブックマークするのに、キーボードから手を離しマウスに移してブラウザのブックマークバーへマウスを...、のようなステップを重ねることなく、p キー押下のみで実現できるようになります。

時々、ポップアップのブロックと衝突する時やらあって上手く機能しない時ありますが、そんな時は一旦 [esc] 叩いてから p するとか、
それでも挙動がおかしい場合は、ページを一度リロードしてから p るとかするといいみたいです(笑

メモ

蛇足です。

始めは、vimrc と同じ要領で、

nmap ; :
nmap : ;

とかやったのですが、上手く行きませんでした。

そして、vchrome でのマップコマンドは、nmapimapcmap そして emap

nmap is for normal mode mapping, imap is for insert mode, cmap is for command/search mode and emap is for emergency mode.

だそうです。
最初分かってなくてちょっと迷いました。

ところで、はてなブログで gist を載せるとき、行を選択できたりできないんですかね。
全部の行ではなく、一部の数行、とか。
んなのできるといいのに、と思うのは自分だけか...だろうな

と言う事でおしまいです。

*1:ここでは、既存コンテンツの最後に追記するかたちをとってます。