Tôi gõ Ctrl+ Zvào và tạm dừng lệnh Lệnh tôi đang gõ và gõ một lệnh khác. Sau khi tôi chạy lệnh đó (hoặc hủy bỏ nó bằng Ctrl+ C), lệnh bị treo sẽ quay lại phiên bản (thậm chí ghi nhớ vị trí con trỏ). Để thuận tiện hơn, nếu dòng lệnh trống khi tôi gõ Ctrl+ Z, khóa sẽ gọi hàm tích bg
hợp thay thế (vì vậy, double Ctrl+ Zsẽ gửi lệnh chạy trực tiếp đến nền).
fancy-ctrl-z () {
emulate -LR zsh
if [[ $#BUFFER -eq 0 ]]; then
bg
zle redisplay
else
zle push-input
fi
}
zle -N fancy-ctrl-z
bindkey '^Z' fancy-ctrl-z
(Trước đó niêm yết tại Ghi một lệnh nửa gõ trong khi tôi kiểm tra một cái gì đó mà chủ yếu có các giải pháp cho bash, nơi bạn không thể làm bất cứ điều gì rất thuận tiện. Đây là một phiên bản hơi fancier của built-in ràng buộc của M-q
đểpush-line
.)
Điều này không chạy một subshell: lệnh mà bạn gõ sau khi đình chỉ một lần nữa, lệnh trước đó chạy trong cùng một shell. Điều này cho phép bạn làm những việc như thay đổi thư mục hiện tại nếu bạn nhận ra sau khi gõ một lệnh mà bạn muốn chạy nó trong một thư mục khác. Nếu bạn muốn chạy một phiên bản shell mới, bạn có thể chạy zsh
từ một ràng buộc chính, nhưng tôi không nghĩ điều đó đặc biệt hữu ích.