Bash auto complete для переменных среды [закрыто]

В этот момент вы можете установить Gnome 3.18 на Ubuntu Gnome 15.10 Wily по PPA ppa:gnome3-team/gnome3-staging:

sudo apt-add-repository ppa:gnome3-team/gnome3-staging
23
задан 11 May 2011 в 02:39

36 ответов

Эта ошибка была введена в bash 4.2. Здесь есть длинная тема:

http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html

Короче говоря, Чет Рами, разработчик bash, не уверен, как это сделать.

12
ответ дан 10 August 2018 в 09:47

Обходной путь, предложенный в http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html :

  1. используйте & lt; Tab & gt; , чтобы автоматически заполнить переменную среды st вы в командной строке: cd $ MYVAR
  2. hit & lt; Esc & gt; + & lt; Ctrl & gt; -E , чтобы развернуть текущую командную строку, то есть замените $ MYVAR на его значение, путь
  3. добавит / , а затем насладится & lt; Tab & gt; автозаполнение как обычно

Предполагается, что вы находитесь в режиме emacs ( set -o emacs ) и bash_completion настроен разумно для cd (например, complete -o nospace -F_cd cd ).

К сожалению, это не работает в режиме vi ( set - o vi ), потому что расширение командной строки недоступно.

7
ответ дан 10 August 2018 в 09:47

После ввода переменной оболочки

  cd $ SCRIPT /  

типа Cntrl-Alt-E. Это расширяет переменную

  cd / home / user / script /  

Это работает с EDITOR = vi в Fedora 16.

1
ответ дан 13 August 2018 в 16:01

Чтобы вернуть старый образ назад, используйте команду

  shopt -s direxpand  

или включите ее в свой .bashrc

Если вы используете тот же .bashrc с различными версиями bash, используйте

 , если ((BASH_VERSINFO [0] & gt; = 4)) & amp; & amp; & amp; & amp;  ((BASH_VERSINFO [1] & gt; = 2)), затем shopt -s direxpand fi  
4
ответ дан 13 August 2018 в 16:01
  • 1
    Это испытание завершится неудачно для bash 5.0 и 5.1. – Keith Thompson 21 January 2014 в 05:31

Эта ошибка была введена в bash 4.2. Здесь есть длинная тема:

http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html

Короче говоря, Чет Рами, разработчик bash, не уверен, как это сделать.

12
ответ дан 13 August 2018 в 16:01
  • 1
    Есть ли способ вернуться к bash 4.1? – nilchat 12 May 2011 в 09:37
  • 2
    Исправлено исправление: Чет добавил "direxpand" shopt для восстановления старого поведения. Это еще не в Oneiric. – Nelson 29 January 2012 в 06:02
  • 3
    Удивительно, что так мало людей жаловались на это. Это большое изменение в том, как Баш работал в течение ряда лет. – Scott C Wilson 13 February 2012 в 00:00

Обходной путь, предложенный в http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html :

  1. используйте & lt; Tab & gt; , чтобы автоматически заполнить переменную среды st вы в командной строке: cd $ MYVAR
  2. hit & lt; Esc & gt; + & lt; Ctrl & gt; -E , чтобы развернуть текущую командную строку, то есть замените $ MYVAR на его значение, путь
  3. добавит / , а затем насладится & lt; Tab & gt; автозаполнение как обычно

Предполагается, что вы находитесь в режиме emacs ( set -o emacs ) и bash_completion настроен разумно для cd (например, complete -o nospace -F_cd cd ).

К сожалению, это не работает в режиме vi ( set - o vi ), потому что расширение командной строки недоступно.

7
ответ дан 13 August 2018 в 16:01

Другие вопросы по тегам:

Похожие вопросы: