2014-10-31 82 views
0

有沒有辦法檢測按鈕是否被按下, Ctrl鍵。我搜索了一些有前途的幫助主題,但找不到答案。在Vim/Vimscript中檢測按鈕的向上/向下狀態

原因是,一旦到達一個VimScript函數,我想停留在一個特定的循環,同時按住Ctrl鍵,一旦它被釋放後退出。

+0

這是不可能的AFAIK:Ctrl鍵不被Vim識別爲一個實際的鍵,所以它不能說它是否被按下。怎麼解釋你在做什麼? – romainl 2014-10-31 06:49:26

回答

1

查詢單個(修飾符)鍵的鍵狀態只能在GVIM中使用,而不能在終端中使用(因爲它只發送完整的完整鍵擊)。由於Vim傾向於在僅限GUI的功能(cp。:help design-not)上保持一致,所以這是不可能的,也不會。

如果你真的渴望這個功能,你可以在本地代碼中實現這個功能,通過DLL /共享庫和libcall()加載到Vim中。但我建議您寧願重新考慮您的方法;當然有不同的方式。

+0

爲什麼不會正常的''映射不起作用? – 2014-10-31 18:07:29

+0

我願意替代。我希望能夠像Alt-Tab或Ctrl-Tab功能一樣在緩衝區或選項卡之間切換[鏈接](http://vimrcfu.com/snippet/103)。按下一次並釋放切換到MRU緩衝區/選項卡,同時按住Ctrl按鈕一次,進一步沿MRU歷史記錄進一步遷移。我嘗試了很多方法來在緩衝區和選項卡之間導航,包括native和插件,但是Windows上的這種行爲無處不在,非常實用,而且我習慣於這種方式。也許在一個ctrl-tab進入函數之後,留在一個循環中,直到下一個按鍵不是Tab?用什麼來讀下一個鍵? – traycerb 2014-10-31 18:28:50

+0

抱歉沒有注意到我的編輯沒有保存(5分鐘窗口)。我已經有[腳本使用ctrl-tab](http://vimrcfu.com/snippet/103),但我想複製行爲以深入到MRU的歷史。很難超過ctrl-tab的行爲(既立即切換到MRU,也會更深入),而不必注意按鍵狀態。我想我有一個選擇,保持循環,直到下一個按鍵不是選項卡。儘管只有標籤被按下,但在MRU列表中更深入。讀下一個按鍵的最佳方法是什麼? – traycerb 2014-10-31 18:36:52

相關問題