Nvim :help
頁面,由 產生,來源是 原始碼,使用 tree-sitter-vimdoc 解析器。
:menu {menu-item} {keys}
{menu-item}
描述項目在選單上的位置。典型的 {menu-item}
是 "File.Save",它表示 "File" 選單下的 "Save" 項目。點號用於分隔名稱。範例::menu File.Save :update<CR>":update" 命令會在檔案被修改時寫入檔案。您可以新增另一個層級:"Edit.Settings.Shiftwidth" 定義一個 "Edit" 選單下的子選單 "Settings",其中包含一個項目 "Shiftwidth"。您甚至可以使用更深的層級。不要過度使用,您需要移動滑鼠很多才能使用這樣的項目。":menu" 命令與 ":map" 命令非常相似:左側指定如何觸發項目,右側定義執行的字元。
{keys}
是字元,它們的使用方式與您輸入的方式相同。因此,在插入模式下,當 {keys}
是純文字時,會插入該文字。{menu-item}
看起來像 "&File.&Save"。加速鍵字元在選單中會加上底線。您必須注意每個按鍵在每個選單中僅使用一次。否則,您將不知道實際會使用哪一個。Vim 不會對此發出警告。:menu 10.340 &File.&Save<Tab>:w :confirm w<CR>數字 10.340 稱為優先順序號碼。編輯器使用它來決定選單項目的放置位置。第一個數字 (10) 指示在選單列上的位置。數字較小的選單位於左側,數字較大的選單位於右側。這些是標準選單使用的優先順序:
+-----------------+ 10.310 |Open... | 10.320 |Split-Open... | 10.325 |New | 10.330 |Close | 10.335 |---------------- | 10.340 |Save | 10.350 |Save As... | 10.400 |---------------- | 10.410 |Split Diff with | 10.420 |Split Patched By | 10.500 |---------------- | 10.510 |Print | 10.600 |---------------- | 10.610 |Save-Exit | 10.620 |Exit | +-----------------+
{menu-item}
中的每個名稱都有其優先順序號碼。{menu-item}
是 "&File.&Save<Tab>:w"。這帶出一個重點:{menu-item}
必須是一個單字。如果您想在名稱中放入點號、空格或 Tab 鍵,您可以使用 <> 表示法(例如,<Space>
和 <Tab>
)或使用反斜線 (\) 跳脫。:menu 10.305 &File.&Do\ It\.\.\. :exit<CR>在此範例中,選單項目 "Do It..." 的名稱包含一個空格,而命令是 ":exit<CR>"。
<Tab>
字元用於將定義選單名稱的部分與向使用者提供提示的部分分開。<Tab>
後面的部分會靠右對齊顯示在選單中。在 File.Save 選單中,使用的名稱是 "&File.&Save<Tab>:w"。因此,選單名稱是 "File.Save",而提示是 ":w"。:amenu 20.510 Edit.-sep3- :
{keys}
將在一般模式下執行。當 Vim 在使用選單時處於視覺或插入模式時,Vim 必須先返回一般模式。":amenu" 會為您插入 CTRL-C
或 CTRL-O
。例如,如果您使用此命令::amenu 90.100 Mine.Find\ Word *那麼產生的選單命令將是:
*
視覺模式:CTRL-C
*
運算子等待模式:CTRL-C
*
插入模式:CTRL-O
*
命令列模式:CTRL-C
*
CTRL-C
會放棄到目前為止輸入的命令。在視覺和運算子等待模式下,CTRL-C
會停止模式。插入模式下的 CTRL-O
會執行命令,然後返回插入模式。CTRL-O
僅適用於一個命令。如果您需要使用兩個或更多命令,請將它們放入函式中並呼叫該函式。範例::amenu Mine.Next\ File :call <SID>NextFile()<CR> :function <SID>NextFile() : next : 1/^Code :endfunction此選單項目使用 ":next" 跳到引數清單中的下一個檔案。然後,它搜尋以 "Code" 開頭的行。函式名稱之前的
<SID>
是腳本 ID。這使得函式僅限於目前的 Vim 腳本檔案。這避免了在另一個腳本檔案中定義了具有相同名稱的函式時出現問題。請參閱 <SID>。{keys}
。對於 ":" 命令,這表示您將看到命令回顯在命令列上。如果它是一個長命令,將會出現「按 Enter 繼續」提示。這可能會非常煩人!為了避免這種情況,請使選單靜音。這是使用 <silent>
引數完成的。例如,以上一個範例中的 NextFile() 呼叫為例。當您使用此選單時,您會在命令列上看到此內容:<SNR>
34_NextFile():amenu <silent> Mine.Next\ File :call <SID>NextFile()<CR>不要太頻繁地使用 "<silent>"。簡短的命令不需要它。如果您為其他人建立選單,能夠看到執行的命令將為他們提供關於他們可以輸入什麼的提示,而不是使用滑鼠。
{keys}
部分的選單命令時,它會列出已定義的選單。您可以指定 {menu-item}
或其一部分來列出特定選單。範例::amenu這會列出所有選單。這是一個很長的清單!最好指定選單的名稱以取得較短的清單:
:amenu Edit這會列出所有模式的 "Edit" 選單項目。若要僅列出插入模式的某個特定選單項目:
:imenu Edit.Undo請注意,您必須輸入正確的名稱。這裡區分大小寫。但是,可以省略加速鍵的 '&'。也可以省略
<Tab>
及其後面的內容。:iunmenu Tools.Make您可以使用選單名稱刪除整個選單及其中的所有項目。範例:
:aunmenu Syntax這會刪除 Syntax 選單及其中的所有項目。
:set guioptions-=m
:amenu File.Open :browse confirm edit<CR>":browse" 會顯示檔案瀏覽器,讓您選擇要編輯的檔案。當目前的緩衝區有變更時,":confirm" 會彈出一個對話方塊。然後,您可以選擇儲存變更、捨棄變更或取消命令。對於更複雜的項目,可以使用 confirm() 和 inputdialog() 函式。預設選單包含一些範例。
{menu-item}
會使工具列上出現 "New" 圖示。Vim 編輯器有 28 個內建圖示。您可以在這裡找到表格:builtin-tools。它們大多數都用於預設工具列。您可以重新定義這些項目(在設定預設選單之後)。您可以為工具列項目添加另一個點陣圖。或者使用點陣圖定義一個新的工具列項目。例如,使用以下方式定義一個新的工具列項目::tmenu ToolBar.Compile Compile the current file :amenu ToolBar.Compile :!cc %:S -o %:r:S<CR>現在您需要建立圖示。對於 MS-Windows,它必須是點陣圖格式,名稱為 "Compile.bmp"。對於 Unix,使用 XPM 格式,檔案名稱為 "Compile.xpm"。尺寸必須為 18 x 18 像素。在 MS-Windows 上也可以使用其他尺寸,但看起來會很醜。將點陣圖放在 'runtimepath' 中其中一個目錄下的 "bitmaps" 目錄中。例如,對於 Unix,為 "~/.config/nvim/bitmaps/Compile.xpm"。
:tmenu ToolBar.Make Run make in the current directory