Pull to refresh

Comments 33

Я бы как-то ключи команд стандартизировал. Иногда разработчики создают абсолютную путаницу из ключей, только им понятную. Вот например cmake -B и --build, я их всё время путаю, как-то можно более наглядно ключи создавать?

Тут та же проблема что и со стилем кода - кому-то Олман, а кому-то КиР подавай. В итоге у одних однобуквенные флаги разных регистров делают разное, а длинных вообще не завезли (и хэлп максимально полезыный а ля sed [-Ealnru]), у кого-то однобуквы всегда капсом (ну почти - scp -P1234 но scp -i id_rsa.pub vs ssh -p1234 -i id_rsa.pub ), а у третьих однобукв примерно совпадает с длинной командой (ripgrep --help в качестве примера), а у четвертых длинные параметры через одну черточку делаются. Всё просто потому что каждый парсит аргументы каждый раз по-разному.

Базар жеж тут православный, а не какой-то б-гомерзкий Собор типа Powershell.

За консистентность команд ps ничего особо сказать не могу, выглядело в среднем довольно неплохо, не считая того что большинство командлетов выглядт Like-That

Изначальная мотивация Джефри Сновера (техлида PS, а перед этим автора WMI) - консистентность параметров (среди прочего).

Небольшая заметка:

а у третьих однобукв примерно совпадает с длинной командой (ripgrep --help в качестве примера)

В случае утилит на Rust почти все используют один и тот же crate - clap. Так что опыт ввода флагов для утилит на этом языке в 99% случаев будет одинаков.

Не только Rust едины. У питона например тоже есть стандартный argparse, который можно настраивать всяко.

  • + много за 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 никак не обрабатывает стрелки. он не редактор.

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"...

Во-первых, 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". Статья про то, как не читают документацию.

Sign up to leave a comment.