Параметры автозаполнения для определенной команды в терминале Ubuntu

Я использую Ubuntu 18.04 и выполняю большую часть своего редактирования кода с использованием кода VisualStudio. Чтобы открыть файл из терминала, я запускаю команду

code fileName.java

После того, как я скомпилировал код Java, в каталоге также есть связанный файл .class. Это означает, что в следующий раз, когда я открою файл и попытаюсь выполнить автозаполнение команды с помощью «Tab», он автоматически завершится до

code fileName.

Не могли бы вы показать мне, как изменить параметры для [ 115], поэтому, когда я набираю

code f

и затем нажимаю клавишу Tab, он автоматически заполняется до

code fileName.java

, а не просто

code fileName.
1
задан 7 July 2018 в 07:02

2 ответа

Добавьте это в свои .bashrc:

complete -f -X '!*.java' code

и source ~/.bashrc это один раз.

  • -f будет завершено только на f илах.
  • -X pattern позволяет определить пользовательский шаблон
  • Это пользовательское автозаполнение будет происходить только для вашей команды code и любое завершение не соответствует шаблон удаляется из списка завершения.
3
ответ дан 7 July 2018 в 07:02

Лучший способ решить эту проблему - создать скрипт завершения bash.

Создайте новый скрипт завершения bash с именем java, используя ваш любимый текстовый редактор, например, нано-редактор:

user@pc:~$ sudo nano /etc/bash_completion.d/java

Вставьте код в скрипт: [ 1110]

_code()
{
  local cur=${COMP_WORDS[COMP_CWORD]}

  local IFS= 

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

Наконец, перезагрузите правила завершения bash - обратите внимание на «точку» и следующий пробел перед первой косой чертой:

user@pc:~$ . /etc/bash_completion

Это решение имеет 2 преимущества:

  1. Система работы скрипта широкий.
  2. Поддерживает пробелы в именах файлов.
\n' COMPREPLY=( $( compgen -f -X '!*.java' -- $cur ) ) } complete -o filenames -F _code code

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

Наконец, перезагрузите правила завершения bash - обратите внимание на «точку» и следующий пробел перед первой косой чертой:

user@pc:~$ . /etc/bash_completion

Это решение имеет 2 преимущества:

  1. Система работы скрипта широкий.
  2. Поддерживает пробелы в именах файлов.
2
ответ дан 7 July 2018 в 07:02

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

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