Bash предоставляет вам способ указания ваших ключевых слов и их использования для автоматического заполнения аргументов командной строки для вашего приложения.Я использую vim в качестве вики, менеджера задач и контактов.Система справки vim позволяет мне индексировать контент, а не искать его, и скорость показывает это.Одна функция, которую я хотел добавить к этому, состояла в том, чтобы получить доступ к этим тегам извне vim.
Это можно сделать прямым способом:
$ vim -t tagname
Это приведет меня непосредственно к определенному контенту, отмеченномуиспользуя этот тег.Однако это будет более продуктивно, если я смогу обеспечить автозаполнение тегов.
Сначала я определил функцию Bash для командной строки vim.Я добавил следующий код в мой файл .bashrc:
function get {
vim -t $1
} Now I can use get tagname command to get to the content.
Программируемое завершение в Bash выполняется с помощью сценария / etc / bash-creation.Этот скрипт позволяет нам добавить наш каталог скрипта автозаполнения /etc/bash-completion.d/ и выполняет его всякий раз, когда он вызывается.Поэтому в этот каталог я добавил файл сценария get со следующим кодом:
_get()
{
local cur
COMPREPLY=()
#Variable to hold the current word
cur="${COMP_WORDS[COMP_CWORD]}"
#Build a list of our keywords for auto-completion using
#the tags file
local tags=$(for t in `cat /home/anadgouda/wiki/tags | \
awk '{print $1}'`; do echo ${t}; done)
#Generate possible matches and store them in the
#array variable COMPREPLY
COMPREPLY=($(compgen -W "${tags}" $cur))
}
#Assign the auto-completion function _get for our command get.
complete -F _get get Once the /etc/bash-completion is sourced, you will get auto-completion for the tags when you use the get command.
Наряду с вики я использую его для всей документации, а иногда и для кода.Я также использую файл тегов, созданный из моего кода.Система индексирования позволяет мне запоминать контекст вместо имен файлов и каталогов.
Вы можете настроить эту систему для любых инструментов, которые вы используете.Все, что вам нужно сделать, это получить список ключевых слов для вашей команды и передать его в систему программируемого завершения Bash.