Ich möchte mein System so ändern, .vimrc
dass der Wert einer Variablen aus einer externen Datei gelesen wird. Wie mache ich das?
Genauer gesagt: Ein Freund und ich teilen uns ein Git-Repository mit unseren .vim
Dateien, aber es gibt ein paar kleine Unterschiede in dem, was wir in unseren Konfigurationen haben wollen. Der Großteil der Datei ist also gleich, aber wir verwenden if-Anweisungen, um zu bestimmen, ob benutzerspezifische Abschnitte geladen werden sollen, wie folgt:
let whoami = "user2"
if whoami == "user1"
...
Nachdem wir unsere gemeinsame .vimrc
Version der Quellcodeverwaltung überprüft haben, muss jeder von uns die let whoami
Zuweisung ändern, damit sein eigener Abschnitt geladen wird. Stattdessen möchte ich eine separate Datei behalten, die für jeden von uns unterschiedlich sein kann und aus der vim diesen Variablenwert lädt.
Ein anderer Blickwinkel hierzu könnte sein:Liest vim automatisch alle Dateien in meinem .vim
Verzeichnis?Wenn ja, könnte jeder von uns dort einen symbolischen Link mit dem Namen „Benutzername.vim“ einfügen und diesen mit einer externen Datei verknüpfen, die für jeden von uns unterschiedlich wäre.
Antwort1
in Ihrer Haupt-.vimrc-Datei:
source otherVimScriptFilePath.vim
dann fügen Sie Ihre Variablenanweisung einfach in diese Datei ein:
" otherVimScriptFilePath.vim
let whoami = "user1"
Antwort2
Verwenden eines Try/Catch-Befehls
Seit ich diese Frage gestellt habe, ist mir ein weiterer Anwendungsfall für das Laden einer externen Datei eingefallen: maschinenspezifische Optimierungen.
Da ich an einem bestimmten Computer möglicherweise Optimierungen vornehmen muss, verwende ich try/catch
zum Laden der externen Datei. Wenn keine solche Datei vorhanden ist, lasse ich den Vorgang stillschweigend abbrechen.
" If there are any machine-specific tweaks for Vim, load them from the following file.
try
source ~/.vimrc_machine_specific
catch
" No such file? No problem; just ignore it.
endtry
Antwort3
Um die letzte Frage zu beantworten: Die Dateien in ~/.vim
werden nicht automatisch geladen, aber alle Dateien in ~/.vim/plugin
werden geladen.
Antwort4
Der Name des angemeldeten Benutzers ist in der Umgebungsvariable $USER verfügbar. Sie können einfach auf diese Variable zugreifen:
:echo $USER
also, benutze einfach
execute "silent! source vimrc." . $USER
in Ihrer vimrc und fügen Sie Ihre benutzerspezifischen Einstellungen ein in
vimrc.joe
oder wie auch immer Ihr Login-Name lautet