Running: make Z gVim w tle
Używam gVim w windows do edycji kodu (głównie C++). Używam :make w gVim do kompilacji projektu, ale jest to operacja blokująca, która uniemożliwia mi Korzystanie z gVim aż do zakończenia kompilacji. Jak mogę to zrobić: zrobić asynchronicznie i nadal uzyskać korzyści z odczytu błędów z powrotem do Vima i przejść do błędów w kodzie źródłowym? Punkty bonusowe, jeśli Mogę zobaczyć proces tworzenia w czasie rzeczywistym. W tej chwili: make przekierowuje wyjście do pliku, stąd nie widzę postępu make.
7 answers
What I do is
:!gvim -c 'MyMake'
( Gdzie MyMake jest niestandardowym poleceniem, które może przełączyć się na odpowiedni katalog dir, make i copen 20. )
A ja wykonuję swoją pracę, podczas gdy build wchodzi do drugiego okna.Inne opcje:
Możesz przekierować postęp do jakiegoś pliku z powłoki lub w vim (:!make&). A następnie za pomocą
:cfile make_result_file
:cw
or
:copen 20
Osiągnij ten sam wynik, jaki byś użył: make
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
2009-03-20 15:00:38
Zajrzyj do dyspozytorni @tpope.vim
Https://github.com/tpope/vim-dispatch#readme
Zwiastun filmu: http://vimeo.com/63116209
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
2013-04-02 14:55:45
Spójrz na mój asynccommand plugin. To tylko zawija składnię Vima wymaganą do wykonania czegoś i ładuje ją za pomocą --remote. Wgrałem AsyncCommand 2.0, który zawiera polecenie AsyncMake
.
Dodaj skrypt do swojego .vim/plugin
i możesz budować za pomocą :AsyncMake
lub :AsyncMake target
. Błędy zostaną otwarte w quickfix po zakończeniu make.
Odpowiadając na komentarz w celu uzyskania bardziej czytelnego kodu:
Aby zobaczyć wyniki kompilacji w systemie Windows, jeśli masz cygwin/unxutils / coś z ogonem na twojej ścieżce, a następnie w asynchronicznym poleceniu.vim, change
call <SID>Async_Impl(tool_cmd, vim_cmd)
Do
call <SID>Async_Impl(tool_cmd, vim_cmd)
call <SID>Async_Impl("tail -f ". temp_file, "")
To powinno zmienić wszystkie polecenia asynchroniczne, aby otworzyć drugie okno poleceń z wyjściem.
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-02-24 22:30:05
Spróbuj użyć
:!start make
(więcej informacji na temat ":pomocy !start") - w ten sposób vim nie musi czekać na zakończenie procesu-możesz po prostu kontynuować edycję).
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
2009-03-20 15:14:05
Użyłbym wbudowanych metod systemu operacyjnego do uruchamiania zadań w tle.
W systemie windows spróbuj wpisać
:!start make
Na Linuksie / mac os X spróbuj
:!make > /dev/null 2>&1 &
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
2009-03-20 15:11:26
Nie będziesz mógł zobaczyć postępu tworzenia (w Vimie), chyba że zainstalujesz najnowszą wersję Vima (v7.4 i wiele łatek, lub po prostu Vim 8). Teraz jest kilka wtyczek, które z tego skorzystały. Mój BuildToolsWrapper jest jednym z nich. Przetestowałem go z powodzeniem na Linuksie i windows.
Wcześniej potrzebowaliśmy innych sztuczek. Pamiętam wtyczkę marca Webera, która była w stanie emulować kompilację tła w systemie Windows. Było kilka innych. I let others list oni.
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
2017-03-21 07:29:20
Zobacz Ten skrypt
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-09-17 18:02:38