Verwenden von org-src -erve-indentation nur für bestimmte Codeblöcke (oder Puffer oder alles, was über den globalen Kontext hinausgeht)

7

Ich habe gegoogelt und die org-babelDokumente durchgesehen , aber es kommt nicht viel heraus.

Die Sache ist, eines der Dinge, an denen ich arbeite, ist die Verwendung von org-babel, um die Makefile-Quelle zu verwickeln . Darin heißt es in der Dokumentation, und ich verstehe, warum dies der Fall ist, dass ich bewerten muss (setq org-src-preserve-indentation t), was ich gerade habe.

Ich möchte diesen Wert nicht global aktivieren. Ich kann verstehen, dass es für Python, Makefile oder andere Sprachen, die für Leerzeichen empfindlich sind, sinnvoll ist, aber ich möchte wirklich nicht, dass es an anderer Stelle aktiviert wird. Das Endergebnis davon ist außerdem, dass die endgültige Organisationsdatei nicht für Personen funktioniert, die den Wert standardmäßig nicht aktivieren, sodass die resultierende Organisationsdatei ohnehin weniger portabel ist.

Ich würde es vorziehen, wenn ich nurorg-src-preserve-indentation pro Codeblock aktivieren könnte (es ist eine zusätzliche Eingabe, aber ich kann damit leben), aber selbst eine pufferspezifische Einstellung ist akzeptabel. Die Sache ist, ich bin mir nicht sicher, wie ich es machen soll.

Ich vermute, dass dies getan werden könnte , indem ausgenutzt wird, wie #+HEADEREinstellungen Lisp-Code bewerten können, aber bedeutet das nicht, dass die Einstellung jedes Mal beibehalten wird, wenn ich die Datei oder etwas anderes verwickle? Ich würde das lieber nicht tun, das macht die Verwendung der Datei nur unvorhersehbar.

Tariq Kamal
quelle

Antworten:

5

Basierend auf dem Feedback, das ich von der Google+ Org-Modus-Gruppe erhalten habe , sowie dem Nachlesen von pufferlokalen Variablen , habe ich schließlich M-x add-file-local-variable RET org-src-preserve-indentation RET tdiesen Codeblock am Ende meiner Org-Datei hinzugefügt:

# Local Variables:
# org-src-preserve-indentation: t
# End:

Sobald ich das lokale Setup aktualisiere (dh bei den Header-Argumenten Cc drücke), fragt Emacs mich, ob ich die lokale Puffervariable verwenden möchte, und setzt org-src-preserve-indentationdann nur tfür diesen Puffer auf.

Dies scheint das Problem nach meinen Wünschen zu lösen, daher werde ich diese Frage als geschlossen markieren.

Tariq Kamal
quelle