Leí el manual del modo org pero no encontré un atajo para insertar:
#+BEGIN_SRC
#+END_SRC
¿Supongo que necesito crear una configuración en ~ / .emacs para establecer un acceso directo? O, ¿hay un atajo pero no lo sabía?
Yo uso mucho R en emacs. ¿Hay alguna manera de crear un acceso directo separado para crear esto?
#+BEGIN_SRC R
#+END_SRC
(require 'org-tempo)
agregado a tu.emacs
. Además, aquí hay un enlace actualizado a Plantillas fáciles -> orgmode.org/manual/Easy-templates.html, i b
adentrospacemacs
?[Esta es una adición / aclaración a las respuestas de @glucas y @manandearth, no se sostiene por sí sola.]
Tenga en cuenta que en versiones de desarrollo recientes (> = 9.2) de org-mode (y, por lo tanto, a menos que las cosas cambien, en futuras versiones estables),
org-structure-template-alist
ha cambiado su tipo. El mecanismo integrado de plantillas fáciles se ha abandonado en favor de un mecanismo más genérico basado en eltempo
paquete. Desafortunadamente, el nuevo mecanismo solo permite abreviaturas de un solo carácter después de<
, por<s
lo que se expandirá a la#+BEGIN_SRC...#+END_SRC
cadena que el OP solicita, pero cosas como<el
en la respuesta de @ manandearth NO funcionarán. Esto todavía es un trabajo en progreso, por lo que las cosas pueden cambiar, pero si usa<XXX
abreviaturas de varias letras , prepárese para que se rompan cuando actualice el modo org a dicha versión.También hay otro mecanismo:
C-c C-,
está vinculado a loorg-insert-structure-template
que le solicita el tipo de bloque que desea insertar (con un menú que enumera todos los bloques disponibles y le permite elegir con solo presionar una tecla). Su ventaja es que envolverá labegin/end
región, así que si ya ha escrito un montón de cosas y desea envolverlo en un bloque, todo lo que tiene que hacer es seleccionarlo como una región y escribirC-c C-.
seguido de un solo carácter para elegir el tipo de bloque.Consulte esta nota [fn: 1], la cadena de documentación de la función (nueva)
org-insert-structure-template
y el archivoorg-tempo.el
.[fn: 1] El enlace puede ser inexacto porque apunta a un número de línea fija en un archivo que puede (¡no, lo hará!) cambiar. Si el enlace no lo lleva al lugar correcto, busque la cadena "expansión de plantilla de estructura", y siéntase libre de editar esta respuesta y corregir el número de línea, ¡gracias!
fuente
El comportamiento del bloque fuente cambió en Org 9.2 . La abreviatura
<s
ya no funciona por defecto. En cambio, usasC-c C-,
qué llamadasorg-insert-structure-template
.Al presionar,
C-c C-,
aparece un cuadro de diálogo. PresioneTAB
y luego entresrc R
. Se inserta un bloque de origen y pone el cursor al comienzo de la segunda línea (dejar que|
sea el punto ):Para editar dentro del bloque, presione
C-o
para abrir una nueva línea.Puede guardar una plantilla agregando una entrada al
org-structure-template-alist
. Ponga lo siguiente en algún lugarinit.el
o ejecútelo usandoC-x C-e
:Ahora, cuando lo haga
C-c C-,
, verá una entradar
en la lista. Puede seguir el mismo enfoque para otros lenguajes, como Python, Ruby, etc. Simplemente reemplace el cdr en el par de puntos de arriba (la parte "src R").Además, para insertar una línea entre los delimitadores de bloque de origen, puede insertar un carácter de nueva línea utilizando
C-q C-j
. Es decir, escribasrc
R
C-q C-j
el cdr del par de puntos anterior. El resultado se verá así:Ahora bien, cuando se pulsa
R
, Emacs inserte el bloque de origen y poner el cursor entre ellos en una nueva línea (vamos a|
ser punto ):fuente
<s
enlace aún existe, solo necesita incluirlo(require org-temp)
en su init para habilitarlo.(require 'org-tempo)
para las asociaciones de teclas para bloques de código,
babel-org
intente lo siguiente para vincular<r
seguido de a<tab>
:También puede modificar la fuente a ESS.
Para enlazar
<p
seguido de a<tab>
a un código de bloque de python, por ejemplo:Un conjunto de emacs-lisp
<el
seguido de a<tab>
será:Otros enlaces útiles en
org-mode
son:fuente
ein
cual también debería admitir R.(add-to-list 'org-structure-template-alist '("p" . "src python"))
Echa un vistazo al paquete YASnippet Emacs. Le permite agregar fragmentos de código con algunas palabras clave y TAB después. Es mucho más simple y útil tanto para el modo de organización como para los scripts R. Debería tener una carpeta en .emacs.d / snippets / ess-mode (y una para org-mode) donde guarde archivos como este:
Cuando escribe TAB, se pega en% en%, de manera similar:
https://www.emacswiki.org/emacs/Yasnippet
https://joaotavora.github.io/yasnippet/snippet-development.html
fuente
Para agregar una nueva combinación de teclas al modo org, puede usar
Esto insertará la cadena si presiona C-cs.
fuente