(端末ベースの)vimでメニューを作成して使用できますか?


18

私は主にWindowsベースの会社の開発者向けに仮想化されたLinuxボックスを(ローカル開発サーバーとして)設定しています。(彼らはLinux / Unixをなんらかの形で表現し、環境が使いづらいほど難しいことを証明しているようです)。学習曲線なので、私はやや同情的です。私は、それらを紹介するのではなくnano(おそらく彼らは決して通り抜けることはないでしょう)、vimにナノのようなメニューを設定して移行を容易にすることができるかもしれないと思いました。(それらを提供するために非常に初心者に優しい.vimrcファイルを見つけましたが、nanoスタイルのメニューのようなものはありません。)

唯一の問題は、vim(gvimではない)でメニューをセットアップすることが可能であると主張している唯一の問題であり、問​​題を修正しようとしても、解決すべき別の問題が残っています。たくさんの時間を無駄にする前に、それが実際に可能であるかどうかを知りたいと思います。


3
これはVimヘルプにあります::h console-menus
アレクセイ

@Alexey:ありがとう!知っておくと非常に便利です...「5.2新しいメニューの作成」セクションまでスクロールすると、希望どおりに動作します。
iconoclast

回答:


18

はい、可能です。menu.vim(デフォルトのgvimメニュー定義)をロードするか、ゼロから始めて独自に作成し、からアクセスできます:emenu。ただし、これは常にナノのような常に表示されるメニューを提供しません。コマンドラインのタブ補完を使用してメニューをナビゲートできます。

ユーザーがvimrcを持っていない場合は、viの互換性を無効にすることから始めます。

:set nocompatible

上のスマートコマンドライン補完を有効にします<Tab>(すべての可能な選択肢をリストアップし、との結果をナビゲート可能<Up><Down><Left><Right>、および<Enter>):

:set wildmenu

一致するすべての選択肢の間で繰り返しプレスサイクルを行います。

:set wildmode=full

デフォルトのメニューをロードします(これはgvimでは自動的に行われますが、ターミナルvimでは行われません):

:source $VIMRUNTIME/menu.vim

これらの4つのコマンドの後、:emenuコマンドでタブ補完を呼び出すことにより、手動でメニュー補完をトリガーできます。:emenu<space><tab>

Tabキーと矢印キー、およびEnterキーを使用して結果をナビゲートできます(両方ともサブメニューを展開し、アイテムを選択します)。さらに一歩進んで、:emenu毎回入力することなく、メニューをポップアップ表示するためにマッピングをバインドすることで、さらに便利になります。

マッピング内のCtrl-Z <Tab>を、コマンドラインをインタラクティブに押すような動作にします。

:set wildcharm=<C-Z>

そして、自動的に:emenu補完を呼び出すバインディングを作成します:

:map <F4> :emenu <C-Z>

2
鮮やかさ!ビールを買う方法を教えてください!
iconoclast

2

私は、自分が使用しているプラ​​グインのすべてのコマンドとキーの組み合わせを思い出せないという問題を抱えています。さらに、新しいキーマッピングを設定したり、コマンドにアクセスしてコマンドにアクセスしたりすることなく、コマンドをすばやく実行する簡単な方法が必要でした。

ヴィムヴェヌ

vimで編集できるファイルタイプごとにメニューを定義できる小さなvimメニュープラグインを作成しました。このようにして、さまざまなファイルタイプのメニューオプション「コンパイル」を定義し、編集しているファイル(.py、.c、.c ++、...)に応じてコードをコンパイルするための正しい指示を開始できます。または、マークダウンファイルに「テーブル」プラグインコマンドのサブメニューを作成します。

こちらでチェックしてください:https : //github.com/Timoses/vim-venu

副次的注意として:私は誰もが自分の好きなテキストエディタを選択すべきだと思います。Vimには多少の障壁があります(学習する価値があります!)。誰かが学習したくない場合、vimはその人にとってあまり役に立ちません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.