維姆維努

維姆維努

我正在為一家主要基於 Windows 的公司的開發人員設置虛擬化 Linux 盒子(作為本地開發伺服器),並且一些開發人員對 vim(除其他外)提出了負面批評。 (在他們看來,這在某種程度上代表了Linux/Unix,並證明了該環境非常難以使用。)我記得當我第一次被迫使用vim 時(系統管理員拒絕安裝emacs!)以及最初的困難學習曲線,所以我有點同情。我突然想到,與其向他們介紹nano(他們可能永遠無法通過),不如在 vim 中設置類似納米的菜單,以使轉換更容易。 (我找到了一個非常適合初學者的 .vimrc 檔案來提供給他們,但它沒有類似奈米風格菜單的東西。)

唯一的問題是我能找到的唯一一個聲稱可以在 vim (而不是 gvim)中設置菜單的東西不起作用,而我嘗試糾正這個問題只是給我留下了另一個需要解決的問題。在我浪費大量時間之前,我想知道這實際上是否可能,因為關於如何做到這一點的資訊似乎很少。

答案1

對的,這是可能的。您可以載入menu.vim(預設的 gvim 選單定義),或者您可以從頭開始並建立自己的選單,然後透過:emenu.不過,這並沒有為您提供類似 Nano 的始終可見的菜單;它使您能夠使用命令列選項卡完成來導航選單。

如果使用者沒有 vimrc,您需要先停用 vi 相容性:

:set nocompatible

啟用智慧型命令列完成(啟用列出所有可能的選擇,並使用、、、和<Tab>導航結果):<Up><Down><Left><Right><Enter>

:set wildmenu

在所有匹配選項之間重複按下循環:

:set wildmode=full

載入預設選單(這會在 gvim 中自動發生,但不會在終端 vim 中發生):

:source $VIMRUNTIME/menu.vim

在這四個命令之後,您可以透過呼叫命令上的選項卡完成來手動觸發選單完成:emenu,方法是:emenu<space><tab>

您可以使用 Tab 鍵、箭頭鍵和 Enter 鍵(它既可以展開子選單也可以選擇項目)來導覽結果。然後,您可以更進一步,綁定一個映射來彈出選單,而不必:emenu每次都鍵入:

使 Ctrl-Z 在映射中的作用類似於<Tab>在命令列上交互按下:

:set wildcharm=<C-Z>

並建立一個自動為您呼叫:emenu完成的綁定:

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

答案2

我自己也遇到過這樣的問題:我無法記住我正在使用的插件的所有命令和組合鍵。另外,我希望有簡單的方法來快速執行命令,而無需設定新的鍵映射或發明命令來存取它們。

維姆維努

我寫了一個小vim 選單插件它允許您為可以使用 vim 編輯的每種文件類型定義選單。這樣,您可以為不同的檔案類型定義選單選項“編譯”,並根據您正在編輯的檔案(.py、.c、.c++、...)啟動正確的指令來編譯程式碼。或在 Markdown 檔案中為「Table」插件命令建立子選單。

在這裡查看: https://github.com/Timoses/vim-venu

附帶說明:我認為每個人都應該選擇自己喜歡的文字編輯器。 Vim 確實有一點障礙(值得學習!)。如果有人不願意學習,那麼 vim 對那個人來說就沒有多大用處。

相關內容