Skip to content

Conversation

@exkrexpexfex
Copy link
Contributor

@exkrexpexfex exkrexpexfex commented Feb 1, 2026

Follow up #3227, suggestion from contributors

а можно теперь этим диалогом текущее содержимое командной строки редактировать?
Бывает, исполнишь какое нибудь страшное заклинание с десятками аргументов и кучей "&&" и когда достаешь его из истории, хочется покрутить его в мултилайне без риска исполнить случайно. Например, на ALT+e вызвать.

Modern shells support such function, bash: crtl+x ctrl+e, fish: alt+e

So I have drafted it with the new dialogue, but I'm not sure about the target UX: multiline execution and history.
It would be nice to get some feedback before merging
@Dazzar56 @unxed @akruphi @spnethw

@exkrexpexfex exkrexpexfex marked this pull request as draft February 1, 2026 14:22
@unxed
Copy link
Contributor

unxed commented Feb 1, 2026

I like the concept; I've encountered a similar need. I'll be able to try it out on Tuesday or Wednesday.

@elfmz
Copy link
Owner

elfmz commented Feb 1, 2026

Alt+E точно нет - Alt+буква это же quick search. Вот два варианта:

  • по классике ввод ком строки заканчивающийся на \ считается многострочным вводом, попробуйте в mc ввести 'echo foo\' и нажать ентер - он перейдет в многострочный режим ввода команды, спрятав панели. В фаре можно просто временно растянуть контрол ком строки на + одну строчку, временно ужав панели.
  • можно свое чтонить, но точно не Alt+E. Alt + стрелка вверх/вниз например может растягивать командную строку по вертикали, за счет размера панелей. Получится похоже на поведение Ctrl+вверх/вниз, но с изменением размера комстроки, а не только панелей.

@exkrexpexfex
Copy link
Contributor Author

Alt+буква это же quick search.

Панели раньше командной строки перехватывают alt+буква, так что alt+e работает в новом варианте только с погашенными панелями. ctrl+O, alt+E не хуже башевского crtl+x ctrl+e, тем более раз уж мы крутим команду, то наверно захотим результат посмотреть и ctrl+O нажмем так или иначе.

Сочетание клавиш можно подобрать вдумчиво, но вот что делать, когда из одной строчки сделали много строчек в ходе редактирования? Сейчас простой вариант - в командную строку вставляется, по Enter выполняется и в истории также сохраняется. Отображение LF можно облагородить и OK. А можно что-то более интересное придумать, например, по одной команде вызывать, либо скриптом вызывать и так запоминать.. Не знаю как лучше.

image image

@elfmz
Copy link
Owner

elfmz commented Feb 1, 2026

работает в новом варианте только с погашенными панелями

зачем ограничивать такую полезную фичу, многострочники довольно обычное дело - во всех шеллах и всяких mc есть, самому частенько не хватало многострочного ввода команд в фаре

о одной команде вызывать

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

@exkrexpexfex
Copy link
Contributor Author

Хорошо. Значит, надо добавить

  • многострочный ввод по Enter, как в mc, если командная строка кончается \
  • какое-то другое сочетание клавиш для редактирования текущей команды в редакторе, ведь исходный запрос об этом
  • отображение и вызов этого из истории

@exkrexpexfex
Copy link
Contributor Author

exkrexpexfex commented Feb 1, 2026

  • Добавил многострочный ввод как в mc до 5 строк, с навигацией вверх вниз, а больше пяти - диалог
  • Диалог теперь по ctrl+alt+E
  • В истории “↵” (U+21B5)

Тестировать еще надо...
image
image
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants