Öffnen Sie eine Datei in einer Zeile mit "filename:line" - syntax
Sehr oft, compilations-Fehler werden angezeigt, mit der file:line
syntax.
Wäre es schön, zu kopieren und fügen Sie diese direkt zum öffnen der Datei auf die richtige Linie.
Emacs hat bereits einige-Modus, um diese zu bewältigen in Puffer (compile-Modus, wenn ich mich Recht erinnere), aber ich möchte diese verfügbar von der shell-Befehlszeile, da ich die standard-shell die meiste Zeit außerhalb des emacs.
Keine Idee, wie zwicken, emacs zu lernen file:line
syntax zu öffnen file
in Zeile line
? (natürlich, wenn file:line
wirklich auf der Festplatte existiert, sollte es geöffnet werden vorzugsweise)
- Ich würde gerne sehen, eine Möglichkeit zum öffnen einer Datei übergeben emacs einen PHP-Fehler. Das würde dann so Aussehen: Warning: Invalid argument für foreach geliefert() in _drupal_schema_initialize() (Zeile 6866 von /srv/Arbeit.electricgroups.com/dave/Projekte/htdocs/includes/common.inc).
- Pflege: wählen Sie eine Antwort?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies mit emacsclient. z.B. DATEI öffnen, in Zeile 4, Spalte 3 in einem neuen Rahmen:
Lassen Sie die
:3
, öffnen Sie einfach die Datei in Zeile 4.Habe ich Folgendes in meinem
.emacs
, aber ich habe nicht gefunden es nützlich wie ich dachte, es wäre.(find-file)
. Aber es ist immer noch nicht möglichemacsclient -c -n -a "" ~/src/file.cpp:14
Und hier ist mein gehen Sie. Ruft das original zu finden-Datei-zu-Punkt -
Können Sie ein bash-Skript:
Wenn Sie dieses Skript aufrufen, für
openline
und Sie erhalten eine Fehlermeldung, z.B.können Sie tun
öffnen der
file.cpp
imEmacs
auf Zeile 1046..emacs --no-splash "+$line" --file "$file"
Schlage ich vor, fügen Sie folgenden code in Ihrem emacs-config:
öffnen Sie nun die Datei mit einer Zeile rechts von der Kommandozeile aus so:
P. S. ich hoffe ich bin nicht zu spät mit meiner Antwort.
Andere version von Ivan Andrus' schön finden-Datei-Beratung an, die beide Zeile + optionale Spalte mit der Nummer, wie Sie sehen in Knoten und coffeescript Fehler:
Emacs 25 nicht verwenden
defadvice
mehr. Refs.So, hier ist die version aktualisiert, um die neue syntax:
Dies funktioniert, wenn Sie rufen Sie Datei-öffnen aus dem inneren emacs C-x C-f), aber nicht mehr von der Befehl-Linie, es scheint, dass emacs 25 ist nicht mit
find-file
beim Aufruf von der Kommandozeile aus und ich weiß nicht, wie zu Debuggen, diese Art der Sache.Reden Sie einfügen, um eine Datei zu öffnen (ich nehme an, du meinst bei einer Datei suchen prompt innerhalb von emacs) und tun auch etwas von der Befehlszeile aus. Wenn Sie möchten, kopieren & einfügen, dann müssen Sie etwas tun, wie das, was Ivan zeigte mit dem defadvice. Wenn Sie möchten, etwas von der Befehlszeile aus können Sie Folgendes tun. Ich habe diese angepasst, von sowas hab ich vor einem Jahr mit einem emacs://- URI-handler (für den Einsatz im Firefox):
Setzen Sie diese in Ihr .emacs-Datei:
dann erstellen Sie ein shell-Skript in deinem Pfad ist (ich nannte mein "emacsat'):
Einer DOS-batch-Skript würde ähnlich Aussehen, aber ich weiß nicht, wie zu tun, default-Werte, (obwohl ich bin mir ziemlich sicher, dass Sie es tun können).
Sehen Konfigurieren von firefox zu laufen emacsclientw auf bestimmte links? für weitere Anweisungen, wenn Sie integrieren möchten, mit Firefox auch.
Machte ich ein wenig umschreiben der
find-file-at-point
Funktion.Wenn es eine Zeilennummer übereinstimmen, wird die Datei geöffnet in einem anderen Fenster und die Maus in diese Zeile. Wenn keine Zeilennummer übereinstimmen, tun, was ffap normalerweise tut ...
Wenn Sie eine alte version des ffap (2008), sollten Sie aktualisieren Sie Ihre emacs oder anwenden
ein weiterer kleiner patch ...
Hier ist ein zsh-Funktion, die funktioniert, wenn Sie steckte es in Ihren
.zshrc
Datei.Da ich meinen code im zsh in der Regel, und das ist, wo ich die Fehler sehen. Kudos an @sanityinc für die emacs-Teil. Dachte nur das sollte auf google.
Verwenden, wie
emn /long/stack/error.rb:123
Zu return42 code, der Hinzugefügt Spalte Anzahl die Unterstützung und gereinigt Fall, wo die Spalte mit der Nummer vorhanden ist, und der Zeilennummer gesucht.
Habe ich geändert, ivan-andrus
defadvice
so funktioniert es mit emacsclient: