Imposta la lingua predefinita per i blocchi di codice in orgmode


14

C'è un modo per definire una lingua predefinita per i blocchi di codice in modalità org nell'intestazione del documento? Di solito, all'interno di un documento dell'organizzazione, utilizzo solo un linguaggio di programmazione, quindi è sempre seccante scrivere

#+BEGIN_SRC python
[...]
#+END_SRC

Sarebbe bello poter fare qualcosa del genere

#+PROPERTY: header-args :session *mysession* :tangle yes :results silent :language python

[...]

#+BEGIN_SRC
[...]
#+END_SRC

C'è un modo per raggiungere questo obiettivo?


2
Questo non risponde alla domanda su come impostare la lingua predefinita, ma ti farà sicuramente risparmiare un sacco di digitazione. La digitazione <sseguita dalla TABchiave si espande automaticamente nella struttura del blocco del codice sorgente e quindi è sufficiente digitare python, andare alla riga successiva e compilare il codice.
Kaushal Modi,

Dai un'occhiata a orgmode.org/manual/… . Sembra che sia richiesta la specifica della lingua. Hai postato nell'elenco delle organizzazioni? In caso contrario, lo farò, questo è un desiderio interessante e probabilmente comune.
Grettke,


Grazie, @grettke, per aver preso l'iniziativa di pubblicare sulla mailing list.
andreas-h

Il suggerimento dalla mailing list sopra (se si sta cercando una soluzione che non prevede di avere #+BEGIN_SRC pythonnel .orgfile) è probabilmente che dovresti modificare org-babel-get-src-block-info in modo che restituisca un valore predefinito quando ci non c'è niente dopo # + BEGIN_SRC
ShreevatsaR l'

Risposte:


10

Questa risposta fornisce una soluzione pratica.

Il modo più semplice per farlo sarebbe utilizzare modelli semplici . Aggiungi i tuoi modelli a org-structure-template-alist:

(add-to-list 'org-structure-template-alist
         '("py" "#+BEGIN_SRC python :results output\n?\n#+END_SRC" ""))

Il punto interrogativo indica la posizione del cursore. Inserire il blocco di codice con <pyTAB in questo caso.


2
La tua risposta è come aggiungere nuovi modelli per l'espansione, non come impostazione predefinita della lingua per un blocco sorgente.
Grettke,

Mentre questo risolve il problema di facilitare l'inserimento di tali blocchi, non risolve il "problema" che il file di origine contiene ancora #+BEGIN_SRC pythonanziché solo #+BEGIN_SRC- questo rende il file di origine un po 'più difficile da leggere, ad esempio.
ShreevatsaR,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.