Что делает хорошее диалоговое окно опций/настроек?

Короче говоря, это должно решить проблему для вас:

(setq local-function-key-map (delq '(kp-tab . [9]) local-function-key-map))
(global-set-key (kbd "C-i") 'forward-word)

Более длинная версия:

Из документации emacs lisp о функциональных клавишах :

В ASCII Ci и < TAB> являются одинаковыми символами. Если терминал может различать их, Emacs передает различие программам на Лиспе, представляя первое как целое число 9, а второе - как символ табуляции.

В большинстве случаев не стоит различать их. Таким образом, обычно local-function-key-map (см. Translation Keymaps) настроен для отображения вкладки на 9. Таким образом, привязка клавиш для кода символа 9 (символ C-i) также применяется к tab. Аналогично для других символов в этой группе. Функция read-char также преобразует эти события в символы.

Итак, выполнив следующее, вы увидите разницу в привязках клавиш:

(setq local-function-key-map (delq '(kp-tab . [9]) local-function-key-map))

;; this is C-i
(global-set-key (kbd "C-i") (lambda () (interactive) (message "C-i"))) 
;; this is  key
(global-set-key (kbd "") (lambda () (interactive) (message "")))

Обратите внимание, что каждый режим устанавливает различные привязки TAB kbd> иначе вам может потребоваться выполнить настройку для каждого интересующего вас режима.

Зависимость от версии :

Вышесказанное работает для Emacs 23.1. Из файла NEWS:

Последовательности функциональных клавиш теперь отображаются с помощью новой переменной local-function-key-map. Это наследуется от глобальной переменной function-key-map, которая больше не используется напрямую.

Это означает, что в версиях 22 и ранее вы можете получить тот же эффект, используя переменную function-key-map. Я проверил это и обнаружил, что он работает с Emacs 21.

(setq local-function-key-map (delq '(kp-tab . [9]) function-key-map))
(global-set-key (kbd "C-i") 'forward-word)

5
задан 4 revs 23 May 2017 в 12:11
поделиться

4 ответа

Окна параметров обычно переполнены, загромождены и сбивают с толку, из-за чего пользователю сложно найти нужный вариант. Их часто собирают вместе в последнюю минуту дизайна, без тщательного обдумывания или согласования с остальной частью дизайна. Вот что делает их частой целью насмешек. Вот как избежать этой участи.

Ограничьте количество вариантов. Чем меньше вариантов, тем меньше вещей, которые скрывают то, чего на самом деле хочет пользователь.

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

  • Даже тогда, Учтите, что принуждение небольшого числа пользователей к небольшому изменению привычки может стоить экономии на удобстве использования, связанной с добавлением другой опции. Помните, что наличие единого стандартного пользовательского интерфейса для всех пользователей помогает пользователям поддерживать друг друга.

  • Если ваше приложение не имеет «игровой» стороны (например, Facebook), избегайте вариантов тривиальных эстетических предпочтений. Сосредоточьтесь на опциях, которые улучшают производительность задачи для избранных пользователей (например, опциях, поддерживающих доступность).

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

  • Не используйте параметры для установки атрибутов данных (например, поля конкретного документа). Параметры являются атрибутами приложения и должны применяться по умолчанию ко всем отображаемым данным.

Организуйте параметры по функциям так, как их видят ваши пользователи. Рассмотрите возможность использования метода сортировки карточек для категоризации ваших вариантов. Не скрывайте менее часто используемые параметры на вкладке или в диалоговом окне «Дополнительно». У вас может быть статистика использования каждой опции, но у ваших пользователей ее нет. У них нет возможности узнать, является ли вариант, который они ищут, «расширенным» или нет, что вынуждает их искать вкладку расширенного ящика нежелательной почты в дополнение к другим вкладкам.

Переместите функциональные возможности из окна «Опции» и сделайте их ближе к месту, где пользователь решает установить опцию. Вместо того, чтобы иметь возможность установить значение по умолчанию, используйте тот же интерфейс для переопределения значений по умолчанию. У вас может быть кнопка «Сделать этот принтер по умолчанию» в диалоговом окне «Печать». Включите пункт меню «Сохранить вид» в меню «Просмотр», который сохраняет в сеансах порядок сортировки, фильтрацию и выбор столбцов, заданные пользователем для окна. В качестве альтернативы, рассмотрите возможность автоматического сохранения представления - даже размеров окон и положений - между сеансами и предоставления пункта меню «Вид по умолчанию», чтобы вернуть его.

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

Специальное раскрывающееся меню «Параметры / Предпочтения» также является хорошим местом для размещения трех или четырех пунктов адаптируемого / переменного меню, которые предполагают варианты, которые пользователь хотел бы установить в данном контексте. Например, когда приходит электронное письмо, может появиться пункт меню, который устанавливает параметры оповещения для нового электронного письма (например, звук, показанное уведомление). Когда пользователь меняет принтер по умолчанию на другой, может появиться пункт меню, чтобы сделать этот новый принтер принтером по умолчанию.

Используйте графический дизайн в веб-стиле, небольшие иллюстрации и визуальную иерархию, чтобы упростить поиск и понимание параметров на данной панели. Используйте размер, цвет и / или толщину шрифта, чтобы выделить часто используемые параметры, при этом все параметры упорядочиваются по функциям. Примерно так:

Section headings in large font. Common options in bold print
(источник: zuschlogin. com )

Поощряйте легкое изучение и экспериментирование опций:

  • Флажки и другие элементы управления для опций в окнах опций должны применяться мгновенно при выборе, чтобы пользователь мог сразу увидеть влияние каждой опции при ее выборе. Не должно быть кнопок «ОК» и «Отмена», а только кнопка «Закрыть» (также может быть кнопка «Сброс» или «Отменить»). Очень неприятно открывать типичное диалоговое окно «Параметры», выбирать параметр и нажимать «ОК» только для того, чтобы обнаружить, что один из них установил неправильный параметр и должен начинать заново. Кроме того, если пользователь выбирает несколько параметров, нажимает «ОК» (или «Применить») и в итоге получает полностью сбитый с толку пользовательский интерфейс, пользователь не обязательно будет знать, какой параметр необходимо отменить; пользователь может даже не вспомнить все выбранные параметры.

  • Включите «Что это?» Справка для каждого параметра, чтобы пользователи могли узнать больше о том, что делает параметр и когда его следует использовать.

  • Рассмотрите возможность сделать окно параметров немодальным, чтобы пользователь мог перемещаться по главному окну, чтобы лучше видеть, что делает параметр.

  • 1262] Убедитесь, что все названия параметров и их синонимы указаны в вашей справочной документации, и убедитесь, что справочная документация показывает пользователю, где именно найти параметр. Часто пользователи могут не знать, существует ли опция, или это «опция» или другой вид команды.

4
ответ дан 13 December 2019 в 22:11
поделиться

Сделайте так, чтобы наиболее распространенные параметры было легко найти, а расширенные параметры - "необязательными", чтобы даже взглянуть на них ... Скрытие параметров, которые не будут волновать 99% ваших пользователей, очень эффективно.

Главное - не подавить аудиторию. Диалоги опций, как правило, сумасшедшие, просто потому, что люди помещают туда все доступные опции.

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

3
ответ дан 13 December 2019 в 22:11
поделиться

Я думаю, это действительно зависит от того, сколько вариантов у вас будет, каковы могут быть их логические группировки и откуда они берутся (приложение, внешние плагины и т. Д.). Древовидный стиль Диалог, используемый Visual Studio, является хорошим выбором из-за большого количества опций и множества плагинов / пакетов, которые предоставляют опции, которыми можно управлять в этом диалоге.

Общие шаблоны, которые я видел:

  1. Визуальный Диалоговое окно типа Studio (древовидное представление).
  2. Диалоговое окно параметров Word / Office (особенно в Office 2007/2010).
  3. Стандартный диалог с вкладками (только хорошие варианты с небольшим количеством (менее 4) вкладок) .
  4. Одно диалоговое окно с параметрами, сгруппированными с помощью групповых полей (стандартный стиль .NET или стиль Office). Это возможно только при небольшом количестве вариантов.
2
ответ дан 13 December 2019 в 22:11
поделиться

Лучше всего не иметь диалогового окна параметров.

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

1
ответ дан 13 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

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