2016-09-04 3 views
0

Ich bin mit Ubuntu 16.04, mit Vimein C++ Programms in Vim Kompilieren

nicht einen Weg finden Kann mein C++ Programm in Vim zu kompilieren und auszuführen.
Ich habe diese Datei auf meine vimrc beigefügt

nnoremap <silent> <F8> :!clear;gcc % -o %:r && ./%:r<CR> 

von dieser Frage: How do I run a C program from VIM?
Aber es funktioniert nicht - mein Programm muß nicht zu kompilieren scheinen, wenn ich F8 drücken.

Jede Hilfe wäre willkommen.

+0

beginnen Sie mit einem einfachen 'map' wie in den Link-Befehl hinzufügen. Lass das funktionieren. Dann fügen Sie die Optionen nach und nach hinzu, bis sie kaputt gehen oder Sie bekommen, was Sie wollen. Außerdem könnten Sie das "Clear" deaktivieren, um zu beginnen. Geben Sie in 'vim' auch' 'map ' 'ein, um zu überprüfen, ob die Zuordnung Ihres Befehls wie gewünscht übernommen wurde. –

+0

: Karte sagt keine Zuordnung gefunden. – novice

+0

Es hat Ihren '.vimrc' Befehl nicht akzeptiert (d. H. Keine Karte für' F8'). Ist 'nnoremap 'wörtlich in Ihrer Datei oder nur ein Tippfehler hier? AFAICT, der Befehl ist "noremap". Sie könnten versuchen, Ihren Befehl manuell einzugeben, wenn Sie sich in 'vim' befinden, um zu sehen, ob er in der Karte angezeigt wird, und ihn dann zu testen, um zu sehen, ob er funktioniert. Dann, wenn Sie die Arbeitsversion haben, fügen Sie sie zu ".vimrc" –

Antwort

1

Sie sollten für den vim Weg der Dinge gegangen sein. Insbesondere in C++.

Aufruf g++ von :! anstelle von :make ist wirklich kontraproduktiv (:h quickfix).

diesen Weg folgen statt: https://stackoverflow.com/a/35702919/15934 (1), es sei denn, Sie sind unter Windows mit dem schlecht konfigurierten make aus MingW, in diesem Pfad diesem Fall wie folgt vor: https://stackoverflow.com/a/22452184/15934

(1) Wenn Sie eine Zuordnung es wollen, wäre so etwas wie:

nnoremap <silent> <F8> :update<cr>:make %<<cr> 
+0

Danke dafür - ich habe mir die Antwort vom Link angesehen und kann mich jetzt kompilieren. Aber einige Probleme mit dem Ausführen der kompilierten Datei. Wenn ich!% eintippe, heißt es, dass die Datei nicht im Bash-Ordner gefunden wurde – novice

+0

@novice Es ist jetzt ein Shell-Problem. Da Ihr System korrekt konfiguriert ist, befindet sich das aktuelle Verzeichnis nicht in Ihrem '$ PATH'. Um die ausführbare Datei auszuführen, geben Sie ':! ./% <' ein. Vergiss das '. /' Nicht. –

+0

Yeah - das hat den Trick - Vielen Dank Kumpel. – novice

0

können Sie einfach eine Make-Datei erstellen und dann nmap <F8> :make!<CR>:cw<CR> auf Ihre vimrc

+0

Wenn er kein Gnumake-Paket verwendet, das mit MinGW ausgeliefert wird, benötigt er kein Makefile für Monodatei-Projekte. Probieren Sie ': make% <', Sie werden sehen. Weitere Informationen finden Sie unter http://stackoverflow.com/a/35702919/15934 –

Verwandte Themen