vimキーバインドに対応しました — Inkdrop

vimキーバインドに対応しました — Inkdrop
原文: https://blog.inkdrop.info/enabling-vim-keybindings-547f148b73b1
Markdownエディタ Inkdrop は v3.11.0 からプラグイン拡張によるvimのキーバインドに対応しました。機能は以下の通りです(直訳ですみません):
- テキストオブジェクトを含む全ての共通のモーションとオペレータ
- 直交的なオペレータモーション
- ビジュアルモード — characterwise, linewise, blockwise
- インクリメンタルにハイライトする検索 (/, ?, #, *, g#, g*)
- 確認付き検索・置換 (:substitute, :%s)
- 検索ヒストリ
- ソート (:sort)
- マーク (,)
- :global
- クロスバッファ yank/paste
- クリップボードとの連動
vimプラグインをインストールするには ipm コマンドを使います。これはプラグインを管理するためのCLIツールです。詳しくはこちらをご参照ください。これを使って以下のようにコマンドを実行してください。
<span id="e8ad" class="re pv io pt b gz rf rg m rh ri">> ipm install vim<br></br>Installing vim to /Users/<user>/Library/Application Support/inkdrop/packages ✓</span>
これでインストールできました。Inkdropをメニューからリロードして、プラグインをアクティベートしてください: Menu → Developer → Reload
Inkdropは標準で柔軟なキーカスタマイズ性を提供しています。デフォルトのvimキーマップはこちらに定義されています。現在のキーマップ設定はPreferencesから確認できます:

vimに関するキーマップを確認したい場合は、search keybindingsというラベルのついた入力欄に “vim-mode” と入力してください。するとリストが該当するものだけにフィルタされます。 keymap.cson を編集することでこの設定を好きにオーバーライドする事ができます。例えば、以下の設定は b を前のワードに移動するオペレーションに、 ctrl-a をテキストのすべて選択に割り当てています:
<span id="2882" class="re pv io pt b gz rf rg m rh ri">'.CodeMirror.vim-mode:not(.insert-mode):not(.key-buffering) textarea':<br></br> 'b': 'vim-mode:move-to-previous-word'<br></br> 'ctrl-a': 'editor:select-all'</span>
一行目のCSSセレクタはvimのモードも表していることに注意してください。この例ではinsertモード以外のキーマップを指定しています。他のモードに該当するCSSセレクタは以下のとおりです:
- インサートモード以外: .CodeMirror.vim-mode:not(.insert-mode):not(.key-buffering) textarea
- ノーマルモード: .CodeMirror.vim-mode.normal-mode:not(.key-buffering) textarea
- インサートモード: .CodeMirror.vim-mode.insert-mode textarea
- 置き換えモード: .CodeMirror.vim-mode.replace-mode textarea
- ビジュアルモード: .CodeMirror.vim-mode.visual-mode:not(.key-buffering) textarea
このプラグインでは、Inkdropを操作できるいくつかのExコマンドに対応しています。
現在編集中のノートをディスクに保存します。
ノートリストにある次のノートを開きます。
ノートリストにある前のノートを開きます。
HTMLプレビューを表示します。
Side-by-sideモードを切り替えます。
このプラグインはオープンソースです。改善のアイデアをお持ちでしたらぜひコントリビュートお待ちしています!