Input VimはブラウザのテキストフィールドにモーダルVim編集をもたらします
Input Vimは、Takashi Kokubun(k0kubun)によって開発され、Chrome内のテキストフィールドにVimのモーダル編集をもたらします。このアプリは、Normal、Insert、Visual、Visual Lineモードを入力、テキストエリア、contenteditable要素にマッピングし、動作、演算子、テキストオブジェクト、および要素ごとの元に戻すスタックを提供することで、ユーザーがホームローを離れずに編集できるようにします。ビジュアルフィードバックは、ブロックカーソル、モードバッジ、保留中のコマンド表示を使用します。検索とオプションのクリップボード同期は、リッチウェブエディタへの編集を拡張します。これは、Vimに精通した開発者、ライター、パワーユーザーに適しています。
それは入力フィールドにどのレベルのVim編集をもたらしますか?
Input Vimは、<input>、<textarea>、およびcontenteditable要素を対象とした、ウェブ入力内にほぼ完全なモーダル編集レイヤーを提供します。コア要素が存在します:ノーマル/挿入/ビジュアル/ビジュアルラインモード、単語やドキュメントの移動を含む動作セット、削除/変更/ヤンクのような合成可能なオペレーター、そして正確な選択のための高度なテキストオブジェクトです。これらの機能により、ユーザーはキーボードを離れることなく、複数のステップの編集を行うことができます。
ラップされたテキストとキャレットの動きに対してどのように動作しますか?
このアプリは、テキストがソフトラップされているときにjやkのような垂直移動を修正するカスタムキャンバスベースの行測定システムを使用することで、ブラウザのテキストエリアにおける一般的なキャレットの問題に対処します。要素ごとの元に戻すとやり直しは、ブラウザのネイティブ履歴とは独立して動作するため、フィールド内の編集は周囲のページ状態に影響を与えることなく予測可能にロールバックされます。この拡張機能は、ランタイムオーバーヘッドを低く保つために、依存関係ゼロのバニラJavaScriptで書かれています。
ページのショートカットやシステムと衝突を避けるにはどうしますか?
Input Vimは、ノーマルモードのエントリーを保護するために、Escキーをハイジャックすることからサイトを防ぎ、ユーザーが特定のドメインで拡張機能を無効にできるサイト除外設定を公開します。ビジュアルフィードバックは、ページCSSとのスタイリングの競合を最小限に抑えるために、シャドウDOMを通じてレンダリングされます。オプションのクリップボード同期設定は、その動作が望ましい場合に、ヤンクとペーストをオペレーティングシステムのクリップボードにリンクします。
誰がワークフローに適していて、どこに統合されますか?
このアプリは、ウェブフォーム、チャット入力、およびCMSフィールドを編集し、サイト全体で一貫したホームロー編集を望む経験豊富なVimユーザーを対象としています。深いcontenteditableサポートにより、NotionやGitHubなどの最新のウェブアプリ内で動作します。開発者k0kubunの開発者ツールやオープンソースプロジェクトにおけるバックグラウンドは、ブラウザのナビゲーションリマッピングではなく、予測可能なテキストモデルの動作に焦点を当てている理由を説明しています。
学習曲線を受け入れるVimユーザーのための集中ツール
Input Vimは、ウェブフォームと対話する際にモーダル編集を維持したいと考えているVimにすでに流暢なユーザーにとって実用的なオプションです。トレードオフは、Vimの筋肉記憶を前提としているため、新しいユーザーはかなりの調整期間に直面し、一部の特注ウェブコンポーネントは完璧に動作しない可能性があります。まずは余分な入力で試して、バインディングに適応してから広く有効にしてください。





