Keyboard shortcuts in editor break standard OSX shortcuts

On OSX, I frequently use the following standard shortcuts that work across all applications:

  • ctrl+e for end of line
  • ctrl+a for beginning of line
  • ctrl+k to copy from the cursor to the end of the line
  • ctrl+y to paste copies made with ctrl+k

Of these ctrl+k and ctrl+y do not work which has been somewhat frustrating since this is the only app I use where they do not work :confused:. This negatively impacts my user experience :frowning:.

This is also true at Stack Overflow with the editor – it’s a shared open source component with default keyboard shortcuts.

There are alternative keyboard shortcuts for doing those functions, e.g. end takes you to the end of line, home takes you to the beginning of the line, etc.

На клавиатуре MacBook этих клавиш нет, к тому же они неудобно расположены во время набора текста, так как приходится убирать правую руку с основной позиции.

Я использую + для начала строки и + для конца строки.

3 лайка

ctrl + a и ctrl + e для home и end работают нормально. Проблема в переопределении ctrl + k, которое обычно удаляет текст до конца строки, но здесь вызывает шаблон для ссылки.

Если доступность является приоритетной задачей, зачем использовать ноутбук, особенно Apple, который идёт на многие компромиссы, чтобы сделать устройства сверхтонкими и лёгкими, часто в ущерб возможности ремонта или даже нормальной работе клавиатуры? Кроме того, можно использовать внешние USB-клавиатуры, которые специально разработаны с учётом требований доступности.

1 лайк

Аргументы из области «соломенного чучела»?

Это не поможет, если веб-сайты переопределяют стандартные сочетания клавиш. Apple не изобрела эти привязки — GNU Readline использует те же самые. Я в основном работаю из Linux, поэтому эти сочетания работают и там. Упомянул macOS лишь потому, что проблемы пользователей Linux часто игнорируются; данный вопрос затрагивает как пользователей macOS, так и Linux.

Ваше мнение о том, что внешняя USB-клавиатура более доступна, — это всего лишь мнение. По моему мнению, наличие тачпада в зоне, где я могу быстро вернуться к домашнему ряду клавиш, делает работу более доступной. Также более доступно иметь одну клавиатуру, к которой нужно привыкать (например, когда я не за рабочим столом с внешней клавиатурой). Поэтому для меня возможность использовать клавиатуру ноутбука является более доступным вариантом. Тем не менее, единственная причина, по которой я использую MacBook, — это то, что он был предоставлен компанией. В прошлом я использовал ThinkPad, у которых клавиатуры лучше. К тому же этот MacBook уже несколько лет в эксплуатации, поэтому его клавиатура на самом деле довольно хорошая. По причинам, которые вы указали в своём аргументе из области «соломенного чучела», я, скорее всего, попросит ноутбук от другого производителя, когда придёт время заменить текущий. Однако это никак не решит проблемы доступности, создаваемые веб-сайтами, которые переопределяют стандартные сочетания клавиш.

Интересно, это первый раз, когда я слышал о перемещении с помощью Ctrl+K. Примечательно, что вся сеть Stack Overflow также перехватывает это сочетание, а Gmail оставляет его свободным.

Я пока не могу принять решение… Перенастройка всех подсказок «Гиперссылка (Ctrl+K)» на CTRL+SHIFT+K, переобучение всех пользователей, использующих CTRL+K, и так далее — это довольно дорогостоящая задача.

Не могли бы вы переназначить перемещение в конец строки на другую клавишу или, возможно, использовать компонент темы для изменения сочетания клавиш на вашем сайте, если это является для вас серьёзной проблемой?

3 лайка

Ctrl+K — это независимая от ОС комбинация клавиш для вставки гиперссылок. Она используется в различных инструментах веб-разработки и даже в таких приложениях, как Microsoft Word. Эта комбинация настолько распространена, что у неё есть страница в Википедии.

Если вы редактируете пост, то с гораздо большей вероятностью вы будете вставлять ссылку, а не искать другое назначение этой комбинации.

4 лайка

Да, перехватывает :rage:.

По моему мнению, просто вводить “[title](URL)” удобнее, чем использовать сочетание клавиш “ctrl+k URL tab заголовок return”.

Я был бы признателен за возможность настраивать привязки клавиш на сайте или даже полностью отключать их.

Полагаю, расширения браузера позволят вам это сделать.

Это может быть правдой, хотя я не нашёл ни одного, который можно было бы проверить на отсутствие кейлоггера :). Плагины, которые я рассматривал, требуют тревожных разрешений для выполнения этой задачи.

Для остальных затронутых: вот скрипт для Violent Monkey:

В качестве бонуса это также исправляет функцию «Найти», которую в последнее время многие веб-страницы перехватывают для выполнения поиска по сайту вместо поиска по странице (не связано с Discourse на момент публикации).

// ==UserScript==
// @name anti key-grabber
// @description Предотвращает захват и блокировку важных сочетаний клавиш веб-приложениями
// @inject-into auto
// @version 1.1
// ==/UserScript==

function antigrab(e) {
  if (! e.ctrlKey) {
    return;
  }
 
  switch (e.keyCode) {
    case 65: // A - переход к началу строки
    case 69: // E - переход к концу строки
    case 70: // F - найти
    case 87: // W - закрыть окно
    case 84: // T - открыть вкладку
    case 75: // K - удалить до конца строки
    case 89: // Y - вставить
      e.stopImmediatePropagation();
      e.stopPropagation();
  }
}

(function(){
unsafeWindow.document.addEventListener('keydown', antigrab, true);
})();

(вдохновлено: https://gist.github.com/rodneyrehm/5213304)

Заметил сегодня, что Gmail тоже начал перехватывать Ctrl+K :crazy_face:.

3 лайка