LINUX.ORG.RU

[Midnight Commander] [KDE4] Кто-нибудь смог настроить работу выделения по Shift+Стрелки?


0

1

Здравствуйте!


Несколько лет я потратил на то, чтобы разобраться, как в Konsole KDE3 в редакторе MC заставить работать выделение по Shift+Стрелки. Статья о том как это делать:

http://forum.ubuntu.ru/index.php?topic=67387.0

С переходом на Debian Squeeze пришлось распрощаться с KDE3 и начать пользовать KDE4. Новая Konsole устроено по-другому, и конечно, выделение по Shift+Стрелки в редакторе MC не работает.

Я попытался настроить Konsole через Настройка -> Настроить профиль -> Клавиатура -> Именить. И, так же как и в KDE3, я попробовал там изменить строки:

Up+Shift-AppScreen \EO2A
Down+Shift-AppScreen \EO2B
Вправо-влево пока не трогал

Сохранил конфигурацию, перезапускаю Konsole - и никакого толку. Shift+Стрелки не работат для выделения в редакторе.


Вопрос. У кого-нибудь получилось настроить Konsole так, чтобы в редакторе MC заработало выделение по Shift+Стрелки?


Ответ на: комментарий от xintrea

Вы, к сожалению, не приводите никаких внятных доводов, а выдаете глобальные суждения, причем, претендуя на объективность. Мало ли что ввергает людей в культурный шок... Чем конкретно интерфейс Vim Вас не устраивает, можете рассказать? Мне действительно интересно - в чем концептуальные ошибки заключаются, по Вашему мнению?

frpaul ★★
()
Ответ на: комментарий от Slavaz

> Зачётно. А что теперь стало на скроллинг истории? Или просто получилось, что скроллинг отрубился?

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


Если отрубился, то надо будет думать, чем заменить хоткеи (может, даже сделать более прямо с чтением профиля), ибо не примут девелоперы такой патч. Скажут, что регрессия :(


Это не патч, а временное решение. Там на самом деле много перелопачивать надо, ибо ошибка в проектировании.

xintrea
() автор топика
Ответ на: комментарий от frpaul

> Вы, к сожалению, не приводите никаких внятных доводов, а выдаете глобальные суждения, причем, претендуя на объективность. Мало ли что ввергает людей в культурный шок... Чем конкретно интерфейс Vim Вас не устраивает, можете рассказать? Мне действительно интересно - в чем концептуальные ошибки заключаются, по Вашему мнению?

Попробую, по рабоче-крестьянски.

Начнем с того, что интерфейс редактора VI пермаментно скрывает все свои возможности. То есть, зайдя в Far, в MCedit, в досовый MultiEdit, и попав в меню, можно выяснить, какие действия возможны. То есть, перед человеком сразу открывается пространство возможностей, причем выраженное в структурированном графическом виде (меню структурировано и иерархично само по себе). Мозг человека привык строить иерархии, поэтому пути в сбалансированном меню он воспринимает без напряжения памяти. Если рядом с действием написана комбинация клавиш, человек рано или поздно начнет пользоваться этой комбинацией. Это касается частых действий, такое ненавязчивое интерактивное обучение. Кроме того, у человека есть увереность, что для редких действий ему всегда перед глазами будет представлен в структурированном иерархичном виде интерфейс, в котором в один-два уровня вложенности он сможет найти то, что ему нужно. В VI этого просто нет. Человек, освоивший основные команды VI, вынужден постоянно лазить в мануалы, чтобы разобраться как делать редкоиспользуемые действия. На это тратится колоссальное время. Чем-то могут помочь листы шорткатов, но это подпорка, ибо редактор должен _сам_ в одно-два нажатия предоставлять такую информацию.

Клавиатура в VI используется не по назначению. Нельзя использовать алфавитные клавиши без модификаторов для выполнения действий, особенно если нет строки статуса, в которой человек хотя бы увидел, в каком режиме находится редактор. А VI по-дефолту не имеет строки статуса (представьте себе автомобиль без панели приборов), и включить её пользователю очень непросто. Кроме того получается, что VI заставляет работать с клавиатурой компьютера так же, как мы работаем с клавиатурой сотового телефона. То есть, на одну и ту же клавишу навешано несколько действий, и человеку нужно постоянно следить за контекстом, чтобы точно знать, что произойдет при нажатии - выполнится ли команда, или напечатается буква.

Кроме того, VI увеличивает количество нажатий на клавиатуру. В нормальных редакторах для выполнения действия достаточно либо одного обычного нажатия, либо одного «полуторного» нажатия (то есть, одновременного нажатия модификатора и клавиши). В VI для аналогичного действия надо нажимать гораздо больше клавиш - выйти в командный режим, нажать ":", ввести обычно двухбуквенную команду, нажать Enter.

Про общепринятые устаканившиеся сокращения (нанесенные даже на клавиатуру) и общепринятые действия по кнопкам говорить вообще не приходится. По F1 не посмотришь помощь, по F10 не сделаешь выход, по F2 не сохранишь файл, по Esc не отменишь текущее действие. Кстати, чтоб вы знали, клавиша Esc изначально не проектировалась для ввода Escape последовательной. Это пожже изза дополнительного кода 27, совпадающего с кодом клавиши Esc, Escape-последовательности стали называться Escape-последовательностями. Я уже объяснял одному клоуну эту тему:

Посмотри в словаре, как переводится слово «Escape». Ты с удивлением увидишь, что «escape» обозначает отмену действия. Именно эту функцию и должна выполнять одноименная клавиша. Именно для того, чтобы escape лучше выполняла свою функцию, ее поместили на угол клавиатуры, и отделили пространством от клавиши F1 и клавиш цифрового ряда. Такое размещение необходимо, чтобы человек не задевал другие клавиши когда внезапно обнаруживает, что делает что-то не то, и торопится отменить сие неправильное действие.

Еще:

Дело в том, что многие задроты путают ESC-последовательность и саму клавишу Escape. Это разные вещи. Клавиша вырабатывет свой ASCII-код 27, который орабатывается операционкой как код обычной клавиши. Никакой магии. То, что управлящие последовательности начинаются с кода 27, не говорит о том, что для ввода этого кода надо использовать клавишу Escape. Ведь вам не приходит в голову использовать клавишу «Забой» для ввода кода, закрепленного за этой же клавишей.

Во времена ДОС и матричных принтеров Epson, мне приходилось форматировать текст для принтера ESC-последовательностями. И я это делал в любом редакторе VC, NC, DN, и для этого мне не нужна была клавиша Escape. (Немыслено! Как же он это делал???). И при вводе этих ESC-последовательностей, клавиша Escape работала по своему прямому назначению - отменяла действия, инициировала выход из редактора. Почему это было возможно? Потому что клавиша Escape и символ начала ESC-последовательности - это разные вещи.

И про графическое обозначение, которое часто наносится на клавишу Escape, вместо надписи «Esc»:

В википедии видим:

The key is indicated as a circle with an arrow through it (U+238B, ) as defined in ISO 9995.

Нука-нука, что за пиктограмма? Кружочек, и стрелка, направленная вовне. Что же она обозначает? Она обозначает выход из текущей области, отмену текущего действия. Так думает и профессиональный дизайнер, который разработал этот знак, и любой нормальный человек, который видит этот знак. Ну а красноглаз продолжает тупо утверждать, что клавиша Escape создана для ввода ESC-последовательностей.

И так далее, полотно можно долго развёртывать. Я понимаю, откуда вышел интерфейс VI, ибо сам пользовался консольными редакторами в системах, где на машинный код редактора плюс сам текст отводится 16Кб ОЗУ. И даже пользовался линейно-командными текстовыми редакторами, в которых даже курсором по тексту не поездиешь. На тех мощностях, которые были доступны таким редакторам, это было оправдано.

Но VI - это исторически UNIX-редактор, а даже в самых первых юниксах (в которых система уже компилировалась из С-исходников, а не писалась напрямую в машинных кодах) мощности позволяли делать более удобные интерфейсы. То, что VI дожило в архаичном виде до наших дней, и обрасло костылями - это следствие силы привычки, передаваемое из поколенив поколение. Emacs тоже столлман до сих пор использует - это тоже сила привычки.

Вообще, достаточен простой тест. Человек, использующий VI, может первый раз включить MCEdit, и сделать основные действия по редактированию текста в нём. Человек, использующий MCEdit ничего не сможет сделать в VI при первом запуске, даже выйти из него. Такой перекос явно свидетельствет о том, что интерфейс VI - ущербен. Тут даже нечего обсуждать.

xintrea
() автор топика
Ответ на: комментарий от xintrea

Благодарю за обстоятельный ответ.

Начнем с того, что интерфейс редактора VI пермаментно скрывает все свои возможности.


Организация Vim близка к концепции командной строки — там ведь тоже нет кнопочек с надписанными хоткеями и F1 F2... Чтобы «вспомнить» команду, приходится читать man. Это не «плохо» или «хорошо» - это просто «по-другому». Дает свои преимущества, непохожие на преимущества «обычного» редактора.

На это тратится колоссальное время.


Не преувеличивайте. Один раз освоив управление, уже не будешь лазить в help поминутно. И, совершенно справедливо: >>Чем-то могут помочь листы шорткатов

Да, Вы правы, в интерфейсе vim отброшены сущности, относящиеся к начальному этапу освоения, на которые Вы указали. Поэтому редактор сразу честно признается, что «с разбегу» работать в нем не получится и предлагает начать с мануала, освоить основные концепции «вживую». Недостаток ли это? Для нетерпеливых — да. Но vim — не для любителей «сразу сесть и напечатать».

Мозг человека привык строить иерархии


Поэтому легко усваивает два основных режима и несколько вспомогательных, как основную концепцию. К тому же, человеку, знакомому с английским, ничего не стоит сообразить, что i == insert, cw == change word, etc.

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


Это Вы, видимо, про vi, по старой памяти. В vim такая фича есть по дефолту — всегда пишет, когда находится в режиме, отличном от normal. Так что, мимо.

Насчет «нельзя» - тоже не соглашусь. Идея vim — дать юзеру спокойно работать с «home row», не убирая рук то к стрелкам, то к Home, то к End... Для тех, кто владеет техникой «слепой печати» - очень удобно.

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


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

Кроме того, VI увеличивает количество нажатий на клавиатуру.


Пример (копирование 2 строчек текста и перенос на три строки вниз):
Vim: 2yy 3j p == 6 нажатий.
ОР (обычный редактор): S-стрелка вниз, End. С-Ins. 3жды стрелка вниз. S-Ins == 10 нажатий

«полуторного» нажатия (то есть, одновременного нажатия модификатора и клавиши).


А я считаю модификаторы за полноценные нажатия (с точки зрения отвлечения внимания), т.к. заставляют не одну, а обе руки снимать с «home row», из-за этого потом приходится его «нащупывать», чтобы продолжить работу.

выйти в командный режим, нажать ":", ввести обычно двухбуквенную команду, нажать Enter.


Будем конкретнее. Можно пример такого действия в vim и аналог для ОР?

Про общепринятые устаканившиеся сокращения (нанесенные даже на клавиатуру) и общепринятые действия по кнопкам


Об этом уже выше писано. К тому же, в linux есть довольно много программ, позволяющих использовать home row (тот же less, man), а есть и такие, что предоставляют базовый функционал vim: vimperator, zsh.

Кстати, чтоб вы знали, клавиша Esc изначально не проектировалась для ввода Escape последовательной.


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

Вообще, достаточен простой тест. Человек, использующий VI, может первый раз включить MCEdit, и сделать основные действия по редактированию текста в нём. Человек, использующий MCEdit ничего не сможет сделать в VI при первом запуске, даже выйти из него. Такой перекос явно свидетельствет о том, что интерфейс VI - ущербен.


Как насчет командной строки? С точки зрения новичка она ущербна. Для опытного юзера — бесценна. Так что критерий юзабилити должен учитывать, на кого расчитан интерфейс. А Вы этот важный фактор сбрасываете со счетов.

frpaul ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.