我想知道是否有方法可以確定鍵是否在vim中執行某些操作。我知道我可以使用:map
來查看用戶定義的映射,但是有什麼內置的東西?檢測一個鍵是否綁定到vim的東西
例如,我總是有CTRL - W¯¯勢必關閉標籤,因爲我認爲這是不用的。半年後,我發現有一些使用它的序列,像CTRL - W¯¯CTRL - 小號分割窗口,它是重新訓練自己的噩夢。
我想知道是否有方法可以確定鍵是否在vim中執行某些操作。我知道我可以使用:map
來查看用戶定義的映射,但是有什麼內置的東西?檢測一個鍵是否綁定到vim的東西
例如,我總是有CTRL - W¯¯勢必關閉標籤,因爲我認爲這是不用的。半年後,我發現有一些使用它的序列,像CTRL - W¯¯CTRL - 小號分割窗口,它是重新訓練自己的噩夢。
如果你看看由蘭迪·莫里斯建議的答案,你會發現,
:help index
會給你你想要的清單。
非常有用!很高興知道有一個地方,你可以去看看,如果你只是想捅一下學習新的東西 – 2015-04-13 13:01:51
不完整的答案,但您可能想查看:help map-which-keys
以獲取vim建議您在自定義地圖中使用的密鑰列表。
幫助部分提供如何判斷特定鍵是否映射到某個操作的建議。
使用「:map!」和「:map」用於手動設置鍵和「:help'char(-combination)'」,以找出哪些鍵已經映射到vim開箱即用(/不在您的特定編譯選項中)。 (稍微偏離主題,但仍regardable(我認爲):用「:輸出scriptnames」看到哪些文件的次序被讀入)
最好的問候, S.
如果你想搜索什麼鍵觸發某個命令,你可以這樣做: :redir keys.txt :map :redir end 然後打開keys.txt並搜索綁定的命令。 – 2012-09-14 16:55:45
檢查默認映射:
:help index
對於其他映射是由用戶或插件來完成:
:map
:map!
從http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial(Part_1):
第一個命令顯示在正常,可視和 select和operator pending模式下工作的映射。第二個命令顯示在插入和命令行模式下工作的地圖 。
通常上述命令的輸出將跨越多頁。 您可以使用以下命令集輸出重定向到 的vim_maps.txt文件:
:redir! > vim_maps.txt :map :map! :redir END
您可以使用mapcheck
: - 。
例如,我想映射<CR> ,i
到gg=G
縮進文件。 要檢查是否有已經是<CR> , i
if mapcheck("\<CR>", "I") == "" |echo "no mapping"
映射...但是這不會檢測映射是否是序列的一部分。
我試圖檢查「o」是否被綁定到正常模式下的東西,如下所示:if mapcheck(「o」,「N」)==「」|回聲「沒有映射」,但它報告「沒有映射」,當o肯定是「打開新行」。我用錯了嗎? – 2014-01-03 10:48:40
@ K.Norbert:我相信這是用戶定義的映射 – 2014-04-23 12:06:35
我通過:help index
脫脂而製成的一些未使用的nmap
鍵的列表:
請更新/評論。
說到用戶定義的映射的意外衝突,使用[_mapleader_](http://vimdoc.sourceforge.net/htmldoc/map.html#mapleader) – derenio 2013-02-27 13:43:27