Projektil ist ziemlich gut, aber ich finde es schwierig, es nur an Stellen einzuschalten, an denen es effektiv wäre.
Soweit ich weiß, besteht die beiden Standardoptionen darin, es manuell einzuschalten, wie bei Hooks im Hauptmodus, oder es global zu aktivieren projectile-global-mode
. Ich finde das erstere nicht breit genug; Ich möchte in der Lage sein, auf Projektilbefehle zuzugreifen, während ich eine Datei in einem Projekt unabhängig von ihrem Typ besuche . Das globale Einschalten des Modus ist jedoch zu weit gefasst. es wird auch eingeschaltet , wenn eine solche offensichtlich nicht-Projektverzeichnisse wie mein Home - Verzeichnis Besuch /tmp
, /etc
etc.
Gibt es eine Standardmethode zur Aktivierung projectile-mode
nur , wenn eine Datei , die Leben in einem konkreten Projekt zu besuchen, könnten wie, sagen sie, die Überprüfung für die Existenz eines bestimmt werden .git
, .svn
usw., Verzeichnis in einigem Vorfahren Verzeichnis der aktuellen Datei?
quelle
.git
,.svn
... sollte die Standardeinstellung sein. Vielleicht müssen Sieprojectile-require-project-root
Einstellungen vornehmennil
.t
. Aber der Modus ist/etc
zum Beispiel immer noch aktiviert .projectile-find-files
in solchen Nicht-Projekt-Verzeichnissen ausgeführt werden, erhalten Sie von Projectile einfach die Meldung "Sie sind nicht in einem Projekt". Sind Sie sicher, dass Sie den richtigen Befehl ausführen?Projectile[etc]
in der Moduszeile, wenn ich öffne/etc
. Es nimmt wertvollen Platz in der Moduszeile ein, und ich möchte den Modus in Nicht-Projektverzeichnissen lieber überhaupt nicht aktivieren.Antworten:
Es geht also um die Modeline. Sie können festlegen
projectile-mode-line
, ob Sie sich in einem Projektstamm befinden. Wenn ja, wird in der Modeline angezeigt, andernfalls wird nichts angezeigt:quelle
default-directory
. Ich werde eine PR machen.*Messages*
Puffer festgestellt , daprojectile-project-root
beim Aufruf aus einem Nicht-Projekt-Verzeichnis eine Ausnahme ausgelöst wird. Dieser Funktionsaufruf muss also in a eingeschlossencondition-case
und auchprojectile-require-project-root
an gebunden werdent
.