org-mode
ma możliwość renderowania kodu źródłowego, z blokami o następującej składni:
#+NAME: <name>
#+BEGIN_SRC <language> <switches> <header arguments>
<body>
#+END_SRC
Czy istnieje istniejące polecenie, aby szybko wstawić te bloki org-mode
, czy też muszę użyć zewnętrznego narzędzia, takiego jak yasnippet
?
hydra
pakietu: blogpost (3) Kolejny fragment kodu do łatwego wstawiania bloku źródłowego org.Odpowiedzi:
Jak wspomina @kaushalmodi w komentarzach, możesz
(org) Easy Templates
przyspieszyć wstawianie różnego rodzaju bloków.Ogólna procedura polega na wstawianiu,
<
a następnie selektorze szablonów (zwykle pojedynczej litery) w innym pustym wierszu i naciśnięciu TAB.Selektor szablonów dla ogólnego szablonu bloku źródłowego jest
s
taki, więc wpisanie<s
po nim TABda ci to:Punkt zostanie umieszczony na końcu pierwszej linii.
To dobre pierwsze przybliżenie tego, co chcesz osiągnąć, ale to Emacs, więc poprawmy to!
Możesz zdefiniować niestandardowe szablony, dodając jeden lub więcej wpisów do zmiennej o nazwie
org-structure-template-alist
. Na przykład:Ten kod dodaje
#+NAME:
szablon doorg-structure-template-alist
, używającn
jako selektora szablonów. Po rozwinięciu ten szablon zostanie umieszczony w miejscu?
.Jeśli zawsze nazywasz swoje bloki kodu, możesz również zastąpić oryginalną wersję szablonu bloku źródłowego rozszerzoną wersją, która zawiera
#+NAME:
wiersz:Po wpisaniu,
<s
a TABnastępnie otrzymasz:To tylko wierzchołek góry lodowej; możesz zastosować podobne podejście do zdefiniowania dodatkowych szablonów dla bloków kodu specyficznych dla języka, bloków kodu z określonymi argumentami nagłówka itp.
źródło
<s TAB
Emacsa 25 na Mac OS X i wydawało się, że działa.org-try-structure-completion
funkcję (dla szablonów Easy). Ale i tak w przyszłości zostaną zastąpione szablonami struktur. por. code.orgmode.org/bzg/org-mode/commit/…Dlaczego nie napisać tego sam?
źródło
Na moim urządzeniu 99% czasu tworzę bloki źródłowe, a 1% czasu robię wszystko inne. Dla 1% łatwe szablony są idealne, a dla 99% mam YaSnippet.
NAME
użycie,org-id
ale to nie ma znaczenia tylko dla nas, a następnie pyta mnie, jakiego języka chcę użyć, ograniczając go do tych, którym powiedziałem Org-Mode Literate Programming (babel)Oto YaSnippet z moim kodem pomocniczym na końcu.
Wymaga załadowania myślnika i trybu org.
Oto przykład Twojej funkcji id:
Prowadzi do
źródło
źródło