Wenn ich an einer Rails-App arbeite, öffne ich alle meine Dateien gerne über die Befehlszeile
CD my_app
gedit app/views/user/show.HTML.erb
Gibt es eine Möglichkeit, dies zu verkürzen, so dass ich einfach so etwas schreiben könnte?
gedit user_views/show.HTML.erb
?
Ich möchte, dass die Konsole im Hauptverzeichnis bleibt. Ich möchte nur nicht jedes Mal app / controller / user_controler.rb eingeben, wenn ich den Benutzer-Controller öffnen möchte. Ich weiß, dass ich die Datei einfach mit der Maus öffnen kann, aber ich habe das Gefühl, dass der Wechsel von der Tastatur zur Maus meinen Fokus ein wenig unterbricht. Wenn ich einfach auf die Tastatur tippen kann, scheint es, als hätte ich einen reibungsloseren Arbeitsablauf.
Antworten:
Erstellen Sie möglicherweise einen symbolischen Link aus dem Hauptverzeichnis.
ln -s app/views/user/ user_views
erstellt einen symbolischen Link in Ihrem Haupt- / Arbeitsverzeichnis, der die Dateien in App / Ansichten / Benutzer aktualisiert. Wenn
ls -l
du also einen Willen tust , zeigst du etwas wie:Auf diese Weise könnten Sie einfach gehen
$ gedit user_views/show.html.erb
Sie könnten auch in Betracht ziehen, nur eine Variable zu setzen
mögen
was würde es dir erlauben zu gehen
$ gedit $VIEWS/show.html.erb
Sie können dies in Ihr Bash-Profil aufnehmen, damit es nicht bei jeder Sitzung neu festgelegt werden muss.
mehr zu symblic links
Weitere Informationen zum Bash-Profil und zum Festlegen einer Umgebungsvariablen.
BEARBEITEN
Auf meinem Heimweg fragte ich mich, warum jemand einen symbolischen Link haben wollte, um nur ein Verzeichnis zu überspringen?
/ apps / views / verwenden
in diesem fall sind die ansichten dir. Wissen Sie, was Registerkarte tun wird?
Ich erinnere mich, dass ich ein paar Monate gebraucht habe, um diesen praktischen Trick zu lernen.
Geben Sie etwas wie das folgende ein und drücken Sie die Tabulatortaste
$ gedit a
Drücken Sie die Tabulatortaste, und die App wird wahrscheinlich vollständig sein
$ gedit app/
Geben Sie v ein und drücken Sie erneut die Tabulatortaste
$gedit app/views/
Drücken Sie zweimal die Tabulatortaste, um alle möglichen Optionen aufzulisten. Dies funktioniert sowohl für Dienstprogramme als auch für Verzeichnisse und Dateien.
Tippen
$ ged
Wenn Sie die Tabulatortaste drücken, wird gedit abgeschlossen. Das sollte dich ein bisschen beschleunigen.
quelle
ln
ist imo die bessere lösung.Ich weiß nicht, ob das hilft, aber es gibt eine sehr selten verwendete Shell-Variable namens
CDPATH
.CDPATH
ist derPATH
Variablen für Befehle sehr ähnlich . Wenn Sie a ausführencd
, wird nachCDPATH
Verzeichnissen gesucht, die mit Ihren übereinstimmenCDPATH
.Zum Beispiel:
Wenn ich es tat:
Der CD-Befehl sucht nach a
./jiff/source
, dann nach einem/usr/local/jiff/source
Verzeichnis und dann nach einem$HONE/projects/jiff/source
Verzeichnis. Wenn es ein$HOME/projects/jiff/source
Verzeichnis gibt, wechselt das Verzeichnis dorthin.Dies wird Ihr Problem nicht lösen, wenn Sie einfach einen Teilpfad eingeben und Ihren Befehl ausführen lassen, aber Sie könnten sagen, Sie fügen
myapp/app/view
IhrerCDPATH
Umgebungsvariablen hinzu und tun dies:Das andere, was Sie tun können, ist, den
gedit
Befehl zu_gedit
aliasen und dann ein schnelles Shell-Skript zu schreiben, um den "Dateinamen" zu übernehmen, nach einem Verzeichnisbaum zu suchen, der Ihren Angaben entspricht , und die Datei dann zu bearbeiten. Dies ist etwas, was Kornshell-Benutzer tun, um das Äquivalent derPS1=\u@\h:\w
PS-Eingabeaufforderung zu erhalten, die Sie BASH-Benutzer haben. Fügen Sie Ihrer.bashrc
Datei Folgendes hinzu:Wenn Sie jetzt tippen
gedit user_controler.rb
und eine Datei vorhanden istapp/controler/user_controler.rb
, wird sie bearbeitetapp/controller/user_controler.rb
quelle
Schauen Sie sich Efficiently Navigating Directories unter Unix an, das einige nützliche Bash-Funktionen und Aliase enthält.
quelle
Haben Sie erwogen, Shell-Variablen zu verwenden?
quelle
Wenn Sie eindeutige Dateinamen haben, können Sie dies einfach tun
Die Suche durchsucht standardmäßig das aktuelle Verzeichnis, und $ () entspricht Backticks, mit der Ausnahme, dass Backticks in den meisten modernen Shells eine veraltete Shell-Funktion sind. ;)
Sie können dies natürlich noch weiter verkürzen, indem Sie ein Shell-Skript nach dem Vorbild von verwenden
Und Sie können -name durch -iname ersetzen, um die mühsame Verwendung der Umschalttaste zu vermeiden, wenn Sie Dateinamen in Großbuchstaben verwenden.
Ich bin nicht sicher, wie sich gedit mit mehreren Argumenten verhält (falls Sie keine völlig eindeutigen Dateinamen haben), aber mit vim werden die Dateien einzeln durchsucht. Sie müssen also nur ": q" eingeben, bis Sie zu dem gewünschten Ergebnis gekommen sind. Ich würde erwarten, dass gedit mehrere Tabs öffnet, wenn Sie mehrere Namen haben. Ich verwende jedoch keine grafischen Editoren aus dem gleichen Grund, aus dem Sie die Datei nicht mit der Maus öffnen möchten. ;)
quelle
Haben Sie GMate in Betracht gezogen ? Es ist eine Auswahl von Plugins für Gedit, die die Rails-Entwicklung (unter anderem) erheblich vereinfachen, indem sie wie Textmate aussehen. Es löst Ihr Problem mit dem Fuzzy Open Plugin. Sie öffnen Ihr Projektverzeichnis in Gedit (ich denke, Sie verwenden das Plugin für den Dateibrowser-Bereich) und drücken dann Strg-Shift-O, um FuzzyOpen zu aktivieren. Beginnen Sie als Nächstes mit der Eingabe einiger Buchstaben der gewünschten Datei, und FuzzyOpen vergleicht diese mit den Dateien und Verzeichnissen in Ihrem Projekt. Wenn Sie beispielsweise mit der Eingabe begonnen haben:
es würde alle Dateien finden, deren Pfad diese Buchstaben in dieser Reihenfolge hat, z
Dieselbe Buchstabenfolge könnte auch Folgendes enthalten:
quelle
Ich hatte ein ähnliches Bedürfnis, zu weit entfernten Verzeichnissen zu springen. Ich habe ein Skript geschrieben, das sich darauf stützt, dass der Verzeichnisname mehr oder weniger eindeutig ist, um zu funktionieren:
Ich habe es von .bashrc bezogen, um die Funktion zu nutzen.
Wenn locate nicht zu viele Dateien zum Bearbeiten findet, zeigt die Shell möglicherweise 30 oder 40 Übereinstimmungen als nummerierte Liste an und fordert Sie auf, eine Zahl zwischen 0 und 30, 40 einzugeben, um diese Datei zu öffnen, oder Sie können zenity to verwenden Zeigen Sie die Übereinstimmungen an und wählen Sie sie aus.
Das Programm locate ist auf die regelmäßige Ausführung von updatedb angewiesen. Ab heute funktioniert es nicht mehr für neue Dateien, aber die meisten Editoren haben eine Liste der zuletzt geöffneten Dateien - oder?
Der Datei-Öffnen-Dialog kann so geändert werden, dass er häufig verwendete Verzeichnisse enthält - ziehen Sie diese Verzeichnisse in die linke Favoritenliste.
quelle