Emacs-Organisationsmodus: Textreferenz auf eine Datei: Zeile

8

Ich verwende org-mode in Emacs , um meine Entwicklungsaktivitäten zu dokumentieren. Eine der Aufgaben, die ich kontinuierlich von Hand erledigen muss, ist die Beschreibung von Codebereichen. Emacs hat eine sehr schöne Lesezeichenliste : Erstelle ein Lesezeichen mit STRG - x r m , listet sie mit CTRL <-kb> x r auf > l . Das ist sehr nützlich, aber ist nicht ganz das, was ich brauche.

Der Org-Modus hat das Konzept der Verknüpfung, und der Befehl org-store-link zeichnet eine Verknüpfung zur aktuellen Position in jeder Datei auf, die in die org-Datei eingefügt werden kann. Das Problem damit ist zweifach:

  • Es wird als ein Organisationslink gespeichert und die verlinkte Position ist nicht direkt sichtbar (nur die Beschreibung).
  • Es ist im Format file/search gespeichert, was ich nicht will.

Ich muss das Lesezeichen in Textform haben, damit ich es kopieren und in den Organisationsmodus einfügen kann, beende es bei Bedarf mit einem einfachen Format wie diesem:

%Vor%

Und das muss von der aktuellen Punktposition erhalten werden. Der Workflow wäre so einfach wie:

  • Gehe zu der Position, die ich aufzeichnen möchte
  • Rufen Sie eine Funktion auf: position-to-kill-ring (Ich würde dies an eine Tastenkombination binden)
  • Gehe zum org-mode -Puffer.
  • Ziehen Sie die Position zurück.
  • Bei Bedarf bearbeiten (manchmal muss ich absolute Pfade nach relativen Pfaden ändern, da sich mein Code an verschiedenen Stellen auf verschiedenen Rechnern befindet)

Leider ist mein lisp nicht existent, also weiß ich nicht wie ich das machen soll. Gibt es eine einfache Lösung für mein Problem?

    
dangonfast 21.05.2012, 08:26
quelle

4 Antworten

12
%Vor%     
phils 21.05.2012, 09:10
quelle
5

Sie möchten die org-create-file-search-functions und org-execute-file-search-functions Haken verwenden.

Wenn Sie beispielsweise die Suche benötigen, die Sie für Textmodusdateien beschreiben, verwenden Sie Folgendes:

%Vor%

Dann macht M-x org-store-link RET das Richtige (speichert eine Zeilennummer als Suchzeichenfolge) und Cc Co (dh M-x org-open-at-point RET ) öffnet die Datei und geht zu dieser Zeilennummer.

Sie können natürlich nach anderen Modi und / oder Bedingungen suchen.

    
bzg 21.05.2012 16:44
quelle
0

Ein elisp Anfänger selbst habe ich davon als eine gute Übung et voila:

Bearbeiten: Rewrote es mit dem Format methode, aber ich denke immer noch nicht in den Kill-Ring zu speichern ist weniger aufdringlich in meinem Workflow (weiß nicht, über Sie). Auch ich habe die Fähigkeit hinzugefügt, Spaltenposition hinzuzufügen.

%Vor%

Nicht ausführlich getestet, aber für mich gearbeitet. Klicken Sie einfach auf speichern-file-and-line oder speichern-datei-zeile-und-col , um den aktuellen Speicherort und Datei einfügen-Referenz zu speichern um den gespeicherten Wert an Punkt einzufügen.

    
elemakil 21.05.2012 09:20
quelle
0

Übrigens, wenn Sie etwas Besseres als FILE: LINE wollen, können Sie versuchen, add-log-current-defun (in add-log.el) zu verwenden, das den Namen der aktuellen Funktion zurückgeben soll.

    
Stefan 21.05.2012 20:50
quelle

Tags und Links