OberonCore
https://forum.oberoncore.ru/

Запуск командера с клавиатуры
https://forum.oberoncore.ru/viewtopic.php?f=47&t=1040
Страница 1 из 2

Автор:  Иван Горячев [ Понедельник, 23 Июнь, 2008 11:43 ]
Заголовок сообщения:  Запуск командера с клавиатуры

Евгений Темиргалеев писал(а):
Партия... она может не только сказать, но и привлечь по статье "фичеписательство" :)


Может. Но если с точки зрения эргономики и логической стройности среды требуется научить систему понимать Ctrl+Enter (а оно требуется - более логичного сочетания для запуска коммандера с клавиатуры придумать сложно. разве что Shift-Enter), то проще научить её сразу всему, а не отдельно взятым сочетаниям

Автор:  Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 11:50 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Ээээ. Мы удаляемся от темы, но поясните, как понимать "запуск коммандера с клавиатуры"? Какого коммандера -- в смысле как его выбирать до запуска?

Автор:  Иван Горячев [ Понедельник, 23 Июнь, 2008 11:53 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Евгений Темиргалеев писал(а):
Ээээ. Мы удаляемся от темы, но поясните, как понимать "запуск коммандера с клавиатуры"? Какого коммандера -- в смысле как его выбирать до запуска?


Элементарно - ищется первый коммандер перед курсором и выполняется. Выделять ничего не надо - Ctrl+Q, команда, Ctrl+Enter - и вуаля

Автор:  Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 11:59 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Иван Горячев писал(а):
Выделять ничего не надо - Ctrl+Q, команда, Ctrl+Enter - и вуаля
И насколько часто может понадобится выполнение команды сразу после её ввода?

Автор:  Иван Горячев [ Понедельник, 23 Июнь, 2008 12:06 ]
Заголовок сообщения:  Re: "Запуск коммандера"

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

Автор:  Valery Solovey [ Понедельник, 23 Июнь, 2008 12:10 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Евгений Темиргалеев писал(а):
Иван Горячев писал(а):
Выделять ничего не надо - Ctrl+Q, команда, Ctrl+Enter - и вуаля
И насколько часто может понадобится выполнение команды сразу после её ввода?

Кажется я понял:
Код:
(!)StdLog|.Clear
Вертикальная черта - курсор. Нажав в любое время на горячие клавиши, мы запустим команду, на которой стоит курсор.

Автор:  Иван Горячев [ Понедельник, 23 Июнь, 2008 12:12 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Valery Solovey писал(а):
Кажется я понял:
Код:
(!)StdLog|.Clear
Вертикальная черта - курсор. Нажав в любое время на горячие клавиши, мы запустим команду, на которой стоит курсор.

Именно! Причём сама то фишка элементарна, вопрос повесить её на правильную комбинацию

Автор:  Александр Ильин [ Понедельник, 23 Июнь, 2008 13:21 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Иван Горячев писал(а):
Элементарно - ищется первый коммандер перед курсором и выполняется. Выделять ничего не надо - Ctrl+Q, команда, Ctrl+Enter - и вуаля
Отличная идея! Предлагаю искать влево до первого перевода строки.
А что, Ctrl+Enter в меню нельзя назначить?

Автор:  Александр Ильин [ Понедельник, 23 Июнь, 2008 13:23 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Valery Solovey писал(а):
Кажется я понял:
Код:
(!)StdLog|.Clear
Вертикальная черта - курсор. Нажав в любое время на горячие клавиши, мы запустим команду, на которой стоит курсор.
При таком способе и командер не нужен, вообще-то.

Автор:  Иван Горячев [ Понедельник, 23 Июнь, 2008 14:12 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Александр Ильин писал(а):
Отличная идея! Предлагаю искать влево до первого перевода строки.
А что, Ctrl+Enter в меню нельзя назначить?


Походу нельзя. Там часть сочетаний жёстко в HostMenus зашита. До первого перевода не всегда удобно, да и мышь в таком случае дискриминируется. А так и мышью можно, и клавиатурой.

Автор:  Иван Горячев [ Понедельник, 23 Июнь, 2008 15:07 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Иван Горячев писал(а):
Причём сама то фишка элементарна, вопрос повесить её на правильную комбинацию


Собственно вот

Вложения:
Commanders.odc [4.67 КБ]
Скачиваний: 716

Автор:  Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 19:02 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Александр Ильин писал(а):
Valery Solovey писал(а):
Кажется я понял:
Код:
(!)StdLog|.Clear
Вертикальная черта - курсор. Нажав в любое время на горячие клавиши, мы запустим команду, на которой стоит курсор.
При таком способе и командер не нужен, вообще-то.

Коммандер отличается возможностью указания произвольного набора параметров в тексте (DevCommanders.par). Ещё есть Dev->Execute, но там команду нужно выделять.

Автор:  Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 19:07 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Александр Ильин писал(а):
Иван Горячев писал(а):
Элементарно - ищется первый коммандер перед курсором и выполняется. Выделять ничего не надо - Ctrl+Q, команда, Ctrl+Enter - и вуаля
Отличная идея! Предлагаю искать влево до первого перевода строки.
Я не вижу применимости. Ведь это полезно только для команд, которые мы вводим единственный раз. Иван, Вам часто приходится выполнять такие команды?

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

Автор:  Александр Ильин [ Понедельник, 23 Июнь, 2008 20:31 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Евгений Темиргалеев писал(а):
Если повторно использовать заранее вбитые команды, то добраться курсором до команды в тексте сложнее, нежели переставить курсор мышкой. А вместо этого можно сразу щелкнуть по коммандеру.
Простой пример: команды тестирования в конце текста модуля. Ctrl+End, Ctrl+Enter. Если вы только что подправили код и руки лежат на клавиатуре, то переключаться на мышь гораздо дольше. Даже если в конце несколько команд и после Ctrl+End надо пару раз нажать "вверх".

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

Ещё вопрос: во что легче попасть мышкой - в квадратик коммандера или в строку с командой? Строка-то побольше мишень будет. Переключение с мыши на клавиатуру производится быстрее, чем наоборот, особенно если нужно попасть в такие большие клавиши как Ctrl, Enter, Пробел или Esc.

Автор:  Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 20:59 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Александр Ильин писал(а):
Ещё вопрос: во что легче попасть мышкой - в квадратик коммандера
Вроде в системе Оберон и не было коммандеров, команды распознавались в тексте и по ним можно было просто тыкать. Кто точно знает?

Про саму команду "Выполнить" такое предложение:
- курсор стоит в QualIdent -> вызывается процедура;
- курсор стоит между коммандером и завршающим коммандером -> раносильно тыканью в коммандер.

Автор:  Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 21:03 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Александр Ильин писал(а):
Простой пример: команды тестирования в конце текста модуля. Ctrl+End, Ctrl+Enter. Если вы только что подправили код и руки лежат на клавиатуре, то переключаться на мышь гораздо дольше...
Надо пробовать.

Я обычно жму Ctrl+K, Alt+D,U. В дочернем окне открываю (или уже открыт) конец модуля, где тыкаю в коммандер -- чтобы не искать потом место правки, что напряжно если модуль в несколько экранов.

Автор:  Александр Ильин [ Понедельник, 23 Июнь, 2008 21:42 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Евгений Темиргалеев писал(а):
Вроде в системе Оберон и не было коммандеров, команды распознавались в тексте и по ним можно было просто тыкать. Кто точно знает?
Я точно знаю. Щелчок средней кнопкой мыши по тексту вида Module.Procedure запускает указанную процедуру на выполнение. Как я и написал, при таком способе коммандер не нужен.
Однако, систему Оберон брать за образец я бы поостерёгся - она слишком сильно ориентирована на мышь. Там клавиатурных сочетаний в привычном нам виде я вообще не нашёл, даже в меню.

В порядке дальнейшего оффтопика: зато в системе Оберон есть отличный модуль EditKeys. Всё мечтаю портировать его в виде плагина в Notepad++. Да и в ББ он бы пришёлся весьма кстати, на замену F5 от Info21. Вкратце - по горячей клавише производится подстановка макроса, введённого слева от курсора (первый идентификатор - имя макроса, далее налево стек параметров через двоеточие, если требуется). Например, пишем:
GetThis:p|
"|" - положение курсора. Нажимаем горячую клавишу, получаем заготовку:
PROCEDURE GetThis ();
BEGIN
|
END GetThis;
Всё с правильными отступами.
Макросы описаны в текстовом файле со специальным синтаксисом. Есть набор базовых макрокоманд (около 10), среди них возможность изменять параметры шрифта и вызывать произвольные команды (Модуль.Процедура). Макросы описаны как комбинации базовых макрокоманд и ранее описанных макросов.
Ещё пример:
i:5:dn
Опустить букву i на 5 пунктов. Легко можно написать макрос, форматирующий текст как индекс (для формул) или вставляющий спецсимвол из таблицы Unicode. Очень простой и мощный инструмент.

Автор:  PGR [ Понедельник, 23 Июнь, 2008 22:43 ]
Заголовок сообщения:  Re: "Запуск коммандера"

Евгений Темиргалеев писал(а):
Я обычно жму Ctrl+K, Alt+D,U. В дочернем окне открываю (или уже открыт) конец модуля, где тыкаю в коммандер -- чтобы не искать потом место правки, что напряжно если модуль в несколько экранов.

Над эргономикой в BlackBox ещё работать и работать :? Сколько нажатий на клавиши для запуска программы вместо простого Ctrl-F9 :)

Автор:  Евгений Темиргалеев [ Понедельник, 23 Июнь, 2008 23:03 ]
Заголовок сообщения:  Re: Запуск командера с клавиатуры

Вообще то "запуска программы" (в понимании Ctrl+F9 из Турбо Паскаля, угадал?) не происходит. Ни что ведь не мешает сделать команду создания екзешника из модуля с последующим его запуском -- и поставить ее на "Ctrl+F9"

Автор:  Илья Ермаков [ Понедельник, 23 Июнь, 2008 23:20 ]
Заголовок сообщения:  Re: Запуск командера с клавиатуры

А что есть "программа".... как не пережиток дремучего прошлого пакетной обработки с перфокарт :-)

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/