Jak uruchomić make w Vimie i otworzyć wyniki w podzielonym oknie?

Używam Vima do kodowania. Kiedy muszę skompilować bieżący plik, obecnie używam :!g++ % && ./a.out LUB :make. Wyświetlone błędy / wyjście znikają po naciśnięciu enter i wrócić do pliku. Szkoda, że błędy i wyjście są wyświetlane w pionowym podziale na bok. Byłoby miło, gdyby strumienie wyjścia i błędów były w oddzielnych buforach. Jak można to zrobić? Błędy i bufory wyjściowe powinny być aktualizowane podczas kompilacji ponownie i nie powinny tworzyć nowych buforów. Jak to zrobić? some vim pluggin / function? albo jeden: P?

 31
Author: balki, 2011-07-01

2 answers

 42
Author: David Winslow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-01 15:13:32

If you want compile and run if compile successful. (i. E !g++ % && ./a.out)

Utwórz skrypt powłoki z następującym wierszem,

g++ $1 -o /tmp/a.out && /tmp/a.out

Teraz ustaw makeprg w ten sposób. set makeprg=compileNrun.sh\ %

Nie można ustawić całego polecenia bezpośrednio jako makeprg z powodu &&. Jeśli zostanie ustawione bezpośrednio w makeprg, powyższe polecenie zostanie rozszerzone do,

!g++ file.C -o /tmp/a.out && /tmp/a.out 2>&1 | tee /tmp/errorFile

Stąd błędy kompilacji nie będą przekierowywane do pliku błędu, jeśli kompilacja się nie powiodła; P ponieważ && ma pierwszeństwo przed |

 -1
Author: balki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-27 18:55:52