2017-02-17 79 views
-1

默認情況下,按下TextMate中的Esc鍵可循環顯示可能的完成項(除了關閉對話框外),這可以在文檔中放入不需要的字符,特別是在使用Esc是大多數文本編輯人員的安全鑰匙。 (事實上​​,在很多的IDE,按Esc很多需要接近自動完成彈出窗口,這樣的上下方向鍵的作用。)TextMate 2 Escape鍵:如何禁用下一個完成和上一個完成

如何在普通的文本編輯禁用此行爲,所以Esc鍵什麼也不做,但關閉對話框仍然按預期工作?

+1

http://lists.macromates.com/textmate/2017-February/040243.html – matt

+0

請不要關閉這個問題或downvote它沒有說明爲什麼。我正試圖在應用中設置一個簡單的首選項,並希望得到答案。那些沒有閱讀的人看到了漫不經心的問題,但沒有看到這是一個可以回答的問題。 –

回答

2

什麼工作

基於評論來自@馬特,我發現,我可以做什麼,我需要通過覆蓋默認鍵綁定,這裏所提到的,https://manual.macromates.com/en/key_bindings.html

此外TextMate的有/path/to/TextMate.app/Contents/Resources/KeyBindings.dict文件帶有一些特定於TextMate的額外鍵綁定(因此不適合放入每個用戶的全局鍵綁定文件)。您可以將此文件複製到〜/ Library/Application Support/TextMate並對其進行編輯,然後這將優先於捆綁文件。

我編輯的文件,並拿出與nextCompletion行,分配到Shift + Esc鍵($ \ 033)和分配都Esc鍵和Shift + Esc鍵調用空操作

"\033"  = "noop:"; 
"$\033" = "noop:"; 

我瞭解了在空操作選擇的存在,在這裏:

quitt後重新啓動TextMate Esc現在除了關閉對話框之外什麼都不做。 (顯然要改變這一個設置,你需要知道Objective-C識別選擇器字符串,(和有'nop'的程序集),所以你可以猜測應該有一個noop選擇器,而且你需要知道八,讓你認識到退出鍵033 = 27)


事情我嘗試失敗

編輯:對於人們想知道如何能需要90分鐘就換一個小設置參考。

我發現這段in the manual,在第4.2節的末尾:

當你提供你自己完成的命令(或列表),你可能要 禁用默認匹配。這可以通過設置 disableDefaultCompletion需做1

我試圖在首選項>變量窗格中設置disableDefaultCompletion爲1,退出並重新打開應用程序。我發現Bundle菜單> Select Bundle Item並點擊Settings會顯示所有設置的列表,包括我底部的disableDefaultCompletion = 1。顯然這沒有做任何事情? (被不同捆綁覆蓋的其他設置顯示爲劃掉,我的設置不是。)

我還搜索了http://github.com/textmate/textmate repo爲字符串disableDefaultCompletion,它顯示在搜索結果中,所以這是功能應該存在的地方。

我想退出應用程序,然後在命令行:

默認寫com.macromates.TextMate disableDefaultCompletion真正

重振並再次嘗試(按Esc鍵結束之權}在JavaScript模式下),它仍然沒有禁用完成。

+0

太棒了,非常感謝。我也討厭這個功能,但我住了幾個月,現在我終於放棄了,試圖修復它,但沒有這樣做。幸運的是,我找到了你的帖子。我只是補充說,我沒有在文件上的\ 033行,我不得不將它添加到(我只有$ \ 033行,我把它的內容替換爲noop)。 – rottz

相關問題