私は、主にWindowsベースの会社の開発者向けに、仮想化されたLinuxボックスを(ローカル開発サーバーとして)セットアップしています。一部の開発者は、(とりわけ)vimについて否定的な意見を述べています。 (彼らは何らかの形でLinux / Unixを表しており、環境の使用が明らかに難しいことを証明しているようです。)私が最初にvimを使用せざるを得なかったとき(システム管理者はemacsのインストールを拒否しました!)学習曲線なので、少し同情しています。 nano
を紹介するのではなく、私は思いついた。 (おそらく彼らは決して通り過ぎないでしょう)移行を容易にするためにvimでnanoのようなメニューを設定することは可能かもしれません。 (非常に初心者向けの.vimrcファイルを見つけましたが、nanoスタイルのメニューのようなものはありません。)
唯一の問題は、vim(gvimではなく)でメニューを設定できるという主張が機能しなかったことを私が見つけた唯一のことであり、問題を修正しようとすると、解決すべきさらに別の問題が残りました。多くの時間を無駄にする前に、それが実際に可能かどうかを知りたいと思います。それを行う方法についての情報はほとんどないようです。
承認された回答:
はい、可能です。 menu.vim
をロードできます (デフォルトのgvimメニュー定義)、または最初から始めて独自の定義を作成し、:emenu
からアクセスすることもできます。 。ただし、これでは、nanoのような常に表示されるメニューは提供されません。コマンドラインタブ補完を使用してメニューをナビゲートする機能を提供します。
ユーザーがvimrcを持っていない場合は、viの互換性を無効にすることから始めます。
:set nocompatible
でスマートコマンドライン補完を有効にする (可能なすべての選択肢を一覧表示し、
で結果をナビゲートできるようにします 、<ダウン>コード> 、
<左>コード> 、
<右>コード> 、および
):
:set wildmenu
一致するすべての選択肢の間で繰り返しプレスサイクルを行います:
:set wildmode=full
デフォルトのメニューをロードします(これはgvimでは自動的に行われますが、ターミナルvimでは行われません):
:source $VIMRUNTIME/menu.vim
これらの4つのコマンドの後で、:emenu
でタブ補完を呼び出すことにより、メニュー補完を手動でトリガーできます。 コマンド、:emenu
を実行します
Tabキーと矢印キー、およびEnterキーを使用して結果をナビゲートできます(サブメニューの展開と項目の選択の両方を行います)。次に、さらに一歩進んで、マッピングをバインドして:emenu
と入力しなくても、メニューをポップアップ表示することで、これをさらに便利にすることができます。 毎回:
マッピングでCtrl-Zを
を押すように動作させます コマンドラインでインタラクティブに:
:set wildcharm=<C-Z>
そして、:emenu
を自動的に呼び出すバインディングを作成します 完了:
:map <F4> :emenu <C-Z>