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.