LINUX.ORG.RU

Вышла новая версия командной оболочки Fish 2.1.0

 ,


0

1

Основные изменения:

  • Улучшена работа автодополнения с частично заданными шаблонами имени файла.

    Сперва будет происходить сравнение с префиксом (foo сравнивается с foobar), затем сравнение с подстрокой (ooba сравнивается с foobar), в завершение происходит сравнение с возможными последовательностями внутри имени (fbr сравнивается с foobar). К примеру, если директория содержит файлы foo1.txt, foo2.txt, foo3.txt, достаточно ввести числовую часть, и автодополнение произведет сравнение и выполнит подстановку.

    На данный момент, возможность подобного автодополнения реализована лишь для имен файлов и не распространяется на имена опций (--foobar) и путей (из /u/l/b в /usr/local/bin).

  • Улучшена совместная работа пайпов и перенаправлений. В частности, вывод и перенаправление sterr и stdout можно выполнить как с помощью cmd ^&1 | tee log.txt, так и более привычным способом cmd 2>&1 | tee log.txt
  • Одиночный символ % теперь ссылается на последнюю задачу, отправленную в фон, если задач нет - просто ничего не будет происходить.

    В предыдущих версиях символ % указывал либо на все фоновые задачи, либо на задачи определенного пользователя. Сейчас, к примеру, можно выполнить команду fg %, и последняя задача, отправленная на выполнение в фон, вновь активизируется.

Кроме основных изменений исправлено некоторое количество багов.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: Wizard_ (всего исправлений: 4)

К примеру, если директория содержит файлы foo1.txt, foo2.txt, foo3.txt, достаточно ввести числовую часть и автодополнение произведет сравнение и выполнит подстановку.

So slow.

Gotf ★★★
()

Смотри-ка, шевелится!

anonymous
()

Хороший шелл, но так и не смог на него переползти. Уж слишком большие различия в fish и bash. Лень все под fish.

iron ★★★★★
()

На этой неделе соскочил с этой поделки. Штука менее функциональная чем zsh, но более удобная чем bash. Всяких сахарных печенек в ней предостаточно. За 6 месяцев использования дико устал от проблем с запуском bash скриптов.

bastardfromhell
()

Попробовал. Неплохая штука, но уж очень все необычно после баша. Промт пока не смог свой перенести, не могу разобраться как у них внутри эхо вывод команды вставить. Башевый $(command) не работает.

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

Попробовал. Неплохая штука, но уж очень все необычно после баша. Промт пока не смог свой перенести, не могу разобраться как у них внутри эхо вывод команды вставить. Башевый $(command) не работает.

Да там почти все не работает что годами уже на уровне рефлекса юзается в баше. ИМХО, разработчикам нужно было сделать хоть какой-то мостик между старым и новым вместо того, чтоб все рубить на корню. Судя по всему, к fish привыкнут только те, кто не пользовался сладкими пряниками bash/zsh.

iron ★★★★★
()

Долго его использовал на нескольких машинах, с полгода-год.

Но не выдержал и ушел.

Слишком они перемудрили с некоторыми простыми вещами (сабшеллы, к примеру, там просто хрен пойми как работают, и при этом я так нигде толковой информации по этому вопросу так и не нашел).

В итоге заметил, что если не просто вызываю что-то примитивное||гуляю по директориям, а делаю что-то более-менее (как для шелла) сложное, пробую, натыкаюсь на очередной их бок (кстати да, таки бокопорят ребята не кисло (была версяи, где пайпы в определённом наборе условий не работали, но сразу понять что не так - очень не просто)), автоматом пишу bash, и с спокойной душой делаю всё что нужно. Ну и ясен день, что если большинство работы всё равно делаю в баше, накой было продолжать сидеть в фише.

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

Новичку в консоли нужно bash-совместимое, потому что разбираться с неработающими примерами с форумов он не осилит.

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

это то да
но как просто шел фиш крут
баш - для сложных скриптов
а фиш хватит многим)

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

Ну что-нибудь вроде «tar тут_мы_создаем_бэкап > file$(date).tar.bz2» вполне может быть. А этот $(date) не заработает.

vurdalak ★★★★★
()

Очередной «долгожданный» софт, дублирующий уже имеющиеся многочисленные аналоги. Вендекапец неизбежен.

Oleaster ★★★
()

Приблуда для школьников.

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

Скажем проще: новичку в консоли нужен bash. Старичку в консоли тоже нужен bash, ибо привычка. А странное поделие не нужно никому, кроме евонных разрабов.

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

новичку в консоли нужен bash

Не обязательно. zsh вроде с ним совместим, а как выглядит автодополнение и все такое новичку пофигу.

vurdalak ★★★★★
()

А это не тот FISH, который порой использует MC, когда по SSH залезает на хост, в котором нет SFTP?

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

Ну хотя бы. А тут ещё очередной велосипед. Бесконечная разработка уже разработанного и починка неполоманного.

Oleaster ★★★
()

выполнить команду fg %, и последняя задача, отправленная на выполнение в фон, вновь активизируется

Зачем лишних 2 символа? Чем это лучше, чем просто fg?

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

по нормальному через обратные апострофы

По-нормальному — это как раз «$(list)».

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

Внутри кавычек они экранируются, в отличие от.

Апострофы? В двойных кавычках в bash?

Они не экранируются в двойных кавычках: проверьте «bash -c 'echo «`echo abc`»'»: выведет «abc», а не «`echo abc`». И апострофы, и «$()» экранируются в одинарных.

Другой вопрос, что их надо экранировать для обеспечения вложенности: «bash -c 'echo `echo \`echo abc\``'» тоже выведет «abc». Но при чём тут кавычки?

ZyX
()

вывод и перенаправление sterr и stdout можно выполнить как с помощью cmd ^&1 | tee log.txt, так и более привычным способом cmd 2>&1 | tee log.txt

Ну почему нельзя сделать

cmd >[2=1] | tee log.txt
как в нормальном шелле?

quantum-troll ★★★★★
()

Вышла новая версия командной оболочки Fish 2.1.0

Отличный повод перейти на oh-my-zsh!

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

Не в баш, а в фиш. Я утром проверял, не экранировались. Может это я что-то накосячил?

У меня в fish всё экранируется в двойных кавычках: что `, что () (просто скобки заменяют в fish $()).

Но есть одно большое отличие ` от (): без кавычек ` означает само себя в fish, тогда как () заменяется на stdout команды внутри. Так что я не мог отнести ваш комментарий к fish. Если вы посмотрите документацию, то убедитесь, что на всей странице обратный апостроф употребляется ровно 0 раз, включая соотвествующую секцию, ссылку на которую я и дал.

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

Это набор дополнений к zsh. Фраза может считаться призывом только для пользователей zsh: oh-my-zsh не включает в себя zsh (равно как и какой‐либо другой оболочки), но предназначен для неё.

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

Ну так я и сказал, что экранируется. Но echo `hostname` выводит `hostname`, тогда как echo (hostname) выводит zyx-desktop.

ZyX
()
Ответ на: комментарий от Obey-Kun

Что у тебя за дефис такой странный-странный? У меня вместо него квадратик.

У меня обычный юникодный дефис (тот, который U+2010 HYPHEN). А вы здесь написали в слове «странный-странный» не дефис, а дефисоминус: U+002D так и называется «HYPHEN-MINUS».

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

Хм, не знал. Хотя про всякие m-dash, n-dash и минус в курсе.

Obey-Kun ★★★★★
()
Ответ на: комментарий от kas501

Чем оно лучше bash?

Напишите мне в bash

echo "#define DEFAULT_VAR ${(qqq)VAR}" >> defaults.h
tar cJf ../load.tar.xz ./(#i)load*
cmd $ARRAY
typeset -A FOOS ; grep foo -r . | while read line ; do FOOS[${line/:*}]+=";${line#*:}" ; done ; echo ${(kv)FOOS}

Это всё можно сделать, но потратите вы гораздо больше времени. Проще писать такие конструкции на Python, чем на bash (впрочем, если это не однострочник на один раз, то лучше так и делать).

Далее, добавьте в bash подсветку синтаксиса, правую часть приглашения ко вводу, перерисовку приглашения ко вводу при изменении режима (normal/insert) в vi режиме (чтобы приглашение ко вводу могло показать, в каком режиме вы находитесь) и прочие вкусности.

Ещё в zsh есть дополнение для fish‐подобных autosuggestions в α стадии разработки. В bash организация подобного остановится даже не на вопросе «а как сделать подсветку», а на вопросе «а как реагировать на пользовательский ввод».

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