Saya membaca manual mode-org tetapi tidak menemukan jalan pintas untuk disisipkan:
#+BEGIN_SRC
#+END_SRC
Saya kira saya perlu membuat konfigurasi di ~ / .emacs untuk mengatur pintasan? Atau, apakah ada jalan pintas tapi saya tidak tahu?
Saya banyak menggunakan R di emacs. Apakah ada cara untuk membuat pintasan terpisah untuk membuat ini?
#+BEGIN_SRC R
#+END_SRC
(require 'org-tempo)
menambahkan ke.emacs
. Juga, berikut ini tautan yang diperbarui ke Template Mudah -> orgmode.org/manual/Easy-templates.html, i b
di dalamspacemacs
?[Ini adalah tambahan / klarifikasi untuk jawaban oleh @glucas dan @manandearth - tidak berdiri sendiri.]
Perhatikan bahwa dalam versi pengembangan terbaru (> = 9.2) mode-org (dan karena itu, kecuali ada perubahan, dalam versi stabil di masa mendatang),
org-structure-template-alist
telah mengubah tipenya. Mekanisme templat mudah bawaan telah ditinggalkan demi mekanisme yang lebih umum berdasarkantempo
paket. Sayangnya, mekanisme baru hanya memungkinkan singkatan karakter tunggal setelah<
, jadi<s
akan diperluas ke#+BEGIN_SRC...#+END_SRC
string yang diminta OP, tetapi hal-hal seperti<el
dalam jawaban @ manandearth TIDAK akan berfungsi. Ini masih dalam proses, jadi semuanya bisa berubah, tetapi jika Anda menggunakan<XXX
singkatan multi-huruf , bersiaplah untuk berhenti ketika Anda meningkatkan mode-org ke versi seperti itu.Ada juga mekanisme lain:
C-c C-,
terikatorg-insert-structure-template
yang meminta Anda untuk jenis blok yang ingin Anda masukkan (dengan menu yang mencantumkan semua blok yang tersedia dan memungkinkan Anda untuk memilih dengan menekan satu tombol). Keuntungannya adalah ia akan membungkusbegin/end
seluruh wilayah, jadi jika Anda telah mengetik banyak barang dan ingin membungkusnya dalam satu blok, yang harus Anda lakukan adalah memilihnya sebagai wilayah dan mengetikC-c C-.
diikuti oleh satu karakter untuk memilih jenis blok.Lihat catatan ini [fn: 1], string doc dari fungsi (baru)
org-insert-structure-template
dan fileorg-tempo.el
.[fn: 1] Tautan mungkin tidak akurat karena menunjuk ke nomor saluran tetap dalam file yang dapat (tidak, akan!) berubah. Jika tautan tidak membawa Anda ke tempat yang tepat, cari string "perluasan templat struktur" - dan jangan ragu untuk mengedit jawaban ini dan memperbaiki nomor baris - terima kasih!
sumber
The perilaku blok sumber berubah dalam Org 9.2 . Singkatan
<s
tidak lagi berfungsi secara default. Sebaliknya, Anda menggunakanC-c C-,
panggilan manaorg-insert-structure-template
.Menekan
C-c C-,
menampilkan dialog. TekanTAB
lalu masuksrc R
. Sisipan ini blok sumber dan menempatkan kursor pada awal baris kedua (biarkan|
menjadi titik ):Untuk kemudian mengedit di dalam blokir, tekan
C-o
untuk membuka baris baru.Anda dapat menyimpan templat dengan menambahkan entri ke
org-structure-template-alist
. Tempatkan yang berikut di tempat Andainit.el
atau jalankan dengan menggunakanC-x C-e
:Sekarang ketika Anda melakukannya,
C-c C-,
Anda akan melihat entri untukr
dalam daftar. Anda dapat mengikuti pendekatan yang sama untuk bahasa lain, seperti Python, Ruby, dll. Cukup ganti cdr pada pasangan bertitik di atas (bagian "src R").Selain itu, untuk menyisipkan garis di antara pembatas blok sumber, Anda dapat menyisipkan karakter baris baru menggunakan
C-q C-j
. Artinya, ketiksrc
R
C-q C-j
di cdr dari pasangan putus-putus di atas. Hasilnya akan terlihat seperti:Sekarang ketika Anda menekan
R
, Emacs akan memasukkan blok sumber dan menempatkan kursor di antara mereka pada baris baru (LET|
menjadi titik ):sumber
<s
mengikat masih ada, Anda hanya perlu menyertakan(require org-temp)
dalam init Anda untuk mengaktifkannya.(require 'org-tempo)
untuk binding kunci untuk blok kode di
babel-org
coba yang berikut ini untuk mengikat<r
diikuti oleh<tab>
:Anda dapat memodifikasi sumber menjadi ESS juga.
Untuk mengikat
<p
diikuti oleh<tab>
ke kode blok python, misalnya:sebuah emacs-lisp diatur untuk
<el
diikuti oleh<tab>
akan menjadi:binding berguna lainnya
org-mode
adalah:sumber
ein
yang juga harus mendukung R.(add-to-list 'org-structure-template-alist '("p" . "src python"))
Lihatlah paket YASnippet Emacs. Ini memungkinkan Anda untuk menambahkan potongan kode dengan beberapa kata kunci dan TAB setelahnya. Ini jauh lebih sederhana dan berguna baik dalam mode org dan dengan skrip R. Anda harus memiliki folder di .emacs.d / snippets / ess-mode (dan satu untuk mode org) di mana Anda menyimpan file seperti ini:
Saat Anda mengetik di TAB, ia menempel di% dalam%, serupa:
https://www.emacswiki.org/emacs/Yasnippet
https://joaotavora.github.io/yasnippet/snippet-development.html
sumber
Untuk menambahkan kombinasi tombol baru ke mode-org, Anda dapat menggunakan
Ini akan memasukkan string jika Anda menekan C-cs.
sumber