2017-02-17 4 views
-1

По умолчанию нажатие Esc в TextMate циклически включает возможные завершения (в дополнение к закрывающим диалоговым окнам), что может помещать нежелательные символы в ваш документ, особенно если вы используете чтобы Esc был безопасным ключом, чтобы попасть в большинство текстовых редакторов. (На самом деле, во многих Иды, нажав Esc много необходимо близко автоматического завершения всплывающих окон так вверх и вниз клавиши со стрелками работают.)TextMate 2 Клавиша Escape: как отключить следующее завершение и предыдущее завершение

Как отключить это поведение, так и в обычном редактировании текста , клавиша Esc ничего не делает, но закрытие диалогов по-прежнему работает так, как ожидалось?

+1

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

+0

Пожалуйста, не закрывайте этот вопрос или не используйте его без объяснения причин. Я пытаюсь установить простое предпочтение в приложении и хотел бы получить ответ. Те, кто не читал его, видели бессвязное, но не видели, что это ответный вопрос. –

ответ

2

Что работает

Основываясь на комментарий от @ Matt я обнаружил, что я могу делать то, что мне нужно, переопределив ключ по умолчанию привязки, как упомянуто здесь, 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, чтобы позвонить Nööp

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

я узнал о существование селектора nööp здесь:

После quitt ing и перезапуск TextMate Esc теперь ничего не делает, кроме закрытых диалогов.

(Очевидно, чтобы изменить эту настройку, вам необходимо знать Objective-C, чтобы распознавать селекторные строки (и сборку, которая имеет «nop»), поэтому вы можете предположить, что должен быть селектор noop. И вам нужно знать восьмеричной, поэтому вы признаете ключ Бегство 033 = 27)


Вещи, которые я попробовал, что не удалось

EDIT: для справки для людей задаются вопросом, как это может занять 90 минут, чтобы изменить одну маленькую установку.

Я нашел этот пункт in the manual, в конце раздела 4.2:

Когда вы предоставляете собственную команду завершения (или список), вы можете захотеть отключить матчи по умолчанию. Это может быть сделано путем установки disableDefaultCompletion 1.

Я попытался установить disableDefaultCompletion 1 в Preferences> Переменные панели и закройте и снова откройте приложение. Я обнаружил, что меню Bundle> Select Bundle Item и нажатие Settings отображает список всех настроек, включая мой disableDefaultCompletion = 1 внизу. Видимо, это ничего не делает? (Другие настройки, переопределенные разными пучками, отображаются как перечеркнутые, а мои настройки - нет.)

Я также искал http://github.com/textmate/textmate репо для строки disableDefaultCompletion, и он отображается в результатах поиска, поэтому это функция должна существовать где-то там.

Я пытался бросить приложение, а затем в командной строке:

По умолчанию запись com.macromates.TextMate disableDefaultCompletion истинного

и пытается Возобновление снова (ударяя Esc, чтобы справа от закрытия} в режиме JavaScript), и он по-прежнему не отключает завершение.

+0

Удивительный, спасибо большое. Я тоже ненавижу эту функцию, но я жил с ней несколько месяцев, и теперь я, наконец, сдался и попытался ее исправить, но так и не смог. К счастью, я нашел ваш пост. Я бы просто добавил, что для меня у меня не было строки \ 033 в файле, я должен был добавить его (у меня была только строка $ \ 033, которую я заменил содержимое на noop). – rottz

Смежные вопросы