Remap â € œHomeâ € и â € œEndâ € к началу и концу строки
Большая часть моего времени вычисляется в Linux (время от времени в Windows). На этих платформах клавиши Home и End универсально переходят в начало или конец текущей строки.
Я постепенно привыкаю к использованию одного компьютера Apple в своей жизни, но он все еще разочаровывает, чем кажется, что эти ключи связаны с началом и концом документа, и, похоже, нет никакого ключа вообще для действий на основе строк.
Мой вопрос:
- Существуют ли существующие привязки для ячейки для начала и конца строки? (В основном я использую терминал, Chrome и LibreOffice).
- Есть ли способ восстановить функции этих ключей к функциям, с которыми я знаком? Я готов отказаться от версий, основанных на документе, которые мне малопригодны.
Также два оговорки:
- Я не единственный пользователь в системе. Было бы неплохо, если бы мои пользовательские настройки не нарушали опыт других народов. Если это невозможно, я думаю, что у меня, вероятно, есть самое сильное предпочтение!
- Я использую несколько языков и переключаюсь между раскладками клавиатуры, поэтому любые решения, как ожидается, будут работать даже при переключении между несколькими раскладками клавиатуры.
8 ответов
Горячие клавиши по умолчанию для перехода к началу или концу (завернутых) строк: âŒ~ â † и âŒ~ â † '. ⌠¥ â † ' и ⌠¥ â † " или ⌃ A и ⌃ E переместитесь в начало или конец развернутых строк (или абзацев). ⌠¥ â † и ⌠¥ â † ' перемещаться назад /вперед словами, и все это совместим с удерживанием Shift для выбора во время соответствующих ходов.
Вы можете перенаправить домой и завершить, создав ~/Library/KeyBindings/
и сохранив список свойств, как этот, как DefaultKeyBinding.dict
:
{
"\UF729" = moveToBeginningOfLine:; // home
"\UF72B" = moveToEndOfLine:; // end
"$\UF729" = moveToBeginningOfLineAndModifySelection:; // shift-home
"$\UF72B" = moveToEndOfLineAndModifySelection:; // shift-end
}
Большинство ключевых слов для редактирования текста в OS X определены в /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict
.
Применение изменений требует повторного открытия приложений. DefaultKeyBinding.dict игнорируется некоторыми старыми версиями Xcode (работает с последней версией 6.3.1), терминалом и многими межплатформенными приложениями.
См. Текстовая система какао и мой сайт для получения дополнительной информации о настраиваемых привязках клавиш.
Ключи терминала можно настроить в настройках> Настройки> Клавиатура. \033OH
перемещается в начало строки и \033OF
в конец строки.
В Eclipse привязки клавиш должны быть изменены в настройках> Общие> Ключи. Вам нужно изменить привязки по умолчанию для команд Line Start и Line End (заменить âŒ~â † на â † - и âŒ~â † на â † ~). Для выбора для работы также измените Выберите Line Start и Выберите Line End .
PS: вам может понадобиться выйти и войти снова для изменения ~/Library/KeyBindings/DefaultKeyBinding.dict
.
Сейчас я на Lion 10.7.4, и по какой-то странной причине редактирование ~/Library/KeyBindings/DefaultKeyBinding.dict
не работает для меня.
Я обнаружил, что аддон KeyRemap4MacBook с системными настройками работает очень хорошо, и вы также можете перегруппировать различные ключи с ним, без необходимости редактировать текстовые файлы. Например. изменение кнопок вверх /вниз страницы, чтобы курсор также отображался на странице вверх /вниз.
Просто загрузите аддон и на панели «Системные настройки» перейдите к разделу For PC Users
и проверьте Use PC Style Home /End
.
Заметьте, я выбрал (Change Home to Command+Left)
вместо (Change Home to Control+A)
, как если бы я выбрал первый, и если строка была завернута, дом перенесет меня в начало завернутой строки, несколько строк выше, вместо того, чтобы привести меня к началу текущей строки.
Благодаря этой статье , я выяснил, как чтобы повторно привязать ключи Home и End к действиям на основе строк для каждого пользователя, которые работают с раскладками клавиатуры.
Вам нужно создать файл словаря с кодами клавиш и новыми командами для сопоставления, но сначала убедитесь, что папка, в которой они будут размещены, существует, открыв терминал и выполнив:
$ mkdir -p ~/Library/KeyBindings
Затем создайте или отредактируйте файл в ~/Library/KeyBindings/DefaultKeyBinding.dict
. Если он раньше не существовал, добавьте весь раздел ниже. Если он существует, просто добавьте четыре новых строки внутри блока.
{
"\UF729" = "moveToBeginningOfLine:";
"\UF72B" = "moveToEndOfLine:";
"$\UF729" = "moveToBeginningOfLineAndModifySelection:";
"$\UF72B" = "moveToEndOfLineAndModifySelection:";
}
Чтобы активировать настройки, вам нужно будет выйти из своего пользователя и снова войти в систему.
Обратите внимание, что это касается как нормального действия перемещения курсора, так и комбинации Shift + Home / End , чтобы выбрать перемещение курсора.
Я использую OS X Sierra, и частично исправлено решение ~/Library/KeyBindings/DefaultKeyBinding.dict
, рекомендованное другими пользователями: некоторые приложения, такие как TextEdit, теперь имеют желаемое поведение, но другие приложения нет. Google Chrome и Slack - это два, которые, похоже, не уважают файл DefaultKeyBinding.dict
.
Чтобы исправить оставшиеся приложения, я использовал BetterTouchTool , чтобы создать привязку клавиш быстрого доступа к приложениям Home
и End
для ярких клавиш OS X Ctrl+A
и Ctrl+E
. BetterTouchTool не является бесплатным, но есть 45-дневный пробный период.
Для этого:
- Установить и запустить BetterTouchTool
- Перейдите в Жесты> Вкладка «Клавиатура».
- В разделе «Выбрать приложение» нажмите
+
и выберите приложение, которое вы хотите исправить. - Нажмите «Добавить новый ярлык», назначьте
Home
в поле «ярлык записи» и установите «Запустить другую комбинацию клавиш» на Ctrl + A. Повторите дляEnd
и Ctrl + E. - Когда вы закончите, панель должна выглядеть так:
- В расширенных настройках BetterTouchTool разрешите запуск при запуске.
Примечание. Не оставляйте приложение BetterTouchTool или он перестанет перехватывать нажатия клавиш. Просто закройте его окно, и оно должно продолжать работать в фоновом режиме.
Я использую awesome KeyRemap4MacBook с пользовательскими настройками ниже.
Он исправляет Home /End в большинстве приложений и не испортит iTerm2.
Из https://gist.github.com/lhotari/6134223181439b9ed0a1
<?xml version="1.0"?>
<!-- ~/Library/Application Support/KeyRemap4MacBook/private.xml -->
<!-- Custom keyboard mappings for MBP using https://pqrs.org/macosx/keyremap4macbook/ -->
<root>
<item>
<name>Lari's PC Style Home/End</name>
<appendix>(Change Home to Command+Left)</appendix>
<appendix>(Change End to Command+Right)</appendix>
<appendix></appendix>
<appendix>{{ PC_STYLE_BINDINGS_IGNORE_APPS_DESCRIPTION }}</appendix>
<identifier>lari.remap.pclikehomeend</identifier>
<block>
<only>DREAMWEAVER</only>
<autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME, ModifierFlag::SHIFT_L</autogen>
<autogen>__KeyToKey__ FROMKEYCODE_END, KeyCode::END, ModifierFlag::SHIFT_L</autogen>
</block>
<block>
<only>BLUEFISH,WORD,EXCEL,POWERPOINT</only>
<autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::HOME</autogen>
<autogen>__KeyToKey__ FROMKEYCODE_END, KeyCode::END</autogen>
</block>
<!--
<block>
<only>EMACS, TERMINAL, X11, ECLIPSE</only>
<autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::A, ModifierFlag::CONTROL_L</autogen>
<autogen>__KeyToKey__ FROMKEYCODE_END, KeyCode::E, ModifierFlag::CONTROL_L</autogen>
</block>
-->
<block>
<not>{{ PC_STYLE_BINDINGS_IGNORE_APPS }}</not>
<autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_UP, ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ FROMKEYCODE_HOME, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_UP, ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ FROMKEYCODE_END, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::CURSOR_DOWN, ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ FROMKEYCODE_END, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_CONTROL, KeyCode::CURSOR_DOWN, ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ FROMKEYCODE_HOME, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ FROMKEYCODE_END, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L</autogen>
</block>
</item>
</root>
Я нашел следующее полезное для iterm2
и zsh
с кавычками из здесь :
Откройте
iTerm > Preference
. Перейдите на вкладку профилейprofiles tab > Keys
. Затем нажмите+
в нижней части списка клавиш, нажмитеHome
(илиFn+left arrow
на беспроводной клавиатуре яблока), вAction
выберитеSend Escape Sequence
, а затем введите[1~
Повторите для клавиши End
с [~4
для последовательности управляющих клавиш.
Если вы используете zsh, также выполните следующее:
1) Поместите в файл
~/.zshrc
следующее:bindkey "^[[1~" beginning-of-line bindkey "^[[4~" end-of-line
2) Запустите
source ~/.zshrc
в любых открытых терминалах.
Imho лучший инструмент для внесения изменений клавиатуры - это действительно Karabiner (старое название KeyRemap4MacBook). Open source ( https://github.com/tekezo/Karabiner ), но также доступен как приложение ( https://pqrs.org/osx/karabiner/index.html.en ). Я искал довольно долгое время, и я никогда не нахожу ничего лучшего.
Вы также можете переназначить клавиатурные клавиши, а также настроить свою мышь и трекпад различными способами, используя бесплатный BetterTouchTool, доступный в http://blog.boastr.net/. Отличное решение для настройки работы ваших устройств ввода.