Вопрос
Как я могу выделить ячейку в которой находится курсор с помощью клавиатурной комбинации? На подобии того, как Ctrl-a выделяет все ячейки.
Ответ
1. Определите местонахождение закрытых служебных файлов (private files) путем выполнения слежующего выражения.
LinkWrite[$ParentLink,
FrontEnd`ToFileName[
FrontEnd`FileName[
{$PreferencesDirectory, "SystemFiles", "FrontEnd", "TextResources"}
]
]
]; LinkRead[$ParentLink]
В ответ вы должны получить строку содержащую полный путь.
2. Создайте директорию по пути полученному на этапе 1.
3. Определите местонахождение свободно разделяемых служебных файлов (shared files), с помощью выполнения слежующего выражения.
LinkWrite[$ParentLink,
FrontEnd`ToFileName[
FrontEnd`FileName[
{$TopDirectory, "SystemFiles", "FrontEnd", "TextResources"}
]
]
]; LinkRead[$ParentLink]
Вы снова получите полный путь.
4. Скопируйте файл KeyEventTranslations.tr из каталога полученного на на шаге 3 в каталог полученый на шаге 1.
5. Откройте только что скопированый файл в любом текстовом редакторе.
6. Обратите внимание, что в этом файле содержится большое выражение в формате языка программы Mathematica. Это выражение имеет заголовок EventTranslations. Это выражение содержит подвыражения с заголовками ssions with head Item. Все что вам необходимо сделать добавить выражение которое будет описывать действие которое вам необходимо совершить.
Предположим, например, вы хотите определить Ctrl-u в качестве клавиатурной комбинации для выделения ячейки. Тогда вы должны добавить что-нибудь похожеее на следуйщие строки:
Item[
KeyEvent["u", Modifiers -> {Control}],
FrontEndExecute[{SelectionMove[InputNotebook[], All, Cell]}]
]
Помните, что нужно добавить такую комбинацию клавишь, которая бы не конфликтовала с уже существующими.
7. Если вы работаете в системеме Windows, то возможно некоторые комбинации к которым вы привыкли перестанут работать, в этом случае проверте файл в который вы вносили изменеия. Он написан для применения с Unix системами и некоторые комбинации клавиш могут отличатся.
|