Описание тега cellular-data
У меня есть функции для выполнения одной команды в другую категорию. компакт-диск 1 SOMEDIR MYCOMMAND АРГ...
эквивалентно (на CD SOMEDIR && MYCOMMAND АРГ...)
, с двумя плюсами. Это немного легче типа (а когда вы в командной строке наркоман, каждое нажатие вопросы), и (в основном), это позволяет мне сделать завершение относительно SOMEDIR
.
То есть, это позволяет мне определить завершение функции для СД1
. Как мне устроить, чтобы завершить отношению к SOMEDIR
?
Следующие методы не работают без изменений:
- Делать специальные вызовы
_FILES больше
с измененным аргументом для аргументов команды ничего хорошего здесь (в отличие от там), потому что я хочу все обычные контекстной завершения применять. (кд слов[2] && шифт 2 слова && ((ток=2)) && _normal)
поступит правильно, если окончания работал в подоболочку, но это не так.компакт слов[2] && шифт 2 слова && ((ток=2)) && _normal; диски CD $OLDPWD
работает в номинальном случаях, но ломает и оставляет меня вSOMEDIR
в некоторых случаях, например, если я нажму сочетание клавиш Ctrl+С , чтобы отменить завершение, что занимает слишком много времени.
Вот определение СД1
. Он поддерживает псевдонимы и расширяет подстановочные знаки относительно целевого каталога (с другой стороны, команду заменами и будет по-прежнему работать в исходный каталог).
cd1_glob () {
если (($# <= 1)); тогда
диск - "$1"
Элиф (($+псевдонимы[$2])); тогда
( компакт-диск -- $1 && ивал $2 '$~@[3,$#]' )
еще
( компакт-диск -- $1 && $~@[2,$#] )
интернет
}
псевдоним СД1='cd1_glob noglob'
(Я не называю эту функцию компакт-диска
. Если вы измените вызовы компакт-диска
внутри функции встроенной диска
.)