Ich benutze Oh-My-ZSH jetzt seit ein paar Wochen und es war eine großartige Erfahrung. Aber erst heute fing das Terminal an, sich seltsam zu verhalten. vim
Wenn ich versuche, einen interaktiven Terminal-Editor wie , vi
, emacs
oder auszuführen nano
, wird der Prozess angehalten:
$ vim
[1] + 3515 suspended (tty output) vim
Natürlich kann ich es mit wieder öffnen fg
, aber das ist unglaublich nervig.
Gestern hatte ich dieses Problem nicht. Seitdem habe ich weder meinen Computer noch iTerm neu gestartet oder Terminal-Tabs geschlossen (von denen ich gestern vim erfolgreich ausgeführt habe, ohne dass es angehalten wurde).
Außerdem habe ich meine Shell vorübergehend wieder auf Bash zurückgesetzt. Es zeigt jetzt das gleiche Suspendierungsverhalten wie ZSH. Dieses Problem tritt sowohl in iTerm2 als auch in der nativen osx Terminal.app für bash und zsh auf, also ist dies vermutlich kein Problem mit meiner Shell.
Ich habe jede Lösung auf den ersten 10 Seiten von Google für dieses Problem durchgesehen, aber keine gefunden, die es behebt. Ich nähere mich dem Punkt, an dem ich nicht mehr verstehe, warum dies geschieht, und es daher nicht debuggen kann.
Gibt es eine Möglichkeit, interaktive Prozesse dazu zu bringen, vim
sich nicht mehr selbst anzuhalten, wenn ich versuche, sie vom Terminal aus auszuführen?
Bearbeiten: Seit diesem Beitrag habe ich neue Registerkarten für iTerm & Terminal ausprobiert, iTerm & Terminal neu gestartet und meinen Computer neu gestartet. All dies konnte dieses Problem nicht lösen.
Das Terminal hält den Editor an, weil ein anderer Prozess in das Terminal schreibt.
Laufen sollte es beheben.stty -tostop
Wenn das Problem dadurch nicht behoben wird, sehen Sie sich dieses GitHub-Problem aus dem oh-my-zsh
Repository an.
Andere Benutzer sind offensichtlich auf dieses Problem gestoßen. Dies scheint die richtige Lösung zu sein.
Es stellt sich heraus, dass ich das erste Ergebnis bei Google falsch gelesen habe . Ich habe fälschlicherweise angenommen, dass sie sich auf die Terminal-Shell bezogen (und als sie shell
später sagten, nahm ich an, dass sie meinten , obwohl ich durch die Tatsache, dass es nicht groß geschrieben wurde, $SHELL
hätte einen Hinweis bekommen sollen ). shell
Stattdessen verwiesen sie auf die vim-Shell-Einstellung, die fälschlicherweise das -i
Flag anstelle des -l
Flags hatte.
Falls also jemand anderes dieses Problem hat, gehen Sie zu Ihrem .vimrc
und ändern Sie, ob die Zeile, die Ihr festlegt, shell
so aussieht:
set shell=/bin/zsh\ -l
( Natürlich /bin/zsh
durch den Wert von ersetzen, wenn es an einem nicht standardmäßigen Ort installiert ist).which zsh
Referenzcommit: https://github.com/devx/vimified/commit/772e130c9c359ac87927a963e00a9cc6597cd170
Bailey Parker
stty -tostop
, aber nachfolgende Versuche, vim (oder nano, vi, emacs usw.) auszuführen, werden immer noch ausgesetzt.ps a
zeigt, dass die einzigen Dinge, die ausgeführt werden,login -fp
und sind-zsh
(und wie ich es verstehe,login
startet es-zsh
). Ist es möglich, dass etwas anderes läuft, das ich nicht sehen kann und das auf das Terminal schreibt?Zach Gates
Bailey Parker
vim
zuletzt funktionierte, bis heute, als es anfing, anzuhalten, hatte ich meinen Computer/iTerm nicht neu gestartet oder Terminal-Tabs geschlossen. Ich habe jetzt alle 3 gemacht und trotzdem bleibt vim weiterhin ausgesetzt. Sorry für die Verwirrung, ich formuliere die Frage um.Zach Gates