Есть ли способ получить такое же поведение в bash?
Есть что-то подобное, но для zsh, а не для bash. Возможно ли, что это может быть перенесено на bash?
Чтобы уточнить для тех, кто не понимает скриншот, объяснение или предоставленную ссылку: Я хочу выделить фактический текст, который вводится в терминале. Команды, скобки, кавычки и т. Д.
Не думайте, что bash принимает плагины, как zsh, поэтому может потребоваться специальная сборка оболочки / двоичного файла bash. Есть ли причина не использовать рыбу? Кроме того, спасибо, что указал мне на другую оболочку, чтобы поиграть с ней и посмотреть, смогу ли я изучить некоторые дополнительные возможности хаха.
Matrix Mole 12 лет назад
0
@Matrix: я не могу использовать рыбу, потому что у меня очень сложная конфигурация bash, от которой я не мог отказаться.
Wuffers 12 лет назад
1
К сожалению, я не думаю, что в настоящее время это возможно в bash. Я уверен, что проведенное вами исследование также указывает на это. Если вы абсолютно не можете переключиться на zsh, то это понятно, но в противном случае вы можете посмотреть на [fizsh] (http://sourceforge.net/projects/fizsh/), который включает в себя некоторые похожие на рыбу функции в zsh, хотя это не обновляется с февраля, поэтому, возможно, предоставленная вами ссылка на подсветку синтаксиса zsh будет более надежной.
voithos 12 лет назад
0
Это было бы чрезвычайно полезно для изучения bash, так как оно позволяет играть совершенно по-другому. Простое обнаружение того, что вы забыли убежать от специального персонажа, будет ценно.
Sirap 6 лет назад
0
2 ответа на вопрос
7
razzintown
Bash использует readlineдля интерактивного ввода, поэтому в этой программе должна быть реализована подсветка синтаксиса. Я нашел обсуждение групп Google о том, как закодировать такую функцию.
Оболочка fish использует собственный редактор строк, специфичный для этой программы, и его нельзя перенести напрямую.
Вы можете обнаружить, что zshэто очень похоже на bash, и его редактор строк является расширяемым . Я нашел zsh-syntax-подсветку, чтобы включить эту функцию в zsh.
0
Purefan
Я не думаю, что подсветка синтаксиса должна происходить на уровне оболочки, но на уровне интерфейса (только мое мнение - и чье-то другое кажется), поэтому я бы посмотрел на «плагины» для терминала или вашей любимой консоли, например, этот плагин для Кейт может помочь, или этот другой, который предлагает подсветку синтаксиса в нано
Вот еще больше разговоров о том, как подсвечивать синтаксис в терминале:
Похоже, вы отвечаете, как настроить подсветку синтаксиса в редакторах, а не в оболочке. Ls-colorization - это даже не подсветка синтаксиса.
Kyle Strand 10 лет назад
9
Я думаю, что вы сосредотачиваетесь на семантике больше, чем на решении, с помощью кода из ссылок и предлагаемого решения я получаю цвета в bash, что, как я полагаю, это то, что ОП хотел знать
Purefan 10 лет назад
0
Оригинальный вопрос на самом деле довольно ясно о фактической подсветке синтаксиса. Это показано как на скриншоте оболочки рыбы, так и в последнем предложении: «Я хочу выделить фактический текст, который вводится в терминале. Команды, скобки, кавычки и т. Д.»
Kyle Strand 10 лет назад
8
Не могли бы вы объяснить, почему ни одна из двух последних ссылок, которые я предоставил, не поможет в этом случае?
Purefan 10 лет назад
0
Как я уже сказал, это не подсветка синтаксиса. Они подсвечивают вывод команды `ls` в зависимости от типа файла, который не имеет ничего общего с синтаксисом оболочки.
Kyle Strand 10 лет назад
7
На уровне интерфейса, кажется, трудно реализовать и поддерживать согласованность. Как бы вы проанализировали множество линий PS1? В любом случае, есть ли решение для Putty? Или сам по себе?
Avindra Goolcharan 9 лет назад
0
Zsh (https://github.com/zsh-users/zsh-syntax-highlighting) и Fish (https://fishshell.com/docs/current/tutorial.html) оба имеют подсветку синтаксиса, этот вопрос, очевидно, задает вопрос о похожая особенность для bash. Это полностью допустимый запрос, чтобы запросить функцию, которую «трудно реализовать и поддерживать согласованной», особенно если она уже существует в других оболочках.
Brandon 6 лет назад
1