Рейтинг:0

Как исправить синтаксическую ошибку bash при настройке тем Solarized для WSLtty?

флаг br

Я пытаюсь настроить темы Solarized для терминала WSLtty, поэтому я следовал это двухэтапное руководство.

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

Но когда я побежал:

eval (dircolors -c ~/.dir_colors | sed 's/>&\/dev\/null$//')

это дает мне эту ошибку:

-bash: синтаксическая ошибка рядом с неожиданным токеном `dircolors'
флаг hr
Ваша ссылка не работает для меня, однако синтаксис для *замены команды* в bash - это `$(команда)`, а не `(команда)` в оболочке рыбы - см., например, [рыбный эквивалент нотации $(команда) в bash ] (https://stackoverflow.com/a/20918951/4440445)
Godspeed avatar
флаг br
Я изменил ссылку сейчас. Я выполнил ту же команду, что и эта eval $(dircolors -c ~/.dir_colors | sed 's/>&\/dev\/null$//'), и теперь она дает мне эту ошибку setenv: команда не найдена
muru avatar
флаг us
Похоже, это должно запускаться в «рыбе»? В статье он находится в `~/.config/fish/conf.d/omf.fish`. Что вы хотите сделать с этой командой?
Godspeed avatar
флаг br
Я хочу настроить солнечную тему для своего терминала wsltty. Команда будет использоваться для установки базовых цветов.
pLumo avatar
флаг in
Это руководство явно предназначено для `fish`, поэтому не работает в `bash`. Вы не будете запускать код `python` с `php`.
Artur Meinild avatar
флаг vn
Я не верю, что вообще есть смысл запускать эту команду.
Рейтинг:0
флаг vn

Я бы предложил вам:

  • Следуя руководству, которому почти 4 года, по настройке WSL. WSL всего около 6 лет, и за последние несколько лет многое изменилось. Даже рыбий панцирь сильно изменился за это время (хотя изменения рыбы не являются частью вашей проблемы).

  • Попытка «пропустить некоторые шаги», например использование рыбьей скорлупы. Это конкретное руководство было явно написано с учетом рыбы, и, как указано в комментариях, по крайней мере, эта команда написана с синтаксисом рыбы, а не Bash/POSIX.

  • Вопрос о WSLtty, программе для Windows, на AskUbuntu.com. Мы считаем, что вопросы WSL здесь актуальны, если они связаны с Ubuntu, но здесь вы найдете гораздо больше знаний об Ubuntu, чем о WSL, и еще меньше о WSLtty.

    Тем не менее, опыт работы с WSLtty, вероятно, в настоящее время в дефиците почти везде. Это еще один побочный эффект того факта, что 4 года назад все было совсем иначе. Тогда я использовал WSLtty, считал его лучшим вариантом терминала для WSL и мог бы предложить помощь по нему.


Итак, позвольте мне предложить некоторые альтернативы, поскольку я не могу вам помочь (и, скорее всего, никто здесь, в Ask Ubuntu, не может) на WSLtty:

Во-первых, хотя WSLtty был хорош для своего времени, большая часть мира WSL сдвинулась с мертвой точки. Терминал Windows существует уже несколько лет. Терминал Windows это:

  • От Майкрософт
  • Открытый источник (Репозиторий Github)
  • Возможность автоматического обнаружения и настройки профилей для WSL (а также PowerShell, CMD, Git Bash и т. д.) при запуске.
  • Активно развивается
  • Разработан для замены устаревшего хоста консоли Windows (терминал, который запускается, когда вы просто запускаете «Ubuntu» в WSL из меню «Пуск» по умолчанию в Windows 10).
  • Настраивается как терминал по умолчанию в Windows 11.
  • Многофункциональный: вкладки, настраиваемые сочетания клавиш, встроенный цветовые схемы (включая соляризованный свет и темноту) и т. д.

Поймай последнюю часть? Темы Solarized по умолчанию включены в Windows Terminal. Вы можете легко переключиться одним из следующих способов:

  • Изменение значения по умолчанию Появление настройки для всех профилей терминала
  • Изменение Появление настройки конкретного профиля
  • Начиная с командной строки с определенной цветовой схемой
  • Ctrl+Сдвиг+п чтобы вызвать палитру команд, выполнить поиск «Цветовая схема» и выбрать ее через графический интерфейс.
  • Создание привязки клавиш напрямую для переключения цветовой схемы на ту, которую вы предпочитаете

Единственное, чего не хватает, так это встроенного способа сделать это из командной строки. Можно, конечно, создав утилиту для модификации настройки.json напрямую, поскольку Windows Terminal автоматически обнаруживает изменения. Он просто не встроен.


Вам может понадобиться или не понадобиться дирколоры схема. Сначала попробуйте только темы Solarized верхнего уровня. Если вы обнаружите, что хотите использовать дирколоры цветовой гамме, вы найдете общие (не относящиеся к рыбе) инструкции на странице этого проекта. Гитхаб Ридми. Вроде бы просто:

eval `dircolors /path/to/dircolorsdb`

Обратите внимание, что использование обратных кавычек для подстановки команд обескуражен (учтивость этот ответ), поэтому я бы вместо этого рекомендовал:

eval $(dircolors /path/to/dircolorsdb)

С поправкой, разумеется, на название темы, на которую вы переходите.


Примечание: мне самому нравится оболочка fish, но я рекомендую новичкам сначала изучить оболочку, более совместимую с POSIX. Синтаксис оболочки рыбы нет POSIX-совместимый; другими словами, он не будет работать в других оболочках, а стандартный синтаксис других оболочек (часто) потребует настройки для работы в fish.

Тем не менее, есть веская причина для этой несовместимости. Субъективно, синтаксис fish shell лучше чем (или, по крайней мере, так же хорошо, как) POSIX в 95%+ случаев -- Иногда много лучше чем. Тем не менее, иногда отсутствующая особенность рыбы делает вещи труднее.

Самое замечательное в (в конечном счете) изучении и знании того и другого заключается в том, что вы всегда можете бежать. бить скрипты внутри fish, когда вам нужно вернуться к «стандартному» синтаксису.

Другими словами, вы, вероятно, поступаете правильно, «пропуская» рыбу на данный момент, но вернитесь и проверьте ее, когда почувствуете себя более комфортно в Linux.


Дополнительное примечание/рекомендация № 2: проверить экса, современная замена лс. По умолчанию он гораздо более «раскрашен».

Ответить или комментировать

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