2013-04-10 17 views
8

Mein vim hat Pfadeinstellungen wie unten gezeigt.Pfad Einstellung für C++ include Header für vim

path=.,/usr/include,, 

Ich denke, das ist eine Standardeinstellung von "Pfad", denke ich.

Wegen dieses gf c Header-Dateien unter dem Cursor öffnet.

Aber auf C++ Datei C++ - Header-Dateien sind nicht geöffnet, da die C++ Header-Datei Speicherort nicht path Variable von Vim hinzugefügt wird.

set path+=/usr/include/c++/4.6 

Ich denke, dass diese Einstellung auf vimrc eine Lösung wäre. Aber das Problem ist die tatsächliche Verzeichnis-Speicherort für C++ - Header-Datei würde in jeder anderen Linux-Distributionen und g ++ - Compiler-Versionen geändert werden.

Wie kann ich Pfad für C++ Header-Dateien in einer tragbaren Weise festlegen?

+0

@zachlatta, Danke für die Bearbeitung meiner Frage hübschere: Sie können die systemabhängigen Einstellungen in einer separaten, nur lokalen Datei, und rufen Sie das von Ihrem ~/.vimrc, wie diese bewegen! – Jeonghum

Antwort

7

Wenn es nur eine begrenzte Anzahl von Stellen ist, eine einfache bedingte in ~/.vimrc tun:

if isdirectory('/usr/include/c++/4.6') 
    set path+=/usr/include/c++/4.6 
elseif isdirectory(... 

Wenn Sie viele verschiedene Systeme haben, und wollen nicht alle Varianten an einem zentralen Ort zu halten,

" Source system-specific .vimrc first. 
if filereadable(expand('~/local/.vimrc')) 
    source ~/local/.vimrc 
endif 
+0

Vielen Dank! Ich denke, das wäre eine gute Lösung. Vielen Dank. – Jeonghum

+0

Die Verwendung von expand() hat mir diesmal sehr geholfen. Vielen Dank! – Jeonghum

+0

scheint wie ein Sicherheitsrisiko? –

-1

Es gibt bestimmte Umgebungsvariablen, die der Compiler untersuchen soll. Wenn Sie gcc/g ++ in einer Linux/Unix-Umgebung verwenden, sind die Variablen C_INCLUDE_PATH und CPLUS_INCLUDE_PATH. Wenn Sie bash/sh benutzen, dann verwenden Sie export VARIABLE=value oder wenn Sie csh/tcsh verwenden dann verwenden Sie setenv VARIABLE value oder wenn Sie eine andere Shell verwenden, dann müssen Sie nachschlagen. In diesen Beispielen ist VARIABLE entweder C_INCLUDE_PATH und CPLUS_INCLUDE_PATH. Ich hoffe das hilft.

+0

Vielen Dank, aber was ich wissen muss, ist nicht über den 'Compiler', sondern über den Editor' vim'. – Jeonghum