Ich möchte meine ändern .vimrc
, um den Wert einer Variablen aus einer externen Datei zu lesen. Wie kann ich das machen?
Insbesondere teilen ein Freund und ich ein Git-Repo mit unseren .vim
Dateien, aber es gibt ein paar kleine Unterschiede in dem, was wir in unseren Konfigurationen wollen. Der größte Teil der Datei ist also normal, aber wir verwenden if-Anweisungen, um zu bestimmen, ob benutzerspezifische Abschnitte geladen werden sollen.
let whoami = "user2"
if whoami == "user1"
...
Nachdem .vimrc
wir unsere gemeinsame Version außerhalb der Quellcodeverwaltung überprüft haben, müssen wir jeweils die let whoami
Zuordnung ändern, damit unser eigener Abschnitt geladen wird. Stattdessen möchte ich eine separate Datei führen, die für jeden von uns unterschiedlich sein kann und aus der vim diesen Variablenwert lädt.
Vielleicht ist ein anderer Gesichtspunkt dazu: Liest vim automatisch alle Dateien in meinem .vim
Verzeichnis? In diesem Fall könnten wir jeweils einen Symlink mit dem Namen username.vim einfügen und diesen mit einer externen Datei verknüpfen, die für jeden von uns unterschiedlich wäre.
let whoami = ""
direkt vor dersource
Zeile zu arbeiten. Wenn die externe Datei nicht geladen werden kann, ist die Variable vorhanden und ich erhalte die Fehlermeldung, die wir zuvor für die nicht gesetzte Variable eingerichtet hatten.silent! source
TeilMit einem Versuch / Fang
Seitdem ich diese Frage gestellt habe, habe ich mir einen anderen Anwendungsfall zum Laden einer externen Datei ausgedacht: maschinenspezifische Optimierungen.
Da ich auf einem bestimmten Computer möglicherweise Optimierungen vornehmen muss oder nicht, verwende ich a
try/catch
, um die externe Datei zu laden. Wenn es keine solche Datei gibt, lasse ich sie unbemerkt fehlschlagen.quelle
Zur Beantwortung der letzten Frage werden die Dateien in
~/.vim
nicht automatisch geladen, sondern alle Dateien in~/.vim/plugin
.quelle
after
,autoload
)Sie können Ihre ~ / .vimrc mit dem
:source
Befehl eine andere Datei laden lassen . Sie könnten beispielsweise jeweils Ihre eindeutigen Befehle in ~ / .myvimrc einfügen und diese Befehle mit ladenOder Sie könnten, wie Sie dachten, Ihren Namen wie folgt in diese Datei einfügen:
und füge dies dann in deine ~ / .vimrc ein:
Anstatt in Dateien Ihre Namen setzen, obwohl, können Sie $ USER als Akira vorgeschlagen oder Satz verwenden
user
Verwendungwhoami
, wie folgt aus :Die Funktion substitute () wird benötigt, da die Ausgabe von system () normalerweise ein '\ n' am Ende hat.
quelle
whoami
funktioniert nicht unter Windowswhoami
einen neuen Prozess aus. Wenn Sie Ihren Editor öffnen, sollte dieser schnell und nicht (unnötig) mehrmals ausgeführt werden.Der Name des angemeldeten Benutzers ist in der Umgebungsvariablen $ USER verfügbar. Sie können leicht auf diese Variable zugreifen:
Also, benutze einfach
in Ihrem vimrc und legen Sie Ihre benutzerspezifischen Einstellungen in
oder wie auch immer Ihr Login-Name lautet
quelle
Ich bin nicht sicher, wie Ihr vimrc aussieht, daher ist dies möglicherweise nicht realisierbar. Wenn Sie und Ihr Freund jedoch große Teile gemeinsam haben, möchten Sie diese möglicherweise in separate Plugins aufteilen. Sie können dem
~/.vim/plugin
Verzeichnis Dateien hinzufügen , damit diese beim Start geladen werden. (Sie werden in alphabetischer Reihenfolge geladen -:scriptnames
zum Überprüfen verwenden.)Auf diese Weise kann jeder Benutzer einen vimrc haben, der völlig einzigartig ist, aber alle Ihre allgemeinen Konfigurationen sind in Plugins enthalten. Wenn Sie sie logisch aufteilen, können Sie sie auch problemlos mit anderen teilen.
quelle