Comments 33
Я бы как-то ключи команд стандартизировал. Иногда разработчики создают абсолютную путаницу из ключей, только им понятную. Вот например cmake -B и --build, я их всё время путаю, как-то можно более наглядно ключи создавать?
Тут та же проблема что и со стилем кода - кому-то Олман, а кому-то КиР подавай. В итоге у одних однобуквенные флаги разных регистров делают разное, а длинных вообще не завезли (и хэлп максимально полезыный а ля sed [-Ealnru]
), у кого-то однобуквы всегда капсом (ну почти - scp -P1234
но scp -i id_rsa.pub
vs ssh -p1234 -i id_rsa.pub
), а у третьих однобукв примерно совпадает с длинной командой (ripgrep --help
в качестве примера), а у четвертых длинные параметры через одну черточку делаются. Всё просто потому что каждый парсит аргументы каждый раз по-разному.
Базар жеж тут православный, а не какой-то б-гомерзкий Собор типа Powershell.
Небольшая заметка:
а у третьих однобукв примерно совпадает с длинной командой (
ripgrep --help
в качестве примера)
В случае утилит на Rust почти все используют один и тот же crate - clap. Так что опыт ввода флагов для утилит на этом языке в 99% случаев будет одинаков.
+ много за rlwrap
readline настраивается через /etc/inputrc или ~/.inputrc см man 3 readline
надо было ставить лиииинукс :)
К сожалению карма не позволяет поставить люто-бешеный плюс. Сам хейтил линукс вплоть до прошлого десятилетия именно из-за бардака в терминалах.
Возмущала покорность линуксоидов и, ну ладно не могут исправить положение - так хотя бы они объясняли внятно, "кто тут на ком стоял". Лет бы 15, а лучше 20 назад эту статью...
А что произошло в прошлом десятилетии?
Пройдя через разные стадии принятия неизбежного и расставшись с иллюзорными надеждами на mc, я приучился, стиснув зубы, сходу запускать nano - где хотя бы стрелки и Del с Backspace работали по-людски. Ну и putty выручал. Встречным образом, в линуксах шире разошлись инструменты с readline.
А со временем и вовсе настал кроссплатформенный рай... Не столь давно наткнулся на Zellij - вроде вот оно счастье - но быстро понял, что оно для меня оверкил. И tmux со screen я так и не осилил: лучше запущу столько окон и вкладок Windows Terminal, сколько мне нужно. А линь один из рантаймов, иногда остро необходимый и, наконец-то, очеловечившийся.
cat
,nc
,git commit --interactive
Что-то я тут запутался с первого абзаца.
Какие стрелки в cat, это команда для вывода а не редактирования
какие проблемы со стрелками в git commit, там же гит не причем, вопрос в том какая оболочка и какой редактор по умолчанию, в mingw может быть и msword прикрутить можно =) ?
Проблемы с непечатаемыми символами в терминале, или проблемы передачи хоткеев через различные протоколы и программы (rdp/ssh/и учитывая современные технологии с контейнерами и виртуализацией, еще не всегда понятен трафик ввода-вывода). Они есть, но нужно все-таки уточнять...
Какие стрелки в cat, это команда для вывода а не редактирования
С помощью cat >paper.tex теоретически можно статьи писать ) Хотя реально с точки зрения простого пользователя актуальнее ситуация "вывели большой файл, почему стрелками не листается?". То, что реально мы уже не в cat, а в шелле, можно ли вообще получить строки выше - зависит от терминала, а вообще для решения проблемы надо использовать less - это уже какая то чёрная магия )
а less тут причем? Какое отношение пагинатор имеет к редактированию?
Решает проблему со стрелками в cat.
cat никак не обрабатывает стрелки. он не редактор.
less их обрабатывает частично, для навигации по тексту. Но он тоже не редактор, курсор он не двигает, только текст.
для решения проблемы редактирования текста, надо его редактировать редактором. Тогда будет уже можно высказывать претензии к протоколу и терминалу, если что-то не работает.
Стрелки нужны не только в редакторе. И попробуйте всё таки посмотреть на проблему с точки зрения простого пользователя (бухгалтера, музыканта, переводчика), а не программиста, который понимает, как оно устроено.
Так зачем бухгалтеру или музыканту ковыряться в кривом терминале?
Есть удобный пользовательский софт.
И я не программист, программисты, кстати, зачастую в этом не разбираются
Поставил линукс потому что модно-молодёжно, решил разобраться, для какого то действия посоветовали такие то консольные команды...
И я не программист
Ну скорее всего ITшник, а не гуманитарий )
Так то после Примуса, Бейсика на 8битных компьютерах и прочей истории все эти неудобства/особенности современных консолей какие то мелочи, привыкаешь и забываешь.
setopt vi
решил для меня все проблемы с Ctrl-A/E и так далее
Полностью согласен. Но и он не идеален
Возврат в режим редактирования (esc i) делает нередактируемой строку до курсора. Это раздражает - неудобно и из vim такое поведение давно убрали
Не работают home и end клавиши. esc $ и esc 0 это круто, конечно, но можно пожалуйста home и end тоже
Не стирается символ переноса строки. Надо жать esc j J, чтобы убрать пустую строку
А ещё после перехода на helix надо держать в голове 3 разных vi-like системы хоткеев: как в vi (с проблемами выше), как в vim/neovim (без проблем выше), как в helix (select->edit вместо edit->select, мне так удобнее)
может быть есть где-то плагин для zsh, где эти проблемы vi-mode пофиксили и там хоткеи хотя бы как в vim?
может быть есть где-то плагин для zsh, где эти проблемы vi-mode пофиксили и там хоткеи хотя бы как в vim?
есть zsh-vi-mode, но я им не пользовался
после перехода на helix
а helix уже адекватный в плане функционала и сообщества? а то раньше плагинов для него днем с огнем не сыщешь
Как замена блокноту он уже хорош, т.к. поддерживает интеграцию с tree sitter и LSP «из коробки». Как IDE я его пока не пытался использовать - всё равно долго с настройкой возиться.
Плагинов нет, т.к. системы плагинов пока в принципе нет. Я его запускаю из-под Zellij, к ней плагины есть
Как замена блокноту он уже хорош, т.к. поддерживает интеграцию с tree sitter и LSP «из коробки». Как IDE я его пока не пытался использовать - всё равно долго с настройкой возиться.
Плагинов нет, т.к. системы плагинов пока в принципе нет. Я его запускаю из-под Zellij, к ней плагины есть
решил для меня все проблемы с Ctrl-A/E и так далее
А были ли проблемы?
autoload -z edit-command-line
zle -N edit-command-line
bindkey "^h" edit-command-line
Ctrl+h
и любая команда редактируется в любимом редакторе
Очень рекомендую:
(echo '"\e[A": history-search-backward'; echo '"\e[B": history-search-forward') >> /etc/inputrc
Использование readline
и советы по адаптации команд очень полезны, особенно для тех, кто ежедневно работает в командной строке. Радует, что автор предлагает простые и эффективные решения. Возможно, стоит попробовать инструменты вроде rlwrap
для улучшения взаимодействия с терминалом
Открою Америку - имеется возможность поставить GNU Midnight Commander? Поставьте его и бросте выбирать наиболее кошерный редактор для консоли.
Запасаемся попкорном и смотрим на холивар "консоль против клонов NC"...
уже можно поставить far2l
Во-первых, mc - это не GNU проект.
Во-вторых, является не конкурентом терминала, а удобным дополнением. В случае команды Ctrl-O мы получаем всё те же проблемы. Когда используется командная строка mc, то мы должны знать/помнить, как эффективно работать в ней (она отличается от обычного терминала):
[Alt|Esc]-Tab - автодополнение; двойное нажатие открывает список автодополнения
Ctrl-q - Quote mode: позволяет вводить конфликтующие с mc команды, например +, -, \ и др.
Так терминалы и прочее основанное на readline по умолчанию используют же раскладку GNU/Emacs. И стрелочки там работают, просто это биндинги Emacs - Ctrl-B (лево), Ctr-F (право) и пр. При этом поддерживается режим Vi через "set -o vi". Статья про то, как не читают документацию.
Почему порой так сложно вводить текст в терминал