Gui

Nvim の :help ページは、生成されたもので、ソースtree-sitter-vimdocパーサーを使用して作成されています。


Nvim グラフィカルユーザーインターフェース GUI
Nvim の ui-protocol をサポートするクライアントは、Nvim の UI として使用できます。また、複数の UI を同じ Nvim インスタンスに接続できます。「UI」と「GUI」という用語は、すべての Nvim UI クライアントが同じ可能性のある機能を持つため、しばしば同じ意味で使用されます。「TUI」はターミナルに出力する UI クライアントを指し、「GUI」は OS のグラフィックシステムに直接出力します。
特記されていない限り、このドキュメントでは TUI と GUI の両方で利用可能な UI 機能について説明します (UI が特定の機能をサポートしていると仮定します)。ターミナル UI に固有の注意事項については、TUI を参照してください。"gui-" プレフィックスが付いたヘルプタグは UI 機能を指し、"ui-" プレフィックスが付いたヘルプタグは ui-protocol を指します。
Nvim はデフォルトの組み込み UI (TUI) を提供していますが、他にも多くの (サードパーティの) GUI を代わりに使用できます。

GUI の起動 gui-config gui-start

ginit.vim gui-init gvimrc $MYGVIMRC GUI 固有の設定のために、Nvim は UIEnter イベントを提供します。これは他の 初期化 の後、または UI がアタッチされるたびに発生します (複数の UI を任意の Nvim インスタンスに接続できます)。
例: これは UI の "rgb" フィールドの値を "g:gui" に設定します。
:autocmd UIEnter * let g:gui = filter(nvim_list_uis(),{k,v-> v.chan==v:event.chan})[0].rgb
:winp :winpos E188 :winp[os] GUI Vim ウィンドウの左上隅の現在の位置をピクセル単位で表示します。すべてのバージョンで動作するわけではありません。 getwinpos(), getwinposx() および getwinposy() も参照してください。
:winp[os] {X} {Y} E466
GUI Vim ウィンドウを指定された {X} および {Y} 座標に配置します。座標は、ウィンドウの左上隅の位置をピクセル単位で指定する必要があります。GUI ウィンドウがまだ開かれていない場合、値はウィンドウが開かれるまで記憶されます。位置は、ウィンドウが画面に収まるように調整されます (可能な場合)。
:wi :win :winsize E465 :win[size] {width} {height} ウィンドウの高さを {width} x {height} 文字に設定します。廃止されました。":set lines=11 columns=22" を使用してください。

スクロールバー gui-scrollbars

垂直スクロールバーと水平スクロールバーがあります。 'guioptions' オプションを使用して、表示するものを構成できます。
インターフェースは次のようになります (:set guioptions=mlrb の場合)
                      +------------------------------+ `
                      | File  Edit                 Help | <- Menu bar (m) `
                      +-+--------------------------+-+ `
                      |^|                            |^| `
                      |#| Text area.                    |#| `
                      | |                            | | `
                      |v|__________________________|v| `
Normal status line -> |-+ File.c               5,2  +-| `
between Vim windows   |^|""""""""""""""""""""""""""|^| `
                      | |                            | | `
                      | | Another file buffer.     | | `
                      | |                            | | `
                      |#|                            |#| `
Left scrollbar (l) -> |#|                            |#| <- Right `
                      |#|                            |#|    scrollbar (r) `
                      | |                            | | `
                      |v|                            |v| `
                      +-+--------------------------+-+ `
                      | |< ####                   >| | <- Bottom `
                      +-+--------------------------+-+    scrollbar (b) `
スクロールバーまたはメニューのコンポーネントは、'guioptions' 文字列に適切な文字を配置しないことでオフにできます。下のスクロールバーは 'nowrap' が設定されている場合にのみ役立ちます。

垂直スクロールバー gui-vert-scroll

各 Vim ウィンドウには、そのバッファー内のテキストを移動するために上下にスクロールできるスクロールバーが隣にあります。スクロールバーつまみのサイズは、ウィンドウに表示できるバッファーの割合を示します。スクロールバーを一番下までドラッグすると、ファイルの最後の行がウィンドウの上部に表示されます。
ウィンドウが (別のウィンドウの拡張によって) 高さゼロに縮小されると、そのスクロールバーは消えます。ウィンドウが復元されると、再び表示されます。
ウィンドウが垂直に分割されている場合、そのウィンドウが現在のウィンドウであり、現在のウィンドウの中央を取り、垂直線を描画すると、この線がウィンドウを通過するときにスクロールバーが表示されます。両側にスクロールバーがある場合、現在のウィンドウの中央が左半分にある場合、右側のスクロールバー列には右端のウィンドウのスクロールバーが含まれます。同じことが反対側でも発生します。

水平スクロールバー gui-horiz-scroll

水平スクロールバー (Vim GUI の下部) は、'wrap' オプションがオフになっている場合にテキストを横方向にスクロールするために使用できます。スクロールバーつまみのサイズは、最も長い表示行のテキストをできるだけ左と右にスクロールできるように調整されます。カーソルは必要に応じて移動され、表示されている文字の上に残る必要があります ('virtualedit' が設定されていない場合)。
最も長い表示行の長さを計算するには、かなりの計算が必要であり、何かが変更されるたびに計算を行う必要があります。 これに時間がかかりすぎたり、カーソルが別の行にジャンプするのが気に入らない場合は、'guioptions' に 'h' フラグを含めます。すると、スクロールは現在のカーソル行のテキストによって制限されます。

ドラッグアンドドロップ drag-n-drop

1 つ以上のファイルを Vim ウィンドウにドラッグアンドドロップできます。ファイルは :drop コマンドを使用したかのように開かれます。
これを行うときに Shift キーを押したままにすると、Vim は最初にドロップされたファイルのディレクトリに移動します。Ctrl キーを押したままにすると、Vim は常に新しいウィンドウをファイル用に分割します。そうしないと、現在のバッファが変更された場合にのみ行われます。
Vim にディレクトリをドロップすることもできます。これにより、そのディレクトリのエクスプローラープラグインが起動します (有効になっている場合。そうでない場合はエラーメッセージが表示されます)。Shift キーを押したままにして、代わりにディレクトリを変更します。
Vim がコマンドラインを編集している場合、ドロップされたファイルとディレクトリの名前がカーソル位置に挿入されます。これにより、これらの名前を任意の Ex コマンドで使用できます。特殊文字 (スペース、タブ、二重引用符、「|」。非 MS-Windows システムではバックスラッシュ) はエスケープされます。

メニュー menus

概要については、ユーザーマニュアルの usr_42.txt を参照してください。
メニューの使用法 using-menus
基本的に、メニューはマッピングのように使用できます。必要なだけ多くの独自のメニューを定義できます。長年の Vim ユーザーはメニューをあまり使用しません。しかし、その力は、独自のメニューとメニュー項目を追加することにあります。これらは、キーシーケンスが何であったか思い出せない場合に最も役立ちます。
別の言語でメニューを作成する方法については、:menutrans を参照してください。
menu.vim
デフォルトのメニューはファイル "$VIMRUNTIME/menu.vim" から読み取られます。パスの取得元については、$VIMRUNTIME を参照してください。独自のメニューを設定できます。デフォルト設定から始めるのが良いアイデアです。さらにアイテムを追加したり、デフォルトがまったく気に入らない場合は、すべてのメニューを削除して :unmenu-all から始めたりできます。また、次の行を vimrc ファイル (gvimrc ファイルではありません!) に追加して、デフォルトのメニューがロードされないようにすることもできます。
:let did_install_default_menus = 1
構文メニューも回避したい場合
:let did_install_syntax_menu = 1
構文メニューの最初の項目を使用すると、メニューで使用可能なすべてのファイルタイプを表示できます (ロードに少し時間がかかる場合があります)。起動時にすべてのファイルタイプを既に表示したい場合は、次を追加します。
:let do_syntax_sel_menu = 1
menu.vim は、:syntax on または :filetype on が実行されたとき、または .vimrc ファイルが読み込まれた後にソースが指定されることに注意してください。つまり、'encoding' オプションとメッセージの言語 (:language messages) は、それよりも前に設定する必要があります (変更する場合)。
コンソールメニュー
このドキュメントは GUI セクションにありますが、実際にはコンソールモードでもメニューを使用できます。この場合、menu.vim を明示的にロードする必要があります。これはデフォルトでは行われません。:emenu コマンドと 'wildmenu' を使用したコマンドライン補完を使用すると、実際のメニューシステムのようにメニューエントリにアクセスできます。これを行うには、次のコマンドを vimrc ファイルに入力します。
:source $VIMRUNTIME/menu.vim
:set wildmenu
:set cpo-=<
:set wcm=<C-Z>
:map <F4> :emenu <C-Z>
<F4> を押すと、メニューが起動します。カーソルキーを使用してメニューエントリを選択できます。それを実行するには <Enter> を押します。キャンセルする場合は <Esc> を押します。
新しいメニューの作成 creating-menus
:me :menu :noreme :noremenu E330 E327 E331 E336 E333 E328 E329 E337 E792 新しいメニュー項目を作成するには、":menu" コマンドを使用します。これらはほとんど ":map" コマンドのセット ( map-modes を参照) と似ていますが、最初の引数は、メニューとサブメニューのパスとしてドット '.' で区切られたメニュー項目名です。例:
:menu File.Save  :w<CR>
:inoremenu File.Save  <C-O>:w<CR>
:menu Edit.Big\ Changes.Delete\ All\ Spaces  :%s/[ ^I]//g<CR>
最後は、メニューバーに "Edit" という新しい項目を作成します。この項目でマウスボタンを押すと、"Big Changes" という項目を含むメニューが表示されます。これは、選択すると操作を実行する "Delete All Spaces" という項目を含むサブメニューです。
ターミナルモード用のメニューを作成するには、キーマッピング(:tmap)とは異なり、:tmenuの代わりに:tlmenuを使用します。これは、:tmenuがすでにメニューのツールチップを定義するために使用されているためです。terminal-inputを参照してください。
メニュー名における特殊文字
menu-shortcut
& 次の文字がショートカットキーになります。各ショートカットキーが(サブ)メニュー内で一度だけ使用されるようにしてください。メニュー名にリテラルの「&」を挿入したい場合は、「&&」を使用します。menu-text
<Tab> メニュー名と右揃えのテキストを分離します。これは、同等のタイプされたコマンドを表示するために使用できます。「<Tab>」というテキストは、ここでは便宜上使用できます。実際のタブを使用する場合は、その前にバックスラッシュを置くことを忘れないでください!例
:amenu &File.&Open<Tab>:e  :browse e<CR>
[文字通り入力] ショートカット "F"(<Alt>キーを押したまま)を使用し、次に "O" を使用すると、このメニューを使用できます。2番目の部分は「Open :e」として表示されます。「:e」は右揃えで、「O」はショートカットであることを示すために下線が引かれています。
:am :amenu :an :anoremenu 「:amenu」コマンドは、ターミナルモードを除くすべてのモードでメニューエントリを一度に定義するために使用できます。コマンドが正しく機能するように、一部のモードでは文字が自動的に挿入されます。
モード 挿入された文字 追加された文字
ノーマル なし なし ビジュアル <C-C> <C-\><C-G> 挿入 <C-\><C-O> コマンドライン <C-C> <C-\><C-G> オペレータ待ち <C-C> <C-\><C-G>
:amenu File.Next        :next^M
は次と同じです
:nmenu File.Next        :next^M
:vmenu File.Next        ^C:next^M^\^G
:imenu File.Next        ^\^O:next^M
:cmenu File.Next        ^C:next^M^\^G
:omenu File.Next        ^C:next^M^\^G
注意: 挿入モードでは、これはCTRL-Oのために、単一のノーマルモードコマンドに対してのみ機能します。2つ以上のコマンドがある場合は、「:imenu」コマンドを使用する必要があります。任意のモードでテキストを挿入する場合は、式レジスタを使用できます。
:amenu Insert.foobar   "='foobar'<CR>P
特別なテキスト<Cmd>は「コマンドメニュー」を開始します。モードを変更せずにコマンドを直接実行します。「:...<CR>」を使用する代わりに、「<Cmd>...<CR>」を使用できます。詳細については<Cmd>を参照してください。例
anoremenu File.Next <Cmd>next<CR>
コマンドラインモードの<Esc>は、マッピングのようにコマンドを実行することに注意してください。これはVi互換です。コマンドラインモードを終了するには、CTRL-Cを使用します。
:nme :nmenu :nnoreme :nnoremenu :nunme :nunmenu 「n」で始まるメニューコマンドはノーマルモードで機能します。mapmode-n
:ome :omenu :onoreme :onoremenu :ounme :ounmenu 「o」で始まるメニューコマンドは、オペレータ待ちモードで機能します。mapmode-o
:vme :vmenu :vnoreme :vnoremenu :vunme :vunmenu 「v」で始まるメニューコマンドは、ビジュアルモードで機能します。mapmode-v
:xme :xmenu :xnoreme :xnoremenu :xunme :xunmenu 「x」で始まるメニューコマンドは、ビジュアルモードおよび選択モードで機能します。mapmode-x
:sme :smenu :snoreme :snoremenu :sunme :sunmenu 「s」で始まるメニューコマンドは、選択モードで機能します。mapmode-s
:ime :imenu :inoreme :inoremenu :iunme :iunmenu 「i」で始まるメニューコマンドは、挿入モードで機能します。mapmode-i
:cme :cmenu :cnoreme :cnoremenu :cunme :cunmenu 「c」で始まるメニューコマンドは、コマンドラインモードで機能します。mapmode-c
:tlm :tlmenu :tln :tlnoremenu :tlu :tlunmenu 「tl」で始まるメニューコマンドは、ターミナルモードで機能します。mapmode-t
:menu-<silent> :menu-silent コマンドラインにエコーされないメニューを定義するには、最初の引数として「<silent>」を追加します。例
:menu <silent> Settings.Ignore\ case  :set ic<CR>
このメニューを使用すると、「:set ic」はエコーされません。ただし、実行されたコマンドからのメッセージは引き続き表示されます。それも非表示にするには、実行されたコマンドに「:silent」を追加します。
:menu <silent> Search.Header :exe ":silent normal /Header\r"<CR>
「<silent>」は「<script>」の直後にも表示される場合があります。
:menu-<script> :menu-script メニューの「to」部分はマッピングについて検査されます。これを望まない場合は、「:noremenu」コマンド(または特定のモードの類似コマンド)を使用します。スクリプトローカルのマッピングを使用する場合は、「:menu」コマンドの最初の引数として、または「<silent>」の直後に「<script>」を追加します。
menu-priority
メニューに優先度を与えることができます。優先度の高いメニューは、より右側に表示されます。優先度は、「:menu」コマンドの前の数値として指定します。例
:80menu Buffer.next :bn<CR>
デフォルトのメニューには、次の優先度があります。File 10 Edit 20 Tools 40 Syntax 50 Buffers 60 Window 70 Help 9999
優先度が指定されていないか、ゼロの場合、500が使用されます。ポップアップメニューの優先度は使用されません。
ヘルプメニューの後ろに表示されるように、9999より高い優先度を使用できますが、これは非標準であり、推奨されません。可能な最大優先度は約32000です。最小は1です。
sub-menu-priority
同じメカニズムを使用して、サブメニューを配置できます。優先度は、メニュー名の前のドットで区切られた優先度のリストとして指定します。
:menu 80.500 Buffer.next :bn<CR>
サブメニューの優先度の指定は、項目が通常の位置に配置されない場合にのみ必要です。たとえば、サブメニューを他の項目の前に配置するには
:menu 80.100 Buffer.first :brew<CR>
または、サブメニューを他の項目の後に配置すると、デフォルトの優先度を持つ追加の項目は、その前に配置されます。
:menu 80.900 Buffer.last :blast<CR>
数値が欠落している場合は、デフォルト値の500が使用されます。
:menu .900 myMenu.test :echo "text"<CR>
メニューの優先度は、新しいメニューを作成するときにのみ使用されます。たとえば、別のモードで既に存在する場合は、優先度は変更されません。したがって、優先度は、メニューを初めて使用するときにのみ指定する必要があります。例外は、ポップアップメニューです。各モード(ノーマル、オペレータ待ち、ビジュアル、挿入、コマンドライン)に個別のメニューがあります。これらの各メニューの順序は異なる場合があります。これは、すべてのモードで同じ順序を持つメニューバーメニューとは異なります。注: 現在、サブメニューの優先度はGUIのすべてのバージョンで機能するわけではありません。
menu-separator E332 メニュー項目は、項目間にスペースを挿入する特別な項目で区切ることができます。システムによっては、これが線または点線として表示されます。これらの項目は「-」で始まり、「-」で終わる必要があります。間の部分は、一意の名前を付けるために使用されます。優先度は、通常の項目と同じように使用できます。例
:menu Example.item1        :do something
:menu Example.-Sep-        :
:menu Example.item2        :do something different
区切り文字にはrhsも必要であることに注意してください。項目が選択されることはないため、何でも構いません。簡単に保つために、単一のコロンを使用します。
gui-toolbar
デフォルトのツールバーはmenu.vimで設定されています。ツールバーの表示は、'guioptions'の文字「T」で制御されます。したがって、メニューとツールバーを一緒に、または単独で、またはどちらも表示しないようにすることができます。外観は、'toolbar'オプションで制御されます。イメージ、テキスト、またはその両方を選択できます。
toolbar-icon
ツールバーは、ToolBarという特別なメニューとして定義され、1つのレベルしかありません。Vimはこのメニューの項目を次のように解釈します。1)「icon=」引数が指定されている場合は、この名前のファイルが使用されます。ファイルは、フルパスまたはベース名で指定できます。最後の場合、ポイント3のように、'runtimepath'の「bitmaps」ディレクトリで検索されます。例
:amenu icon=/usr/local/pixmaps/foo_icon.xpm ToolBar.Foo :echo "Foo"<CR>
:amenu icon=FooIcon ToolBar.Foo :echo "Foo"<CR>
最初のケースでは拡張子が含まれ、2番目のケースでは省略されていることに注意してください。ファイルを開くことができない場合は、次のポイントが試行されます。ファイル名内のスペースは、バックスラッシュでエスケープする必要があります。メニューの優先度は、アイコン引数_の後_に記述する必要があります。
:amenu icon=foo 1.42 ToolBar.Foo :echo "42!"<CR>
2) 「BuiltIn##」という名前の項目。ここで、##は数値であり、Vimで利用可能な組み込みビットマップの##番目として扱われます。現在、0から30までの31個があり、最も一般的な編集操作をカバーしていますbuiltin-tools
:amenu ToolBar.BuiltIn22 :call SearchNext("back")<CR>
3) 別の名前の項目は、まず'runtimepath'の「bitmaps」ディレクトリで検索されます。見つかった場合、ビットマップファイルがツールバーボタンイメージとして使用されます。正確なファイル名はOS固有であることに注意してください。たとえば、Win32では、次のコマンド
:amenu ToolBar.Hello :echo "hello"<CR>
は「hello.bmp」ファイルを見つけます。X11では、「Hello.xpm」です。MS-Windowsの場合、ビットマップはボタンに合うようにスケーリングされます。MS-Windowsの場合、18 x 18ピクセルのサイズが最適です。MS-Windowsの場合、ビットマップは標準パレットで16色にする必要があります。ライトグレーのピクセルはウィンドウフレームの色に、ダークグレーのピクセルはウィンドウシャドウの色に変更されます。システムによっては、より多くの色も機能する可能性があります。4) それでもビットマップが見つからない場合、Vimは組み込みの名前のリストとの一致を確認します。各組み込みボタンイメージには名前があります。したがって、次のコマンド
:amenu ToolBar.Open :e
は、open.bmpが存在しない場合、組み込みの「ファイルを開く」ボタンイメージを表示します。すべての組み込み名は、menu.vimで使用されているのが確認できます。5) 他のすべてが失敗した場合は、空白ですが機能するボタンが表示されます。
builtin-tools
nr 名前 通常のアクション
00 新規ウィンドウを開く 01 現在のウィンドウでファイルを開くためのブラウズ 02 バッファの内容をファイルに保存 03 最後の変更を元に戻す 04 元に戻した変更をやり直す 05 選択したテキストをクリップボードに切り取る 06 選択したテキストをクリップボードにコピー 07 クリップボードからテキストを貼り付ける 08 現在のバッファを印刷 09 Vim の組み込みヘルプを開く 10 検索コマンドを開始 11 変更されたすべてのバッファをファイルに保存 12 現在の状態のセッションファイルを保存 13 新しいセッションファイルを保存 14 セッションファイルをロード 15 Vim スクリプトとして実行するファイルを参照 16 置換コマンドのプロンプトを表示 17 現在のウィンドウを閉じる 18 現在のウィンドウを多数の行を使用するように変更 19 現在のウィンドウを少数の行を使用するように変更 20 現在のウィンドウを分割 21 シェルを開始 22 前方検索を再度実行 23 後方検索を再度実行 24 ヘルプを検索する単語のプロンプトを表示 25 make を実行し、最初のエラーにジャンプ 26 カーソル下のタグにジャンプ 27 現在のディレクトリ内のファイルのタグをビルド 28 現在のウィンドウを垂直に分割 29 現在のウィンドウを多数の列を使用するように変更 30 現在のウィンドウを少数の列を使用するように変更
hidden-menus win32-hidden-menus Win32 GUI では、メニュー名を ']' で始めると、そのメニューはメインメニューバーから除外されます。その後、:popup コマンドを使用して表示する必要があります。
ウィンドウを分割するとき、ウィンドウツールバーは新しいウィンドウにコピーされません。
popup-menu
特別なメニュー "PopUp" を定義できます。これは、'mousemodel' が popup または popup_setpos に設定されている場合に、右マウスボタンが押されたときに表示されるメニューです。
デフォルトの "PopUp" メニューは次のとおりです。
anoremenu PopUp.Go\ to\ definition      <Cmd>lua vim.lsp.buf.definition()<CR>
amenu     PopUp.Open\ in\ web\ browser  gx
anoremenu PopUp.Inspect                 <Cmd>Inspect<CR>
anoremenu PopUp.-1-                     <Nop>
vnoremenu PopUp.Cut                     "+x
vnoremenu PopUp.Copy                    "+y
anoremenu PopUp.Paste                   "+gP
vnoremenu PopUp.Paste                   "+P
vnoremenu PopUp.Delete                  "_x
nnoremenu PopUp.Select\ All             ggVG
vnoremenu PopUp.Select\ All             gg0oG$
inoremenu PopUp.Select\ All             <C-Home><C-O>VG
anoremenu PopUp.-2-                     <Nop>
anoremenu PopUp.How-to\ disable\ mouse  <Cmd>help disable-mouse<CR>
どのメニューがマッピングされているかを表示する showing-menus
既存のメニューが何にマッピングされているかを確認するには、メニューコマンドの後に1つの引数のみを使用します(":map" コマンドと同じように)。指定されたメニューがサブメニューの場合、その階層下のすべてのメニューが表示されます。 :menu の後に引数がまったく指定されていない場合は、該当するモードのすべてのメニュー項目が表示されます(例::cmenu の場合はコマンドラインモード)。
リスト内の特殊文字(rhs の直前)
* メニューは、再マッピングを許可しない "nore" で定義されました。
& メニューは、スクリプトローカルマッピングの再マッピングを許可する "<script>" で定義されました。
s メニューは、トリガーされたときに何にマッピングされているかを表示しないように "<silent>" で定義されました。
- メニューは無効になっています。
メニューコマンドの後でメニュー名を入力中に <Tab> キーを押すと、メニュー項目の名前を補完できます。
メニューを実行する execute-menus
:em :emenu E334 E335 :[range]em[enu] {menu} コマンドラインから {menu} を実行します。デフォルトでは、ノーマルモードのメニューを実行します。範囲が指定されている場合は、ビジュアルモードのメニューを実行します。<c-o> から使用された場合は、挿入モードのメニューを実行します。例:
:emenu File.Exit
:[range]em[enu] {mode} {menu} 上記と同様ですが、{mode} のメニューを実行します。 'n': :nmenu ノーマルモード 'v': :vmenu ビジュアルモード 's': :smenu 選択モード 'o': :omenu オペレーター保留モード 't': :tlmenu ターミナルモード 'i': :imenu 挿入モード 'c': :cmenu コマンドラインモード
:emenu を使用して、GUI モードから使い慣れた便利なメニュー項目にアクセスできます。'wildmenu' を参照してください。これは、この機能とうまく連携するオプションです。例については、console-menus を参照してください。
範囲を使用している場合、行が '<,'>' と一致する場合は、最後のビジュアル選択を使用してメニューが実行されます。
メニューを削除する delete-menus
:unme :unmenu :aun :aunmenu メニュー項目またはサブメニュー全体を削除するには、unmenu コマンドを使用します。これらは unmap コマンドに類似しています。例:
:unmenu! Edit.Paste
これにより、挿入モードとコマンドラインモードの [編集] メニューから [貼り付け] 項目が削除されます。
umenu コマンドの後にメニュー名を入力中に <Tab> キーを押すと、該当するモードのメニュー項目の名前を補完できます。
すべてのメニューを削除するには、次のコマンドを使用します。 :unmenu-all
:unmenu *        " remove all menus in Normal and visual mode
:unmenu! *        " remove all menus in Insert and Command-line mode
:aunmenu *        " remove all menus in all modes, except for Terminal
                " mode
:tlunmenu *        " remove all menus in Terminal mode
メニューバーを削除する場合は
:set guioptions-=m
メニューを無効にする disable-menus
:menu-disable :menu-enable メニューを削除せずに一時的に無効にする場合は、":menu" コマンドに "enable" または "disable" キーワードを追加することで実行できます。例:
:menu disable &File.&Open\.\.\.
:amenu enable *
:amenu disable &Tools.*
このコマンドは、すべてのメニューコマンドで使用されるモードに適用されます。翻訳された名前を見つけるには、"&" のような文字を含める必要があることに注意してください。引数が "*" の場合は、すべてのメニューが影響を受けます。それ以外の場合は、指定されたメニュー名とその下のすべての既存のサブメニューが影響を受けます。
メニューの例 menu-examples
メニュー項目をメニューと共に追加する方法の例を次に示します。カーソル下のキーワードのメニュー項目を追加できます。レジスタ "z" が使用されます。
:nmenu Words.Add\ Var                wb"zye:menu! Words.<C-R>z <C-R>z<CR>
:nmenu Words.Remove\ Var        wb"zye:unmenu! Words.<C-R>z<CR>
:vmenu Words.Add\ Var                "zy:menu! Words.<C-R>z <C-R>z <CR>
:vmenu Words.Remove\ Var        "zy:unmenu! Words.<C-R>z<CR>
:imenu Words.Add\ Var                <Esc>wb"zye:menu! Words.<C-R>z <C-R>z<CR>a
:imenu Words.Remove\ Var        <Esc>wb"zye:unmenu! Words.<C-R>z<CR>a
(rhs は <> 表記です。このテキストをコピー/ペーストしてマッピングを試したり、これらの行を gvimrc に記述したりできます。"<C-R>" は CTRL-R、 "<CR>" は <CR> キーです。<>
tooltips menu-tips ツールチップとメニューヒント
ユーザーマニュアルの 42.4 セクションを参照してください。
:tmenu
:tm[enu] {menupath} {rhs} メニューまたはツールのヒントを定義します。(X11 および Win32 GUI のみ)
:tm[enu] [menupath] メニューヒントを一覧表示します。(X11 および Win32 GUI のみ)
:tunmenu
:tu[nmenu] {menupath} メニューまたはツールのヒントを削除します。(X11 および Win32 GUI のみ)
注:ターミナルモードのメニューを作成するには、代わりに :tlmenu を使用してください。
メニュー項目にヒントが定義されている場合、マウスがその項目上にあるときに、ステータスバーの標準の Windows メニューヒントのように、コマンドライン領域に表示されます。(もちろん、Vim がコマンドラインモードの場合、何も表示されません。)ツールバー項目にヒントが定義されている場合、マウスがそのボタンの上で一時停止すると、通常の形式でツールチップとして表示されます。色を変更するには、hl-Tooltip ハイライトグループを使用します。
各メニュー項目に「ヒント」を定義できます。たとえば、次のようなメニュー項目を定義する場合
:amenu MyMenu.Hello :echo "Hello"<CR>
ヒントは次のように定義されます
:tmenu MyMenu.Hello Displays a greeting.
そして、次で削除します
:tunmenu MyMenu.Hello
ツールチップは、現在、X11 および Win32 GUI でのみサポートされています。ただし、近い将来、他の GUI プラットフォームにも表示されるはずです。
":tmenu" コマンドは、他のメニューコマンドとまったく同じように動作し、同じ引数を使用します。":tunmenu" は、他の unmenu コマンドと同じように、既存のメニューヒントを削除します。
メニュー項目が無効になった場合(つまり、すべてのモードでのアクションが削除された場合)、Vim はメニューヒント(および項目)を削除します。これは、:aunmenu がメニュー項目を削除することを意味します。 :tunmenu を追加で行う必要はありません。
5.9 ポップアップメニュー
カーソル位置にメニューをポップアップ表示させることができます。これはポップアップメニューと同様に動作しますが、メニューツリー全体をポップアップできます。
:popup :popu :popu[p] {name} メニュー {name} をポップアップします。指定されたメニューには少なくとも1つのサブエントリが必要ですが、メニューバーに表示される必要はありません(hidden-menus を参照)。
:popu[p]! {name} 上記と同様ですが、カーソルの位置ではなく、マウスカーソルの位置を使用します。
:popup File
これにより、テキストカーソル(! が使用されている場合はマウスカーソル)に [ファイル] メニューが表示されます(存在する場合)。
:amenu ]Toolbar.Make        :make<CR>
:popup ]Toolbar
これにより、メインメニューバーに存在しないポップアップメニューが作成されます。
「]」で始まるメニューは表示されないことに注意してください。
メイン
コマンドインデックス
クイックリファレンス