はじめに
VimLMは、ネイティブのLLM(Large Language Model)によって駆動されるコードアシスタントを提供するVimプラグインです。GitHub Copilot と Cursor にインスパイアされた VimLM は、Vim ワークフローに直接組み込まれたコンテキストに沿ったコード理解、コード要約、AI アシスト機能を統合しています。直感的なキーバインドとスプリットスクリーン対応でMLX互換モデルを幅広くサポートし、オフライン環境でもAPIコールやデータリークなく安全に使用できます。
機能一覧
- モデル非依存コンフィギュレーションファイルにより、MLX対応機種を使用可能
- Vim ネイティブ・ユーザー・エクスペリエンス直感的なキーバインドと画面分割レスポンス
- 深い文脈理解現在のファイル、ビジュアル選択、参照ファイル、プロジェクトのディレクトリ構造からコードコンテキストを取得します。
- 会話コーディング後続のクエリーによる反復最適化
- オフライン・セキュリティ完全なオフライン使用、APIコールやデータ漏洩は不要
- コードの抽出と置換レスポンスからコードのブロックを選択領域に挿入します。
- 外部コンテキストの追加includeコマンドで外部ファイルやフォルダをコンテキストに追加する。
- プロジェクトファイル生成!deployコマンドでプロジェクトファイルを生成。
- 反応は続いているcontinueコマンドで中断されたレスポンスの生成を続ける。
- スレッドの続き!followupコマンドで現在のスレッドを続行する。
ヘルプの使用
設置プロセス
- Python 3.12.8がシステムにインストールされていることを確認してください。
- pipを使ってVimLMをインストールする:
pip install vimlm
基本的な使い方
- ノーマルモードから::
- プレス
Ctrl-l
現在の行とファイルをコンテキストに追加する。 - ヒント例:「item.contentからHTMLタグを削除する正規表現」。
- プレス
- ビジュアル・モードから::
- コードブロックを選択し
Ctrl-l
選択されたブロックと現在のファイルをコンテキストに追加します。 - サンプルヒント:「このコードをasync/await構文に変換する」。
- コードブロックを選択し
- フォローアップ対話::
- プレス
Ctrl-j
今のスレッドを続けてください。 - フォローアップの例:「マニフェストV3への変更」。
- プレス
- コードの抽出と置換::
- プレス
Ctrl-p
最後に選択された領域(通常モード)またはアクティブな選択領域(ビジュアルモード)に、レスポンスのコードブロックを挿入します。 - サンプル・ワークフロー:ビジュアル・モードでコードの一部を選択し
Ctrl-l
このコードをasync/await構文に変換してください。Ctrl-p
選択したコードを置き換える。
- プレス
- インラインコマンド::
インクルード
外部コンテキストの追加- 例: "このアプリケーションをAJAX化する !include ~/scrap/hypermedia-applications.summ.md".
デプロイ
プロジェクトファイルを生成します。- 例:「REST APIエンドポイントの作成 !deploy ./api"。
続ける
応答を生成し続ける。- 例:「Summary !include large-file.txt !continue 5000」。
フォローアップ
今のスレッドを続けてください。- 例:「Chromeの拡張機能を作成する」。
詳しい操作手順
- コンテキストの追加::
- 通常モードで
Ctrl-l
現在の行とファイルをコンテキストに追加する。 - ビジュアル・モードでは、コード・ブロックを選択して
Ctrl-l
選択されたブロックと現在のファイルをコンテキストに追加します。
- 通常モードで
- コードの生成::
- 通常モードまたはビジュアルモードで
Ctrl-l
コード生成のプロンプト。 - プレス
Ctrl-p
生成されたコードを選択領域に挿入する。
- 通常モードまたはビジュアルモードで
- フォローアップ対話::
- プレス
Ctrl-j
反復最適化のために現在のスレッドを続行する。
- プレス
- 外部コンテキストの追加::
- 利用する
インクルード
コマンドを使って、外部のファイルやフォルダをコンテキストに追加することができる。 - 例: "このアプリケーションをAJAX化する !include ~/scrap/hypermedia-applications.summ.md".
- 利用する
- プロジェクトファイルの生成::
- 利用する
デプロイ
コマンドでプロジェクト・ファイルを生成する。 - 例:「REST APIエンドポイントの作成 !deploy ./api"。
- 利用する
- レスポンスの生成を続ける::
- 利用する
続ける
コマンドは中断された応答を生成し続ける。 - 例:「Summary !include large-file.txt !continue 5000」。
- 利用する
- スレッドの続き::
- 利用する
フォローアップ
コマンドで現在のスレッドを続行する。 - 例:「Chromeの拡張機能を作成する」。
- 利用する