Я использую фантастический плагин MulgaSoft Emacs + Eclipse , чтобы Eclipse можно было использовать для моих пальцев emacs'd.
Однако я не могу настроить работающий Alt+ q привязка к «Элементу формата».При написании комментария, например, в коде Java, я хотел бы иметь возможность время от времени нажимать Alt + q , чтобы перетекать текущий абзац текста.(В основном я просто хочу, чтобы комментарий был обернут в ~ 80 столбцов.)
Итак, я вошел в Preferences -> General -> Keys
и привязал Format Element
к Alt+Q
"когда" Editing in Structured Text Editors
(категория Source
).
Если я наберу Alt + x format-element с курсором в длинном Java-комментарии, произойдет правильная вещь (текст перекомпоновывается).Но нажатие Alt + q ничего не делает.
Если я спрашиваю Eclipse, с чем связано Alt + q (набрав Ctrl + hk Alt +q ), я получаю:
Alt+Q runs format-element
Id -org.eclipse.wst.jsdt.ui.edit.text.java.quick.format
Key Bindings
ALT+Q [org.eclipse.ui.contexts.dialogAndWindow]
Description
Format enclosing text element
Насколько я могу судить (путем сортировки по 'Binding') в настройках Key, больше ничего не связано с Alt + Q.(Ну, я попытался связать его в некоторых дополнительных контекстах «когда», но это не помогло ...)
Я не уверен, если это проблемас плагином Emacs + или с Eclipse (поскольку «Элемент формата» является примитивом затмения?).Я несколько раз перезапускал Eclipse с этими привязками.
Обновление
С предложениями @ mfeber я подправил привязки клавиш, но все еще не достиг успеха.Я сократил только одну привязку с «когда», равным Editing Text
.
Теперь, когда я запускаю Ctrl + hk Alt + q Я вижу:
Alt+Q runs format-element
Id -org.eclipse.wst.jsdt.ui.edit.text.java.quick.format
Key Bindings
ALT+Q [org.eclipse.ui.textEditorScope]
Description
Format enclosing text element
Разница заключается в «[org.eclipse.ui.textEditorScope]» в разделе «Привязки клавиш».Новое значение лучше соответствует тому, что показывают другие привязки клавиш, такие как «Ctrl + O».
Как ни странно, если я запускаю Ctrl + hw format-element , я получаю:
format-element is unbound
Но выполнение Ctrl + hw для других команд, таких как forward-символ или insert-line-over-current-line выводит правильный список ключейпривязки для этой функции.Таким образом, есть кое-что немного странное.
Еще одна вещь, которую я заметил, - это то, что в привязках клавиш есть запись «Элемент формата», в которой есть пустые «Когда» и «Привязка» (на снимке экрана выше былоотсортировано по «Binding», поэтому оно не показывало это, но я уверен, что оно было там раньше):
Существуют ли какие-либо инструменты или журналы для отладки привязок клавишв Eclipse, что я могу включить?
Update # 2
Чтобы выяснить, какой базовый идентификатор привязан (как предложено в обновлении @ mfeber), я попробовал еще пару вещей.
Я установил несколько привязок Alt-Q для форматирования элемента в разных контекстах:
(я пробовал с и без 'Редактирование текста'binding --- Я не уверен, может ли' Редактирование текста 'применяться / конфликтовать при редактировании файлов .java или .py, или это чисто для файлов .txt ... В любом случае я не вижу большой разницы....)
Единственная интересная информация, которую я смог собрать, это то, что Ctrl + hkAlt + q показывает очень немного отличающиеся результаты при запуске в редакторе .java и при запуске в редакторе .js:
Вот что я получаю из Ctrl + hk Alt + q в редакторе исходного кода Java:
Alt+Q runs format-element
Id -org.eclipse.wst.jsdt.ui.edit.text.java.quick.format
Key Bindings
ALT+Q [org.eclipse.jdt.ui.javaEditorScope]
Description
Format enclosing text element
И вот что я получаю из Ctrl + hk Alt + q в редакторе исходного кода Javascript:
Alt+Q runs format-element
Id -org.eclipse.jdt.ui.edit.text.java.quick.format
Key Bindings
ALT+Q [org.eclipse.wst.jsdt.ui.javaEditorScope]
Description
Format enclosing text element
Разница в wst.jsdt
против jdt
в путях к пакетам.Я не очень понимаю это, но я думаю, что это означает, что я запускаю форматер java в окне javascript и форматер javascript в окне java?
О ... это все!Если я переключаю «Когда» для каждой из этих привязок, теперь Alt-Q работает!Таким образом, несмотря на то, что все привязки клавиш выглядят одинаково в пользовательском интерфейсе, под ним находится несколько различных функций ....