Tôi sử dụng compctl -K _my_cpl ls
để kết nối chức năng tự động hoàn thành của mình với lệnh ls
. Hàm trả về một danh sách các tên từ một tệp chỉ mục.Làm thế nào để loại bỏ một không gian bổ sung từ chức năng tự động hoàn thành zsh?
Tuy nhiên, zsh luôn thêm khoảng trống sau mỗi lần hoàn thành. Nếu tôi muốn tự động hoàn thành nhiều thư mục cấp, tôi phải loại bỏ một không gian mỗi lần. Có cách nào để xóa không gian bổ sung giống như tùy chọn -o nospace
trong lệnh hoàn thành bash không?
Tôi đã thử nghiệm zstyle ':completion:*' add-space false
lệnh và nó không hoạt động. Cảm ơn bạn.
_my_cpl() {
local cur last opts
# current word in command line.
read -cA cur
last=$cur[-1]
# grep all directories and file names under current directory level.
opts=`egrep "${last}[^/]*[$|/]*" ~/index -o |uniq`
reply=($=opts)
}
compctl -K _my_cpl ls
zsh có mô-đun bashcompinit. Tôi có thể chuyển chức năng hoàn thành bash của tôi thành zsh như một công việc xung quanh. tự động tải bashcompinit bashcompinit – leo