gvim 自訂選單


建立時間: 2024年1月3日 08:58
更新時間: 2024年1月10日 09:33

說明

分享如何在 gvim 中自訂選單。

配置

gvim 預設選單從 $VIMRUNTIME/menu.vim 檔案裡讀取,此檔案為選單的功能,如果你想要自訂選單,我會建議在 .gvimrc 上配置,關於如何配置 .gvimrc 請參考相關文章。

Ex 命令模式

:menu 命令群

若要建立新的選單項,請使用 :menu 命令群。它們和 :map 命令群非常類似 (見 :help map-modes)。

所以 :menu 只能在普通、可視、選擇、操作字元等待模式下可用。


選單路徑

:menu 命令群第一個參數是選單項目名稱。形式為 . 分隔的選單或子選單的路徑。

範例

:menu File.Nohlsearch :noh<CR>


選單右側描述

如果想在選單右側顯示文字,在第一個參數結尾輸入 <TAB> 後輸入要顯示文字。

範例

:menu File.Nohlsearch<TAB>:noh :noh<CR>


選單空格文字

如果想在選單項目或項目描述中使用空格,需要在空格前加上反斜線(\)。

範例

:menu File.Nohlsearch<TAB>nohlsearch\ :noh :noh<CR>


定義新選單

你可以自行新增選單,使用方法直接定義路徑名稱即可。

範例

:menu Others.Nohlsearch :noh<CR>
新增 Nohlsearch 項目在 Others 選單。


選單排序

查看文件 :help menu-priority

你可以給選單指定優先順序。高優先權的選單出現在右邊,數字越高,優先權就越高。

優先權在 :menu 命令之前以數字形式給出,如果沒有或給出優先權為零,則使用 500。

預設排序選單優先權

選單 優先權
File 10
Edit 20
Tools 40
Syntax 50
Buffers 50
Window 70
Help 9999

選單優先權只有在建立新選單時才會用到。一旦已經存在,優先順序不會改變。因此,優先順序只有在選單第一次用到的時候才需要給出。

範例

:80menu Buffer.next :bn<CR>
設定優先權為 80


子選單排序

查看文件 :help sub-menu-priority

同選單排序的機制可以用來定位子選單。用句號分隔優先權,如果不給出某個數字,使用預設值 500。

與選單優先權一樣。一旦已經存在,優先順序不會改變。

範例

:menu 80.500 Buffer.next :bn<CR>
設定 Buffer 優先權為 80,next 優先權為 500。

:menu .900 myMenu.test :echo "text"<CR>
設定 myMenu 優先權為預設值 500,test 優先權為 900。


選單分隔項目

選單項目可以用一個特殊項目分隔,它在項目間插入一些空白。根據不同系統情況,有的顯示為一條線,有的顯示為虛線。這些項目必須以 - 開始和結尾。兩者之間的部分用來給出一個獨一無二的名字。和正常的項目一樣,也可以使用優先權。

範例

:menu Example.item1 :做些事
:menu Example.-Sep- :
:menu Example.item2 :做些別的事

注意分隔符號也需要一個右手邊的表達式。是什麼沒有關係,因為該項目永遠不會選到。簡單點,用單一冒號就可以了。


自訂工具列

工具列為選單下方那一排按鈕,新增工具列跟新增選單類似,指定第一個項目名稱為 ToolBar,如下範例所示。

:amenu icon=C:/Users/I/exit.bmp ToolBar.Exit :qa<CR>

  • icon: 按鈕 icon 路徑。
  • 項目第一個指定 ToolBar 後面的自訂。
  • :qa<CR>: 要執行的指令。

刪除選單

要刪除一個選單項目或整個子選單,使用 unmenu 命令,類似 unmap 命令。

:amenu 的刪除命令為 :aunmenu

範例

:unmenu! Edit.Paste
刪除插入和命令列模式下的 Edit 選單的 Paste 項目。


:amenu

:amenu 命令可以用來一次定義除終端模式以外所有模式下的選單項目。

範例

:amenu File.Next :next^M
新增 Next 選單,功能為 :next

等價於:

: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

:tmenu

:tm[enu] {menupath} {rhs}
為選單或工具定義提示,當滑鼠在選項上面就會出現提示。

範例

:tmenu ToolBar.Exit Exit
提示 ToolBar.Exit 為 Exit。


:tunmenu

:tu[nmenu] {menupath}
刪除選單或工具的提示。

觀看次數: 525
customgvimmenuvim自訂選單
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!