Чи має Bash подібні особливості, такі як автопропозиції та виділення Риби?


37

Нещодавно я помітив 2 риси в Fish і цікавився, чи хтось знає, чи вони також доступні в Bash?

Підсвічування синтаксису

ss №1

Особливості:

  • Ви швидко помітите, що рибка виконує підкреслення синтаксису під час введення. Недійсні команди за замовчуванням кольорові:
  • Команда може бути недійсною, оскільки вона не існує, або посилається на файл, який ви не можете виконати. Коли команда стає дійсною, вона відображається іншим кольором
  • Риба підкреслить дійсні шляхи до файлу під час їх введення
  • Це говорить вам про те, що існує файл, який починається з 'somefi', який є корисним відгуком під час введення тексту.

Автопропозиції

ss №2

Особливості:

  • Риба пропонує команди під час введення, а пропозицію праворуч від курсору показує сірим кольором.
  • Він знає про шляхи та варіанти
  • Щоб прийняти автоматичну пропозицію, натисніть стрілку праворуч або Control-F. Якщо автоматична пропозиція не є тим, що ви хочете, просто ігноруйте її.

4
Про найближчий аналог, bashякий є автозавершенням. На жаль, fishсценарій сценарію настільки елементарний, що він дуже поганий замінник того, що я роблю звичайно bash.
DopeGhoti

1
@DopeGhoti - отже, я запитую Q 8-)
slm

2
Спробуйте через ssh з високою затримкою, ви досить швидко ненавидите вбудовані функції.
llua

1
@slm Більшість з них є кутовими справами, деякі більш неприємні, ніж інші, але це може бути дуже погано, коли ви розміщені у багатьох середовищах. У «кілери функції» для 4.3 є cd -@, wait -n, globasciiranges, і $BASH_COMPAT, що хотів багато людей. Майже все інше - це лише пожежна допомога.
Кріс Даун

1
@strugee, є виділення синтаксису zsh - github.com/zsh-users/zsh-syntax-highlighting , я знайшов це через дуже крутий ой- мі-шш .
Блок Джо

Відповіді:


2

Я не впевнений у виділенні Bash, але функція автоматичного завершення Bash, ймовірно, автоматично налаштовує пропозицію, як ви вже згадували.

Навіть незважаючи на те, що автоматичне заповнення Bash не могло відображати пропозиції, як ви хочете, але воно фактично заповнює вміст, коли ви натискаєте [TAB]. Якщо для завершення вмісту існує багато варіантів, натисніть [TAB] двічі, і він відобразить усі параметри.

Наприклад:

$ cat /etc/pa[TAB]

=> нічого не відбувається

$ cat /etc/pa[TAB][TAB]
pam.d/       passwd       paths        paths.d/

=> показує, що всі файли / dirs починаються з "/ etc / pa"

Ви можете налаштувати автоматичне завершення будь-якої команди, параметрів, файлів / каталогів ... або грати з нею, як програмування.
Детальніше на сайті: http://www.linuxjournal.com/content/more-using-bash-complete -команда

Якщо ви хочете перейти до минулої команди, натисніть ^ R і введіть кілька символів:

(reverse-i-search)`cd': cd ..

=> перейти до останньої команди, починати з "cd"

Я знаю, що це не саме ви хочете, але це майже те саме і допоможе вам досить зручно.


8
Дякуємо, що знайшли час, щоб відповісти на це та запропонувати цю пропозицію. Я знайомий з цією функцією та використовую її щодня, я хотів, щоб вона робила це динамічно без необхідності натиснути [TAB] [TAB], щоб ініціювати її.
slm

2

На жаль, ні. Але я прогнозую, що баш буде масово сповільнюватися, якщо ви спробуєте реалізувати ці функції. Можливо, тому ніхто ще не «переніс» ці функції.

Найближчий я знайшов https://github.com/dvorka/hstr , вікно із пропозицією оболонки


убік Баш:

Я не перевіряв цього, але єдина «перенесена альтернатива», яку я знайшла, була написана для zsh: https://github.com/zsh-users/zsh-autosuggestions

Деякі qwant'ing також ведуть мене до https://websetnet.com/shell-packs-power-python-bash/ та https://github.com/xonsh/xonsh псевдонім http://xon.sh , можливо, це також підтримує це поза коробкою

... але я впевнений, що вас не цікавлять інші альтернативи баш, бо тоді ви могли просто перейти на рибу;)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.