Remap â € œHomeâ € и â € œEndâ € к началу и концу строки

Большая часть моего времени вычисляется в Linux (время от времени в Windows). На этих платформах клавиши Home и End универсально переходят в начало или конец текущей строки.

Я постепенно привыкаю к ​​использованию одного компьютера Apple в своей жизни, но он все еще разочаровывает, чем кажется, что эти ключи связаны с началом и концом документа, и, похоже, нет никакого ключа вообще для действий на основе строк.

Мой вопрос:

  1. Существуют ли существующие привязки для ячейки для начала и конца строки? (В основном я использую терминал, Chrome и LibreOffice).
  2. Есть ли способ восстановить функции этих ключей к функциям, с которыми я знаком? Я готов отказаться от версий, основанных на документе, которые мне малопригодны.

Также два оговорки:

  1. Я не единственный пользователь в системе. Было бы неплохо, если бы мои пользовательские настройки не нарушали опыт других народов. Если это невозможно, я думаю, что у меня, вероятно, есть самое сильное предпочтение!
  2. Я использую несколько языков и переключаюсь между раскладками клавиатуры, поэтому любые решения, как ожидается, будут работать даже при переключении между несколькими раскладками клавиатуры.
275 голосов | спросил Caleb 18 J0000006Europe/Moscow 2011, 12:04:54

8 ответов


254

Горячие клавиши по умолчанию для перехода к началу или концу (завернутых) строк: âŒ~ â † и âŒ~ â † '. ⌠¥ â † ' и ⌠¥ â † " или ⌃ 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.

ответил user495470 18 J0000006Europe/Moscow 2011, 13:08:03
100

Сейчас я на 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), как если бы я выбрал первый, и если строка была завернута, дом перенесет меня в начало завернутой строки, несколько строк выше, вместо того, чтобы привести меня к началу текущей строки.

KeyRemap4MacBook

ответил jklp 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 14 Sep 2012 07:40:20 +0400 2012, 07:40:20
39

Благодаря этой статье , я выяснил, как чтобы повторно привязать ключи Home и End к действиям на основе строк для каждого пользователя, которые работают с раскладками клавиатуры.

Вам нужно создать файл словаря с кодами клавиш и новыми командами для сопоставления, но сначала убедитесь, что папка, в которой они будут размещены, существует, открыв терминал и выполнив:

$ mkdir -p ~/Library/KeyBindings

Затем создайте или отредактируйте файл в ~/Library/KeyBindings/DefaultKeyBinding.dict. Если он раньше не существовал, добавьте весь раздел ниже. Если он существует, просто добавьте четыре новых строки внутри блока.

{
    "\UF729"  = "moveToBeginningOfLine:";
    "\UF72B"  = "moveToEndOfLine:";
    "$\UF729" = "moveToBeginningOfLineAndModifySelection:";
    "$\UF72B" = "moveToEndOfLineAndModifySelection:";
}

Чтобы активировать настройки, вам нужно будет выйти из своего пользователя и снова войти в систему.

Обратите внимание, что это касается как нормального действия перемещения курсора, так и комбинации Shift + Home / End , чтобы выбрать перемещение курсора.

ответил Caleb 18 J0000006Europe/Moscow 2011, 13:05:05
8

Я использую OS X Sierra, и частично исправлено решение ~/Library/KeyBindings/DefaultKeyBinding.dict, рекомендованное другими пользователями: некоторые приложения, такие как TextEdit, теперь имеют желаемое поведение, но другие приложения нет. Google Chrome и Slack - это два, которые, похоже, не уважают файл DefaultKeyBinding.dict.

Чтобы исправить оставшиеся приложения, я использовал BetterTouchTool , чтобы создать привязку клавиш быстрого доступа к приложениям Home и End для ярких клавиш OS X Ctrl+A и Ctrl+E. BetterTouchTool не является бесплатным, но есть 45-дневный пробный период.

Для этого:

  1. Установить и запустить BetterTouchTool
  2. Перейдите в Жесты> Вкладка «Клавиатура».
  3. В разделе «Выбрать приложение» нажмите + и выберите приложение, которое вы хотите исправить.
  4. Нажмите «Добавить новый ярлык», назначьте Home в поле «ярлык записи» и установите «Запустить другую комбинацию клавиш» на Ctrl + A. Повторите для End и Ctrl + E.
  5. Когда вы закончите, панель должна выглядеть так:  панель BetterTouchTool
  6. В расширенных настройках BetterTouchTool разрешите запуск при запуске.

Примечание. Не оставляйте приложение BetterTouchTool или он перестанет перехватывать нажатия клавиш. Просто закройте его окно, и оно должно продолжать работать в фоновом режиме.

ответил mamacdon 31 Jpm1000000pmTue, 31 Jan 2017 19:01:04 +030017 2017, 19:01:04
7

Я использую 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>
ответил Lari Hotari 31 Jpm1000000pmFri, 31 Jan 2014 14:06:15 +040014 2014, 14:06:15
6

Я нашел следующее полезное для 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 в любых открытых терминалах.

ответил RationalDev 30 +03002016-10-30T07:14:50+03:00312016bEurope/MoscowSun, 30 Oct 2016 07:14:50 +0300 2016, 07:14:50
5

Imho лучший инструмент для внесения изменений клавиатуры - это действительно Karabiner (старое название KeyRemap4MacBook). Open source ( https://github.com/tekezo/Karabiner ), но также доступен как приложение ( https://pqrs.org/osx/karabiner/index.html.en ). Я искал довольно долгое время, и я никогда не нахожу ничего лучшего.

ответил HaFr1954 12 Jpm1000000pmTue, 12 Jan 2016 15:35:30 +030016 2016, 15:35:30
-2

Вы также можете переназначить клавиатурные клавиши, а также настроить свою мышь и трекпад различными способами, используя бесплатный BetterTouchTool, доступный в http://blog.boastr.net/. Отличное решение для настройки работы ваших устройств ввода.

ответил Gary Coker 11 J0000006Europe/Moscow 2015, 20:09:22

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132