Как заставить [возврат] вести себя как [возврат] в сообщениях, Skype ...

2

Я пользуюсь Messagesкак на Mac, так и на iPhone, и набираю много писем. Во всех этих средах я привык к нормальному поведению returnклавиши.

Внутри Messagesэтого ключа он не работает как ключ возврата, поэтому я преждевременно отправляю усеченные сообщения.

Я нашел этот очень похожий вопрос: как вставить новую строку при нажатии клавиши возврата в iMessage на Mac OSX, и я уже знал, какие обходные пути предлагаются ctrl+ return, alt+ return. Но эти обходные пути не ответили на первоначальный вопрос. Более того, я уже использую их, но это все еще оставляет меня с недопустимым уровнем ошибок .

С моей точки зрения, returnникогда не следует ассоциировать с «функцией» в среде, где вы печатаете текст. Это огромная эргономическая ошибка дизайна .

Я попытался переопределить фактическое сопоставление ярлыков с помощью:

defaults write com.apple.iChat NSUserKeyEquivalents '{ "                            
" = "insertNewline:" ; }

Что является молчаливой неудачей.

Я подозреваю, что синтаксис функции может быть неправильным, но Messagesне пишет об этом никакой ошибки.

Есть ли документация о точном синтаксисе внутренних Messagesфункций, которая может быть вызвана с помощью ярлыка?

Есть ли другой правильный способ заставить returnсебя вести себя как равнина return?

Дан
источник
Любая настройка может зависеть от того, есть ли на клавиатуре обе клавиши Return и Enter [не то, чтобы у меня был ответ, просто у ноутбуков, как правило, есть только одна общая цель Ret / Enter, тогда как у настольных компьютеров есть и то и другое)
Tetsujin
У меня есть много клавиатур, над которыми я работаю, у некоторых из них есть enterклавиша, а у других ее нет (Mac Book Pro). В любом случае, клавиша, с которой у меня есть проблема, - это клавиша, которая в основном предназначена для ввода возврата много раз в минуту и ​​специально является одной из самых больших клавиатур. •••• Я хочу моего возвращения :)!
дан

Ответы:

4

Создайте файл (при стандартной установке каталог KeyBindingsне существует):

mkdir ~/Library/KeyBindings

содержащий следующие 2 переназначения:

$ cat >~/Library/KeyBindings/DefaultKeyBinding.dict <<end_of_file
/* my keybindings */
{
        "\U000d" = ("insertLineBreak:") ;
        "@\U000d" = ("insertNewline:") ;
}
end_of_file

@означает cmdв этом словаре, \U000dозначает Unicode стандартного возврата (== 0x0d).

Перезапустите Messagesи с этого момента,

  • returnпоставлю настоящий return ,

  • cmd+ returnБудет отправить сообщение .


недостаток

Это решение применяется для любого приложения, использующего ~/Library/KeyBindings/DefaultKeyBinding.dict.

преимущество

Это решение применяется к любому приложению , который делает нон естественное использование возвращение в текстовой области. В частности, теперь у меня есть сообщение, Skypeс помощью которого я не отправляю более преждевременно усеченные сообщения.

Дан
источник
Хм, а разве это проблема, особенно со скайпом? он использует стандартное поведение клавиатуры, как и другие мессенджеры, поэтому быстро привыкаешь к поведению по умолчанию. Я почти не использую мышь / тачпад, только комбинации клавиш, а вероятность отправки усеченных сообщений практически отсутствует.
Фарсайд
1
Это регулярно было проблемой, потому что я быстро набираю текст, а возвращение - обычное, которое я использую. •••• Этот кошмар теперь закончен :).
дан
Большое вам спасибо за это, именно то, что я искал.
Джеймс П
Благословение вам и вашему дому на 7 поколений. Есть ли способ сделать его конкретным для данного приложения?
Шервуд Ботсфорд
@SherwoodBotsford: взгляните на этот другой ответ (здесь), которым я пользуюсь уже 2 года: apple.stackexchange.com/a/247214/22003 .
дан
4

В сообщениях клавиатурная комбинация для вставки «новой строки» выглядит так:

  • CTRL + ↩︎ Return

Сообщение не будет отправлено, но будет вставлен знак возврата каретки (новая строка).

Я использую это все время, когда пишу SMS / iMessages из MacBook ... но да, не очень удобно, так как слишком много несчастных случаев, когда вы отправляете усеченные сообщения.

В большинстве Приложений, таких как Skype и другие Messenger, вставка новой строки работает на следующих сочетаниях клавиш:

  • CTRL + ↩︎ Return
  • ⌥ Option + ↩︎ Return

Я не рекомендую переопределять эти ярлыки, так как это общеизвестно и стандартное поведение при работе с сообщениями и мессенджерами.

В текстовых процессорах редакторы кода и редакторы электронной почты ведут себя по-разному, как вы видите большую текстовую область, и ↩︎ Returnдействуют как действие «новой строки». Модификаторы так CTRL, ⌥ Option, ⌘ Commandмогут работать как дополнительные функциональные возможности, чтобы вставить «мягкую» новую строку, вставить новую страницу, разрыв строку разделитель, и т.д.


Возможно, вы захотите использовать BetterTouchTool , которая была бесплатной утилитой, которая может отключать сочетания клавиш (и имеет много других применений). Список ваших действий по отключению / включению ярлыка может быть следующим:

  1. Установить BetterTouchTool
  2. Нажмите на BetterTouchToolпункт меню и выберитеPreferences
  3. Нажмите на Keyboard
  4. Нажмите на знак плюс в нижней части Select Application:панели
  5. Выберите Messages/Applicationsпапке)
  6. Нажмите + Add New Shortcut
  7. Нажмите Keyboard Shortcut, нажмитеreturn
  8. Нажмите Trigger Other Keyboard Shortcut, нажмите ctrl+return
  9. Оставьте Trigger Predefined Action:на No Action(это значение по умолчанию)
  10. повторите шаги 7,8 и 9, чтобы переназначить cmd+ returnв shift+return

Что должно привести к такому экрану: Better Touch возвращает переотображение

Дальняя сторона
источник
1

Карабин изменился, теперь нужен файл json: вставьте ниже в текстовый файл, переименуйте в messages.json, а затем скопируйте в: ~ / .config / karabiner / assets / complex_modification / затем добавьте два правила через приложение

{"title": "Изменение ключа возврата сообщений Mac", "rules": [{"description": "Использовать возврат как новую строку", "манипуляторы": [{"type": "basic", "from": { "key_code": "return_or_enter"}, "до": [{ "key_code": "return_or_enter", "модификаторы": [ "контроль"]}], "условия": [{ "типа": "frontmost_application_if", "bundle_identifiers": ["^ com \ .apple \ .iChat $"]}]}]}, {"description": "Использовать возврат элемента управления как отправку", "манипуляторы": [{"type": "basic", "с": { "key_code": "return_or_enter", "модификаторы": { "обязательным": [ "контроль"]}}, "до": [{ "key_code": "return_or_enter"}], "Условие": [{ "типа": "frontmost_application_if", "bundle_identifiers": [ "^ ком \ .apple \ .iChat $"]}]}]}]}

Кевин V
источник
0

Установить карабинер

Который можно найти там: Карабинер: настройщик клавиатуры для OS X

Делать private.xml

Прочитайте Karabinerдокументацию по теме: private.xml Справочное руководство

Создайте ${HOME}/Library/Application Support/Karabiner/private.xml со следующим содержанием:

<?xml version="1.0"?>
<root>
  <appdef>
    <appname>MESSAGES</appname>
    <equal>com.apple.iChat</equal>
    <equal>com.skype.skype</equal>
  </appdef>
  <item>
    <name>Messages return modification</name>
    <appendix>Change Return to Newline</appendix>
    <appendix>Change Newline to Return</appendix>
    <identifier>swap Return and Newline</identifier>
    <only>MESSAGES</only>
    <autogen>__KeyToKey__ KeyCode::RETURN, ModifierFlag::COMMAND_L, KeyCode::RETURN</autogen>
    <autogen>__KeyToKey__ KeyCode::RETURN, KeyCode::RETURN, ModifierFlag::CONTROL_L</autogen>
  </item>
</root>

В зависимости от вашего вкуса, используйте vi, emacsили TextEdit (но, конечно , не Word).

Загрузите свой private.xml

Скажем, Karabinerвы будете использовать пользовательские настройки: Используйте подготовленные настройки

и загрузить его: Применить подготовленные настройки

Проверь это

Запустите Messagesили Skypeи убедитесь, что вы можете ввести returnлюбое сообщение и отправить сообщение с помощью command ⌘return.

Дан
источник