Ön plandan arka plana başvuru göndermek hem terminalden hem de kabuktan işbirliği gerektirir. Terminal tek başına bunu yapamaz, çünkü kabuğun ön plan işlem grubunu ayarlaması gerekir. Kabuk tek başına yapamaz, çünkü terminal tuş basışını işlemelidir (kabuk ön planda değildir, bu nedenle tuş basışını alamaz).
Yakın bir yaklaşım, uygulamayı arka plana gerçekten hızlı bir şekilde göndermektir. Ne de olsa, bir uygulama CPU zamanını başkalarıyla paylaşır ve saniyenin yüzlerce saniyesinin duraklaması önemli olmamalıdır. (Gerçek zamanlı uygulamalar için geçerlidir, bu nedenle arka planda bunları başlattığınızdan emin olun.) En son ön planlanmış işi arka plana gönderen Ctrl+ için bir kabuk ciltleme kullanıyorum Z. Bu şekilde Ctrl+ Z Ctrl+ tuşlarına basmak, Zişi asgari süspansiyon süresiyle arka plana gönderir.
İşte benim zsh bağlayıcım, ayrıca komut satırı boş olmadığında yarı yazılmış bir komutu “arka plan” olarak da ekliyor .
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
İngilizce’de, izleyicideki zsh olmayan kullanıcılar için:
Komut satırının boş olup olmamasından bağımsız olarak sadece arka plan davranışını istiyorsanız:
function bg_ { builtin bg "$@"; }
zle -N bg_
bindkey '^Z' bg_
Bash de aynı şeyi yapabilir misin bilmiyorum. bind -x '"\C-z": bg'
Basty tty stop karakterini yerinde bırakması dışında, bu kadar kolay olmalı , bu yüzden asla girdi olarak Ctrl+ Zalamaz.