orgmode-babel.nvim/doc/orgmode-babel.nvim.txt
2023-07-23 04:52:10 +00:00

160 lines
4.3 KiB
Text

*orgmode-babel.nvim.txt* For NVIM v0.9.0 Last change: 2023 July 23
==============================================================================
Table of Contents *orgmode-babel.nvim-table-of-contents*
1. orgmode-babel.nvim |orgmode-babel.nvim-orgmode-babel.nvim|
- Requirements |orgmode-babel.nvim-orgmode-babel.nvim-requirements|
- Setup |orgmode-babel.nvim-orgmode-babel.nvim-setup|
- Usage |orgmode-babel.nvim-orgmode-babel.nvim-usage|
- Advanced Configuration|orgmode-babel.nvim-orgmode-babel.nvim-advanced-configuration|
==============================================================================
1. orgmode-babel.nvim *orgmode-babel.nvim-orgmode-babel.nvim*
An **experimental** plugin that evaluates and tangles code blocks in
nvim-orgmode <https://github.com/nvim-orgmode/orgmode> using babel
<https://orgmode.org/worg/org-contrib/babel/> itself.
It uses `emacs` under the hood for perfect compatibility, but does not require
you to add anything extra to your `init.el`.
Demonstration
<https://github.com/mrshmllow/BetterRecipeBook/assets/40532058/b1ca7384-4bb3-47d8-9148-b85f3a2ea54a>
REQUIREMENTS *orgmode-babel.nvim-orgmode-babel.nvim-requirements*
- nvim-orgmode <https://github.com/nvim-orgmode/orgmode>
- nvim-treesitter <https://github.com/nvim-treesitter/nvim-treesitter>
- Neovim v0.9.0 or later
- A working `emacs` installation (does not require configuration)
SETUP *orgmode-babel.nvim-orgmode-babel.nvim-setup*
LAZY.NVIM ~
>lua
{
"mrshmllow/orgmode-babel.nvim",
dependencies = {
"nvim-orgmode/orgmode",
"nvim-treesitter/nvim-treesitter"
},
cmd = { "OrgExecute", "OrgTangle" },
opts = {
-- by default, none are enabled
langs = { "python", "lua", ... },
-- paths to emacs packages to additionally load
load_paths = {}
}
},
<
PACKER ~
>lua
use {
"mrshmllow/orgmode-babel.nvim",
requires = {
"nvim-orgmode/orgmode",
"nvim-treesitter/nvim-treesitter"
},
cmd = { "OrgExecute", "OrgTangle" },
opt = true,
config = function ()
require("orgmode-babel").setup({
-- by default, none are enabled
langs = { "python", "lua", ... },
-- paths to emacs packages to additionally load
load_paths = {}
})
end
}
<
USAGE *orgmode-babel.nvim-orgmode-babel.nvim-usage*
All commands accept a `!` to skip confirmation.
:ORGE[XECUTE] ~
Evaluates every block in buffer.
See Working with Source Code
<https://orgmode.org/manual/Working-with-Source-Code.html> in the org manual.
:{RANGE}ORGE[XECUTE] ~
Evaluate every block in range.
:ORGE[XECUTE] [NAME] ~
Evaluate `[name]` block.
:ORGT[ANGLE] ~
Tangles whole file.
See Extracting Source Code
<https://orgmode.org/manual/Extracting-Source-Code.html> in the org manual.
:{RANGE}ORGT[ANGLE] ~
Tangles all blocks in range. If the range is NOT `%`, the tangled file will
likely only contain the contents of the last block, which is expected
behaviour.
ADVANCED CONFIGURATION*orgmode-babel.nvim-orgmode-babel.nvim-advanced-configuration*
ADDING EXTRA ORG-MODE LANGUAGES ~
Your emacs `init.el` will **not** be sourced during execution of `:OrgExecute`
and `:OrgTangle`, so packages you install there wont be available.
However, `orgmode-babel.nvim` allows us to specify extra load paths, so we can
make packages available that way.
1. Example
As an example, lets add ob-mermaid <https://github.com/arnm/ob-mermaid> for
mermaid functionality in `orgmode-babel.nvim`!
We have two options to get the package. We could either create an
`~/.emacs.d/init.el` and install it through a package manager, which will
likely have a randomish name, or for the sake of simplicity and this being a
neovim plugin, we can simply manually clone the repo to a known location.
>example
git clone https://github.com/arnm/ob-mermaid ~/.../clone-location/ob-mermaid
<
>lua
{
"mrshmllow/orgmode-babel.nvim",
...
opts = {
langs = { ..., "mermaid" }
load_paths = { "~/.../clone-location/ob-mermaid" }
}
},
<
Generated by panvimdoc <https://github.com/kdheepak/panvimdoc>
vim:tw=78:ts=8:noet:ft=help:norl: