Przeczytałem instrukcję trybu org, ale nie znalazłem skrótu do wstawienia:
#+BEGIN_SRC
#+END_SRC
Chyba muszę utworzyć konfigurację w ~ / .emacs, aby ustawić skrót? Czy istnieje skrót, ale nie wiedziałem?
Używam R dużo w emacs. Czy istnieje sposób utworzenia osobnego skrótu, aby go utworzyć?
#+BEGIN_SRC R
#+END_SRC
(require 'org-tempo)
dodać do swojego.emacs
. Ponadto tutaj znajduje się zaktualizowany link do łatwych szablonów -> orgmode.org/manual/Easy-templates.html, i b
wspacemacs
?[Jest to uzupełnienie / wyjaśnienie odpowiedzi @glucas i @manandearth - nie jest samo w sobie.]
Zauważ, że w ostatnich wersjach programistycznych (> = 9.2) trybu org (i dlatego, chyba że coś się zmieni, w przyszłych stabilnych wersjach)
org-structure-template-alist
zmienił swój typ. Wbudowany mechanizm łatwych szablonów został porzucony na rzecz bardziej ogólnego mechanizmu opartego natempo
pakiecie. Niestety nowy mechanizm dopuszcza tylko skróty pojedynczych znaków po<
, więc<s
zostanie rozszerzony do#+BEGIN_SRC...#+END_SRC
ciągu, o który prosi OP, ale rzeczy takie jak<el
w odpowiedzi @ manandearth NIE będą działać. Wciąż jest to praca w toku, więc rzeczy mogą się zmienić, ale jeśli używasz wieloliterowych<XXX
skrótów, przygotuj się na ich zerwanie po uaktualnieniu trybu org do takiej wersji.Istnieje również inny mechanizm:
C-c C-,
jest powiązany zorg-insert-structure-template
monitem o rodzaj bloku, który chcesz wstawić (z menu, które zawiera listę wszystkich dostępnych bloków i pozwala wybrać za jednym naciśnięciem klawisza). Jego zaletą jest to, że będzie owijałbegin/end
wokół regionu, więc jeśli już wpisałeś kilka rzeczy i chcesz owinąć go w blok, wszystko co musisz zrobić, to wybrać go jako region i wpisaćC-c C-.
pojedynczy znak wybrać rodzaj bloku.Zobacz tę notatkę [fn: 1], ciąg dokumentów funkcji (nowej)
org-insert-structure-template
i plikorg-tempo.el
.[fn: 1] Link może być niedokładny, ponieważ wskazuje na stały numer linii w pliku, który może (nie, zmieni się!). Jeśli link nie zabierze Cię we właściwe miejsce, wyszukaj ciąg „rozwinięcie szablonu struktury” - możesz edytować tę odpowiedź i naprawić numer linii - dzięki!
źródło
C-c C-,
ponad,<s
jest to, że pozwala on wybrać tekst i „owinąć” go wokół szablonu struktury, po prostu wpisującC-c C-,
. Z<s
musisz wyciąć i wkleić linię, która kończy szablon (tj#+END_SRC
.).Zachowanie bloku źródło zmieniane w Org 9,2 . Skrót
<s
nie działa już domyślnie. Zamiast tego używasz,C-c C-,
które połączeniaorg-insert-structure-template
.Naciśnięcie powoduje
C-c C-,
otwarcie okna dialogowego. Naciśnij,TAB
a następnie wprowadźsrc R
. To wstawia blok źródłowy i umieszcza kursor na początku drugiej linii (niech|
będzie punkt ):Aby następnie edytować wewnątrz bloku, naciśnij,
C-o
aby otworzyć nowy wiersz.Możesz zapisać szablon, dodając wpis do
org-structure-template-alist
. Umieść gdzieś w swoim miejscuinit.el
lub uruchom go za pomocąC-x C-e
:Teraz, gdy to zrobisz
C-c C-,
, zobaczysz pozycję nar
liście. Możesz zastosować to samo podejście dla innych języków, takich jak Python, Ruby itp. Po prostu zastąp cdr w kropkowanej parze powyżej (część „src R”).Dodatkowo, aby wstawić linię między ogranicznikami bloku źródłowego, możesz wstawić znak nowej linii za pomocą
C-q C-j
. Oznacza to, wpisaćsrc
R
C-q C-j
w CDR z przerywaną pary powyżej. Wynik będzie wyglądał następująco:Teraz, kiedy naciśniesz
R
, Emacs wstawi blok źródłowy i umieści kursor między nimi w nowej linii (niech|
będzie punkt ):źródło
<s
Wiążące nadal istnieje, wystarczy włączyć(require org-temp)
w init, aby ją włączyć.(require 'org-tempo)
dla powiązań klawiszy dla bloków kodu,
babel-org
spróbuj wykonać następujące czynności,<r
a następnie<tab>
:Możesz również zmodyfikować źródło do ESS.
Aby powiązać,
<p
a następnie a<tab>
, kod bloku python, na przykład:zestaw emacs-lisp,
<el
po którym następuje,<tab>
będzie:inne przydatne wiązania
org-mode
to:źródło
ein
które powinien również obsługiwać R.(add-to-list 'org-structure-template-alist '("p" . "src python"))
Zobacz pakiet YASnippet Emacs. Pozwala dodawać fragmenty kodu z niektórymi słowami kluczowymi i TAB po. Jest to o wiele prostsze i przydatne zarówno w trybie org, jak i ze skryptami R. Powinieneś mieć folder w .emacs.d / snippets / ess-mode (i jeden dla trybu org), w którym zapisujesz takie pliki:
Gdy wpiszesz TAB, będzie się on pojawiał w% w%, podobnie:
https://www.emacswiki.org/emacs/Yasnippet
https://joaotavora.github.io/yasnippet/snippet-development.html
źródło
Aby dodać nową kombinację klawiszy do trybu organizacji, możesz użyć
Spowoduje to wstawienie ciągu, jeśli naciśniesz C-cs.
źródło