Tôi muốn có thể sử dụng tính năng tự động hoàn thành tab với trình soạn thảo trong bash shell của tôi, giống như cách tôi có thể ví dụ: tên tệp tự động hoàn thành hoặc lệnh git.Làm cách nào để cho phép nhà soạn nhạc có đối số dòng lệnh tự động hoàn thành?
5
A
Trả lời
8
Để bật tự động hoàn tất composer
trong bash, bạn cần phải viết hàm trả về một mảng giá trị có thể cho tham số đã nhập cuối cùng (_composer()
trong trường hợp này) và đăng ký sử dụng complete -F function command
.
Là một hoàn chỉnh, ví dụ làm việc thêm dòng sau vào bạn .bashrc
(hoặc bất kỳ cấu hình kịch bản khác mà bạn có thể sử dụng)
_composer()
{
local cur=${COMP_WORDS[COMP_CWORD]}
local cmd=${COMP_WORDS[0]}
if ($cmd > /dev/null 2>&1)
then
COMPREPLY=($(compgen -W "$($cmd list --raw | cut -f 1 -d " " | tr "\n" " ")" -- $cur))
fi
}
complete -F _composer composer
complete -F _composer composer.phar
này đã không làm việc như tôi đã mong đợi, tôi đã mong đợi để có thể cập nhật trình soạn nhạc kiểu w và xem tất cả các gói được cài đặt bắt đầu bằng w. Thay vào đó tôi chỉ nhận được một danh sách các tập tin/thư mục trong thư mục terminal hiện tại của tôi? –
Yup, điều này chỉ tự động hoàn thành các lệnh, chứ không phải các tham số. –