Plakat po raz pierwszy, czyhający od dawna, przeszukany, nie mógł znaleźć itp. Itp.
Korzystam z vima w tmuxie, w iTerm2. Używam serwera z Grunt.js, który działam w tle, na mojej drodze. Zaczynam mój serwer gruntu w tle w następujący sposób:
grunt server &
Grunt obserwuje również kilka plików i uruchamia niektóre zadania po zapisaniu dowolnego z oglądanych plików. Problem polega na tym, że kiedy jestem w vimie i piszę plik, dane wyjściowe z gruntu zaczynają się renderować w vimie! Oto kilka zrzutów ekranu ilustrujących problem:
Przed zapisaniem pliku:
A po zapisaniu pliku:
Co próbowałem?
Próbowałem uruchomić vim „stockowy”, zaczynając od tego:
vim -u NONE
… Ale problem pozostaje. To sugeruje mi, że problem nie dotyczy mojego .vimrc
. Być może to problem z iTerm2, nie wiem. Wsparcie.
lazyredraw
i przesunięciu kursora nad artefaktami.Odpowiedzi:
Rozpoczęcie procesu jako tła nie powoduje automatycznego przekierowania wyniku. Więc to, co proces w tle wysyła
stdout
lubstderr
pojawia się w terminalu, w którym rozpocząłeś proces.Rozwiązania
grunt server >grunt-server.log 2>&1 &
tmux
sesji.nohup
automatycznie przekierowuje dane wyjściowe donohup.out
:nohup grunt server &
grunt server >/dev/null 2>&1 &
źródło
Nie można rozwiązać tego problemu od samego Vima:
grunt
po prostu pluje coś przezstdout
wyjście, które przecieka we wszystkim, co robisz w tej powłoce, w tym Vim. Zwykle prosty<C-l>
powinien oczyścić ekran.Albo znajdziesz sposób na
grunt
całkowite wyciszenie, albo uruchomisz go w innym panelu / karcie / oknie iTerm.źródło