org-mode
a la capacité de rendre le code source, avec des blocs de la syntaxe suivante:
#+NAME: <name>
#+BEGIN_SRC <language> <switches> <header arguments>
<body>
#+END_SRC
Existe-t-il une commande existante pour insérer rapidement ces blocs org-mode
ou dois-je utiliser un outil externe comme yasnippet
?
hydra
package: blogpost (3) Un autre extrait pour une insertion facile du bloc source.Réponses:
Comme @kaushalmodi le mentionne dans les commentaires, vous pouvez
(org) Easy Templates
accélérer l’insertion de différents types de blocs.La procédure générale consiste à insérer,
<
suivi d'un sélecteur de modèle (généralement une seule lettre), une ligne sinon vide et à appuyer sur TAB.Le sélecteur de gabarit pour un gabarit de bloc source générique est
s
, donc taper<s
suivi de TABvous donnera ceci:Le point sera placé à la fin de la première ligne.
C’est une bonne première approximation de ce que vous voulez réaliser, mais c’est Emacs, alors améliorons-le!
Vous pouvez définir des modèles personnalisés en ajoutant une ou plusieurs entrées à une variable appelée
org-structure-template-alist
. Par exemple:Ce code ajoute un
#+NAME:
modèle àorg-structure-template-alist
, en utilisantn
comme sélecteur de modèle. Après avoir développé ce modèle, le point sera positionné à l'emplacement de?
.Si vous nommez toujours vos blocs de code, vous pouvez également remplacer la version d'origine du modèle de bloc source par une version étendue incluant la
#+NAME:
ligne:Taper
<s
suivi de TABvous donnera ensuite:Ce n'est que la pointe de l'iceberg; vous pouvez utiliser une approche similaire pour définir des modèles supplémentaires pour des blocs de code spécifiques à une langue, des blocs de code avec des arguments d'en-tête spécifiques, etc.
la source
<s TAB
Emacs 25 sur Mac OS X et cela semblait fonctionner.org-try-structure-completion
fonction (pour les modèles faciles). Quoi qu'il en soit, il sera remplacé par Structure-templates dans le futur. cf. code.orgmode.org/bzg/org-mode/commit/…Pourquoi ne pas l'écrire toi-même?
la source
Sur ma boîte 99% du temps, je crée des blocs source et 1% du temps, je fais tout le reste. Pour le 1% Easy, les modèles sont parfaits et pour le 99%, j'ai un YaSnippet.
NAME
utilisation uniqueorg-id
mais cela ne compte pas pour nous) et ensuite il me demande quelle langue je veux utiliser en la limitant à celles que j'ai dites à Org-Mode Literate Programming (babel)Voici le YaSnippet avec mon code de support à la fin.
Il nécessite un tiret et le mode org chargé.
Voici un exemple de vous pourrait cette fonction id:
Résulte en
la source
la source