LINUX.ORG.RU

Многие любят ругать cmd.exe, но…

 , , , ,


1

1

У него есть киллер-фича, которая лежит буквально на самой поверхности!

https://pic4a.ru/110/T42.png

Которые из линуксовых эмуляторов терминала такое умеют: выводить выполняющуюся сейчас команду в заголовок? Мы встречали от силы, как такое костылями прикрутить ко внутренней переключалке окон tmux. Может, так умеет ZSH? https://github.com/trystan2k/zsh-tab-title — повод перейти наконец на него с Bash, хехе.

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

И заодно — есть под онтопик максимально совместимый аналог dfhl.exe? (А то гонять для этого машину с оффтопиком как-то некузяво, хоть и нагружать основную тоже.) Чтобы автоматически находил дубликаты и сливал их в хардлинки к одному файлу. Желательно даже, чтобы умел сравнивать не все файлы со всеми подряд, что долго и Нам не нужно — а просто zip-ать попарно дерево директорий с деревом директорий, они в целом одинаковые. Проще самим написать, по ходу.



Последнее исправление: mertvoprog (всего исправлений: 3)
Ответ на: комментарий от mertvoprog

спокойно можно жмякнуть ^N в любой графической (!) программе, не уводя копыта с основной позиции

^ при этом жмёт хвост, я так понимаю?

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

Видимо надо было отдельно устанавливать.

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

Что «man hardlink»? Вы вопрос-то читали?

Читали. А вот вы ответ явно не читали.

NAME
       hardlink - link multiple copies of a file

SYNOPSIS
       hardlink [options] [directory|file]...

Не-а, zip-ать с целью получения пар для сравнения. Вместо пермутации

Ниче не понял.

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

переходец в линуксы

Этого народу здесь не надо.

Линукс — не бесплатная винда, бесплатная винда — это ReactOS, вот пусть туда и валят.

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

Советую не использовать oh-my-zsh

Так там и не oh-my-zsh, там форк евойного плагина.

Настроить zsh не так сложно как кажется

Ну так Мы пробовали когда-то: настраивали-настраивали — получился Bash. Ну и нафиг второй более жирный Bash? ;)

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

Заголовок окна не обязательно выводить в декорациях, внезапно? ;)

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

Вроде Windows XP

По ШГ угадали? ;)

Надо было GDI++ запустить, чтобы ещё больше запутать. RDP-сессия почему-то игнорирует автозагрузку.

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

Давно пора.

Вон выше обнаружили, что и это не повод.

Зачем, всё-таки, нужен этот ваш ZSH, кроме бесполезных свистоперделок?

Про /р/зв/р/чв/не путей не рассказывайте, Мы его уже много раз уринировали :P

cmd.exe — это графический вариант COMMAND.COM

Да ладно? ;) COMMAND.COM может видеорежим 80×50? А текст выделять? А Lucida Console на ШГ поставить?

А что, в VT100 можно было? ☺

Нет, в том и беда. Ретрограды упорно тащат лапками протухшее легаси в XXI век, вместо того, чтобы продумать консоль с нуля, как вон автор Arcan пытаются делать.

Даже шиндузятная сосноль куда навороченнее и навороты в ней реализованы через толковые API, а не костыли с Escape-последовательностями, которые неизбежно превращаются в кашу, если в терминал срёт более одной программы кряду. Благодаря чему появился такой мастодонт, как Far, например. А PowerShell вообще пушка. Но никсовые хомячки захотели костыли и ANSI, как у дидов, и майкам пришлось прогнуться.

mertvoprog
() автор топика

В федоре гном терминал выводит.

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

Вообще это есть где-то. Но в целом согласен. Тут в принципе вся система прогнила, всё надо с нуля переделывать, а не тянуть 50-летние костыли.

Накидаю хотелок:

  1. Строка редактирования - полноценный GUI-редактор текста. Если я нажал один раз shift+enter, то он превращается в многострочный редактор и для выполнения команды надо нажать кнопочку (ну или какой-нибудь ctrl+shift+enter). Естественно работает как любой другой textedit, мышкой можно произвольно выделять и тд. Подсветка синтаксиса, дополнения с выпадающим списком.

  2. Автодополнения, работающие на новом уровне. Автодополняется всё, что только можно теоретически автодоплнять.

  3. Нормальный синтаксис, не уродливый bash. Нормальные shell-средства работы с текстом, исключающие любую необходимость в sed/grep/awk/whatever.

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

  5. ctrl+c/ctrl+v для работы с буфером обмена. Сигналы можно посылать и другим хоткеем. Вообще в макоси классно сделано, в системе буфер обмена через win+c/win+v работает изначально. Хз, как тут лучше можно было бы сделать…

Legioner ★★★★★
()

Многие любят ругать cmd.exe

Гм.
Я вот виндузятник паршивый и уже забыл что-то такое cmd.exe.

А вы напомнили ...
anonymous
()
Ответ на: комментарий от MOPKOBKA

Хорошая попытка в нужном направлении, но результат мне не понравился.

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

Строка редактирования - полноценный GUI-редактор текста. Если я нажал один раз shift+enter, то он превращается в многострочный редактор и для выполнения команды надо нажать кнопочку

bind -m vi-insert '"\C-x\C-e": edit-and-execute-command'

C-xC-e откроет $VISUAL и выполнит написанное после выхода

sergej ★★★★★
()
Последнее исправление: sergej (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

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

Почему в kitty не наблюдаем?

Пишет во все вкладки по дефолту bash, во время выполнения команд не меняет.

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

Для Wayland подобного софта — универсального для любого композитора, а не прибитого к конкретному — нету в принципе.

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

Это не то, это костыли, прикрученные скотчем. Я могу в gedit скопировать/вставить команду и сейчас, это даже удобней будет, чем то, что ты предлагаешь.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от sergej

Прикольно, а как для zsh?

UPD: вот так

autoload -z edit-command-line
zle -N edit-command-line
bindkey "^X^E" edit-command-line

UPD2: В bash это, кстати, по дефолту на хоткее C-x C-e, так что дополнительных строчек в конфиге не надо.

Im_not_a_robot ★★★★★
()
Последнее исправление: Im_not_a_robot (всего исправлений: 2)
Ответ на: комментарий от mky

полурабочий

Вот поэтому и не озолотились, ибо костыли.

Подход

переведёт позицию курсора в окне xterm в позицию курсора в строке bash

ущербен потому же, почему ущербны всякие наколеночные TUI и прочие красивые статусные строки в VT-терминал: достаточно вывести параллельно что ещё — и всё это превратится в кашу, а предполагаемое и реальное положение выводимых символов перестанут совпадать. Да что там, достаточно ресайзнуть терминал. Или вывести широкий символ, что разные терминалы обрабатывают по-разному: кто-то в два знакоместа, кто-то пытаются запихнуть в одно, причём нельзя надёжно угадать, какие как.

Alt+b, Alt+f

Никак не отменяют того, что по длинным портянкам ими полминуты надо бегать. И того, что мало по границам «слова» попасть — надо ещё в конкретную позицию в нём, а «слово» может быть длинным.

ломается выделение текста

Оно и так поломано в случаях, когда TUI-приложение перехватывает клики.

Ситуация ещё больше усугубляется, когда эмулятор терминала поддерживает гиперссылки.

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

Достижима, можно ремапнуть Ctrl с Mod4 и назначить на Mod4 Emacs keybindings, которые будут переводиться в писюковые стрелочки-пейдждауны. Ну и написать нового нешиндоподобного софта, который будет ловить их как есть без этих костылей.

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

Да, Нам на самом деле эта плюшка особо и не нужна, просто нашли повод тонко вбросить на ЛОР :P

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

Похож, сойдёт.

Аналога ключика /t только не видим, ну да ладно.

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

Вы о чём?

Шутка

Речь наверное о том, что на смену телеге пришла современная телега?

А вы ее ОТВЕРГАЕТЕ ...
anonymous
()
Ответ на: комментарий от EXL

выделять его мышкой и жамкать Enter

Срочно прикрутить Orphus на ЛОР!

Кстати, как он работает, куда сообщения об опечатках отправляются, из клиентского JS-то? В некробраузерах HTML-формы умели на e-mail отправляться, но это в нынешних условиях, когда чуть менее чем у всех облачная почта — работает чуть менее чем никак.

в эмуляторах терминала на Linux

Нет никакого «на Linux».

Это всё разрабатывалось в древние времена разнообразия *NIX-систем: BSD, солярок, чпуксов и прочих. Для которых был единый X11-десктоп с разными фирменными и не очень оболочками, совместимыми между собой именно благодаря иксам и стандартам fd.o.

Просто выжил из них только линукс и всё это унаследовал.

Что мешало сделать отправку сигналов через Ctrl+Shift+Z, Ctrl+Shift+C? Диды UNIX’оиды?

Да: Ctrl тупо обнуляет бит и превращает символ в управляющий из диапазона 0x00–0x1f. Что должен делать Shift в таком случае? Превращать 0x20–0x3f, на которые уже и так кнопки есть? Очевидно же, что конфликты будут, поэтому Shift тупо игнорируется и в терминальных хоткеях его юзать нельзя.

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

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

Скорее всего данную подсистему пора менять.
Функциональные возможности терминалов двадцатилетней давности и ныне, сильно разнятся …

anonymous
()
Ответ на: комментарий от Legioner

всё надо с нуля переделывать

Есть такая проблема: несовместимые сделанные с нуля поделки не приживаются, потому что людям нужно легаси :P

полноценный GUI-редактор текста

Можно писать скрипты только в редакторе, даже «однострочники», и отказаться от понятия шелла. Шиндузятники-PHP-шники так и делают.

Автодополняется всё, что только можно теоретически автодоплнять

Только само оно не реализуется. Иначе будет автодополнять из всего, чего только найдёт на диске. Оно точно надо? :P

Гейхабовцы давеча выкатили какой-то подсказатор кода, натренированный нейронками — вот это уже больше похоже на правду.

Нормальный синтаксис, не уродливый bash

Были уже C-подобные шеллы — не взлетели.

исключающие любую необходимость в sed/grep/awk/whatever

Ahem, а что вместо них-то?

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

Вас с такой мышью в модераторы не возьмут!

У наших модераторов нет даже прав ютуб посмотреть.

И это не шутка ...
anonymous
()

Многие любят ругать cmd.exe,

Нужно защить ее

cmd.exe лучше bash ...
anonymous
()
Ответ на: комментарий от mertvoprog

Есть такая проблема: несовместимые сделанные с нуля поделки не приживаются, потому что людям нужно легаси :P

Да, это так, мечты вслух.

Можно писать скрипты только в редакторе, даже «однострочники», и отказаться от понятия шелла. Шиндузятники-PHP-шники так и делают.

Шелл удобен.

Только само оно не реализуется.

Ну да, я не спорю. Надо думать, как это сделать. Вариантов хватает. Самое банальное это стандартизированный выхлоп чего-то вроде myprogram –help=machine-readable.

Были уже C-подобные шеллы — не взлетели.

Надо пробовать. На самом деле я пока не видел ни одного шелла, который бы реализовывал мои хотелки. Обычно либо прикручивают к какому-нибудь пайтону доп-синтаксис, либо что-то sh-подобное в очередной раз рожают. А надо новый язык с нуля придумать. С плюсами sh (очень простой запуск программ, перенаправления), с плюсами обычных ЯП, без минусов sh. Заодно ещё и с JIT-компиляцией, чтобы работал на уровне хотя бы C.

Ahem, а что вместо них-то?

Нормальные функции для работы со стримами строк? Ты же когда пишешь на любом ЯП, не вызываешь grep, чтобы профильтровать. Ты пишешь что-то вроде stream.filter(x =~ /str/)

Вообще самое близкое к тому, что я хочу, это perl. Но perl умер и в принципе никогда не претендовал на интерактивный шелл. Надо что-то подобное.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Вообще самое близкое к тому, что я хочу, это perl.

А ведь запросто мог заменить …
Но телега

УДОБНЕЙ
anonymous
()
Ответ на: комментарий от fernandos

То есть чтобы нельзя было копировать вывод работающего приложения. Очень удобно, действительно.

Как работает windows terminal, в том числе и с линуксовым софтом:

  • Ctrl-c шлёт сигнал «убейся» работающему приложению
  • Ctrl-c когда что-то выделено мышью копирует выделенное и ничего не прибивает.

Не понимаю, почему в линуксах так нельзя.

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

Я как сделал:

В гном терминале установил сочетания на копирования/вставку на ctrl+c / ctrl+v.

Для посылки сигнала жму ctrl+shift+c.

В принципе работает. Привыкнуть бы ещё к этому…

Согласен, что как ты описал, было бы лучше.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

скопировать/вставить команду … удобней

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

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

One file. Not a tree of files

как это не tree если оно дедуплицирует директорию рекурсивно хардлинками?

$ du -hs
16K	.

$ hardlink .
Mode:           real
Files:          4
Linked:         3 files
Compared:       0 xattrs
Compared:       3 files
Saved:          6 KiB
Duration:       0.000215 seconds

$ du -hs
4,0K	.
sergej ★★★★★
()
Ответ на: комментарий от Dog

средней кнопкой мыши

нету

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

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 2)
Ответ на: комментарий от fornlr

нету

Чего так?

некоторый софт воспринимал это по своему

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

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

а не костыли с Escape-последовательностями

Подозреваю, что так и есть. В виндовой консоли они практически все работают. Начиная с раскраски и заканчивая манипуляциями с буферами консоли.

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

Скорее всего данную подсистему пора менять

Ну так читайте выше.

В виндузятном cmd.exe именно так и сделали, спроектировав толковый API для работы с сеткой знакомест. Десятилетиями это работало и использовалось крутым виндузятным TUI-софтом.

Но потом Microsoft захватили индусы, решили EEE-шнуть линуксоидов, и запилили для них линейную ANSI-дрисню из прошлого века.

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