Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
510b749e45 | ||
|
|
211e1b40ba | ||
|
|
315733a7ed | ||
|
|
be53a9cb85 | ||
|
|
66fdf66321 | ||
|
|
9b329f456b |
27
README.org
27
README.org
@@ -17,6 +17,33 @@ implementation. It also allowed me use [[https://github.com/orgzly/orgzly-andro
|
||||
*Note*: this project is considered /feature complete/ by the author, so the
|
||||
addition of new features will be unlikely.
|
||||
|
||||
|
||||
** Installation
|
||||
|
||||
Installation of Org.vim can be performed by using your preferred plugin/package
|
||||
management tool(s). If you don't have a Vim package manager I recommend using
|
||||
Vim 8 packages.
|
||||
|
||||
Just run these 2 commands from your shell.
|
||||
|
||||
#+BEGIN_SRC sh
|
||||
git clone https://github.com/axvr/org.vim ~/.vim/pack/plugins/start/org
|
||||
vim +'helptags ~/.vim/pack/plugins/start/org/doc/' +q
|
||||
#+END_SRC
|
||||
|
||||
Once installed check out the Org.vim manual (run ~:help org.txt~ to open it) for
|
||||
usage information and configuration options.
|
||||
|
||||
|
||||
** Screenshots
|
||||
|
||||
Different Vim colour schemes will result in different appearances.
|
||||
|
||||
| [[https://github.com/romainl/Apprentice][Apprentice]] | [[https://github.com/axvr/photon.vim][Photon]] |
|
||||
|--------+------------|
|
||||
| [[https://raw.githubusercontent.com/axvr/org.vim/images/apprentice.png]] | [[https://raw.githubusercontent.com/axvr/org.vim/images/photon.png]] |
|
||||
|
||||
|
||||
** Licence
|
||||
|
||||
Copyright (c) 2018–2020, Alex Vear.
|
||||
|
||||
5
TODO
5
TODO
@@ -2,6 +2,11 @@ MAYBE:
|
||||
- Syntax highlight checkboxes and checkbox cookies
|
||||
- Separate syntax group for heading delimiters
|
||||
- Syntax highlight and indent properties
|
||||
- Hightlight concealed TeX the same as normal text
|
||||
- Close inline block using same number of starting delimiters.
|
||||
- Try to get text attributes to stack (e.g. underlined text in bold text)
|
||||
- TeX math fragments in bold, italic, etc. text
|
||||
- Set a max number of lines to search for end delimiter for bold/italic/etc. to 3 (might not be possible)
|
||||
|
||||
UNLIKELY:
|
||||
- Implement Emacs's abbreviations (e.g. '\<s<TAB>')
|
||||
|
||||
100
doc/org.txt
100
doc/org.txt
@@ -7,12 +7,11 @@
|
||||
Welcome to the org.vim user manual. *org* *org.vim* *vim-org* *outline*
|
||||
|
||||
1. Introduction ............................... |org-intro|
|
||||
2. Installation ............................... |org-install|
|
||||
3. Basic syntax ............................... |org-syntax|
|
||||
4. Configuration .............................. |org-configuration|
|
||||
5. Change log ................................. |org-changelog|
|
||||
6. Legal ...................................... |org-legal|
|
||||
7. References ................................. |org-references|
|
||||
2. Usage ...................................... |org-usage|
|
||||
3. Configuration .............................. |org-configuration|
|
||||
4. Change log ................................. |org-changelog|
|
||||
5. Legal ...................................... |org-legal|
|
||||
6. References ................................. |org-references|
|
||||
|
||||
==============================================================================
|
||||
1. INTRODUCTION *org-intro*
|
||||
@@ -25,87 +24,21 @@ Org mode (and Outline mode) files, rather than trying to be a full featured
|
||||
Org mode plugin -- that is what Emacs is for.
|
||||
|
||||
==============================================================================
|
||||
2. INSTALLATION *org-install*
|
||||
|
||||
Installation of Org.vim can be performed by using your favourite Vim
|
||||
plugin/package management tool(s).
|
||||
|
||||
==============================================================================
|
||||
3. BASIC SYNTAX *org-syntax*
|
||||
|
||||
Outline mode isn't used much anymore, one place it is still used is for GNU
|
||||
Emacs release notes. It contains only a single piece of syntax: heading
|
||||
levels denoted by asterisks.
|
||||
>
|
||||
* This is a heading
|
||||
|
||||
The first heading is equivalent to <h1> tags in HTML files.
|
||||
|
||||
** This is a sub-heading
|
||||
|
||||
This heading uses 2 asterisks to denote that it is a below the previous
|
||||
heading.
|
||||
|
||||
*** This is a sub-sub-heading
|
||||
|
||||
* This is another top level heading
|
||||
|
||||
Org.vim supports as many heading levels as you want, and each of these
|
||||
headings can use Vim's folding keys and fold navigation.
|
||||
<
|
||||
Org mode is a huge superset of Outline mode. It uses the same heading syntax
|
||||
mentioned above, but supports many, many more features. Org.vim supports the
|
||||
core subset of Org mode syntax, which should be suitable for most use cases.
|
||||
|
||||
The following is a short overview of essential Org mode syntax.
|
||||
>
|
||||
Org mode supports *bold*, /italic/, _underline_ and +strikethrough+ text
|
||||
which is delimited by asterisks, forward-slashes, underscores, and pluses
|
||||
respectively.
|
||||
|
||||
Paragraphs are separated by empty lines.
|
||||
|
||||
~monospaced~ and =verbatim= text are delimited by equals signs and tilde
|
||||
respectively.
|
||||
|
||||
: Entire lines can be marked as verbatim by prepending with a colon.
|
||||
|
||||
# Comments are lines prepended with a hash.
|
||||
|
||||
This is a link to the Org.vim repository [[https://github.com/axvr/org.vim]]
|
||||
|
||||
This is also a link to the [[https://github.com/axvr/org.vim][Org.vim repository]]
|
||||
where the text "Org.vim repository" is the title of the link (link text).
|
||||
|
||||
- This is an item in a list.
|
||||
- This is another item in the same list.
|
||||
- This is a sub-item for the above list item.
|
||||
- This is a sub-item for the previous list item.
|
||||
+ List items can also be denoted by using a plus sign
|
||||
1. Or by numbering each item.
|
||||
2. Like so.
|
||||
- [ ] List items can also have checkboxes by using open and closing
|
||||
square brackets.
|
||||
- [X] By placing an uppercase X in between the square brackets you can
|
||||
mark the item as "done".
|
||||
<
|
||||
Org.vim supports a lot more of Org mode's vast syntax than was mentioned here.
|
||||
You can learn much more of Org mode's syntax online.
|
||||
2. USAGE *org-usage*
|
||||
|
||||
When Org.vim is installed, files ending with the extension `.org` will
|
||||
automatically have syntax highlighting and folding support enabled. It can
|
||||
also be manually enabled with the following command.
|
||||
automatically have syntax highlighting and folding support enabled. You can
|
||||
also manually enable it by setting the 'filetype' option.
|
||||
>
|
||||
:set filetype=org
|
||||
<
|
||||
Outline mode doesn't have a file extension like Org mode so you will have to
|
||||
enable it manually. This is simply done by opening the file and runing the
|
||||
following command.
|
||||
enable it manually.
|
||||
>
|
||||
:set filetype=outline
|
||||
<
|
||||
==============================================================================
|
||||
4. CONFIGURATION *org-configuration*
|
||||
3. CONFIGURATION *org-configuration*
|
||||
|
||||
*org-folding*
|
||||
|
||||
@@ -195,7 +128,16 @@ To disable italics only in a single buffer, use this instead:
|
||||
let b:org_use_italics = 0
|
||||
<
|
||||
==============================================================================
|
||||
5. CHANGE LOG *org-changelog*
|
||||
4. CHANGE LOG *org-changelog*
|
||||
|
||||
v1.3 [2020-05-02]~
|
||||
|
||||
* Added syntax highlighting of LaTeX math fragments. (Thanks Gavinok!)
|
||||
* Improved detection of inline bold, italic, underline, strike through,
|
||||
verbatim and code syntax.
|
||||
* Grey out "strike through" text by default.
|
||||
* Updated README content and added screenshots.
|
||||
* Removed the "basic Org mode syntax" section from this document.
|
||||
|
||||
v1.2 [2020-02-15]~
|
||||
|
||||
@@ -221,7 +163,7 @@ v1.0 [2019-09-28]~
|
||||
* Initial stable release.
|
||||
|
||||
==============================================================================
|
||||
6. LEGAL *org-legal*
|
||||
5. LEGAL *org-legal*
|
||||
|
||||
Org.vim is based on the work of many other people (far too many to list here),
|
||||
without them org.vim would not have been possible. The most notable of thse
|
||||
|
||||
@@ -18,10 +18,10 @@ endif
|
||||
syntax spell toplevel
|
||||
|
||||
" Bold, underine, italic, etc.
|
||||
syntax region orgItalic matchgroup=orgItalicDelimiter start="[^ \t\k]\@<!\/\k\@=\/\@!" end="\k\@<=\/\@<!\/" keepend contains=@Spell
|
||||
syntax region orgBold matchgroup=orgBoldDelimiter start="[^ \t\k]\@<!\*\k\@=\*\@!" end="\k\@<=\*\@<!\*" keepend contains=@Spell
|
||||
syntax region orgUnderline matchgroup=orgUnderlineDelimiter start="[^ \t\k]\@<!_\k\@=_\@!" end="\k\@<=_\@<!_" keepend contains=@Spell
|
||||
syntax region orgStrikethrough matchgroup=orgStrikethroughDelimiter start="[^ \t\k]\@<!+\k\@=+\@!" end="\k\@<=+\@<!+" keepend contains=@Spell
|
||||
syntax region orgItalic matchgroup=orgItalicDelimiter start="\(^\|[- '"({\]]\)\@<=\/\ze[^ ]" end="^\@!\/\([^\k\/]\|$\)\@=" keepend contains=@Spell
|
||||
syntax region orgBold matchgroup=orgBoldDelimiter start="\(^\|[- '"({\]]\)\@<=\*\ze[^ ]" end="^\@!\*\([^\k\*]\|$\)\@=" keepend contains=@Spell
|
||||
syntax region orgUnderline matchgroup=orgUnderlineDelimiter start="\(^\|[- '"({\]]\)\@<=_\ze[^ ]" end="^\@!_\([^\k_]\|$\)\@=" keepend contains=@Spell
|
||||
syntax region orgStrikethrough matchgroup=orgStrikethroughDelimiter start="\(^\|[- '"({\]]\)\@<=+\ze[^ ]" end="^\@!+\([^\k+]\|$\)\@=" keepend contains=@Spell
|
||||
|
||||
if org#option('org_use_italics', 1)
|
||||
highlight def orgItalic term=italic cterm=italic gui=italic
|
||||
@@ -34,6 +34,8 @@ highlight def orgUnderline term=underline cterm=underline gui=underline
|
||||
highlight def link orgBoldDelimiter orgBold
|
||||
highlight def link orgUnderlineDelimiter orgUnderline
|
||||
|
||||
highlight def link orgStrikethrough Ignore
|
||||
highlight def link orgStrikethroughDelimiter orgStrikethrough
|
||||
|
||||
" Options
|
||||
syntax match orgOption /^\s*#+\w\+.*$/ keepend
|
||||
@@ -45,8 +47,8 @@ highlight def link orgTitle Title
|
||||
|
||||
|
||||
" Code and vervatim text
|
||||
syntax region orgCode matchgroup=orgCodeDelimiter start="[^ \t\k]\@<!\~\k\@=\~\@!" end="\k\@<=\~\@<!\~" keepend
|
||||
syntax region orgVerbatim matchgroup=orgVerbatimDelimiter start="[^ \t\k]\@<!=\k\@==\@!" end="\k\@<==\@<!=" keepend
|
||||
syntax region orgCode matchgroup=orgCodeDelimiter start="\(^\|[- '"({\]]\)\@<=\~\ze[^ ]" end="^\@!\~\([^\k\~]\|$\)\@=" keepend
|
||||
syntax region orgVerbatim matchgroup=orgVerbatimDelimiter start="\(^\|[- '"({\]]\)\@<==\ze[^ ]" end="^\@!=\([^\k=]\|$\)\@=" keepend
|
||||
syntax match orgVerbatim /^\s*: .*$/ keepend
|
||||
syntax region orgVerbatim matchgroup=orgBlockDelimiter start="\c^\s*#+BEGIN_.*" end="\c^\s*#+END_.*" keepend
|
||||
syntax region orgCode matchgroup=orgBlockDelimiter start="\c^\s*#+BEGIN_SRC" end="\c^\s*#+END_SRC" keepend
|
||||
@@ -65,12 +67,12 @@ highlight def link orgComment Comment
|
||||
|
||||
|
||||
" Headings
|
||||
syntax match orgHeading1 /^\s*\*\{1}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
|
||||
syntax match orgHeading2 /^\s*\*\{2}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
|
||||
syntax match orgHeading3 /^\s*\*\{3}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
|
||||
syntax match orgHeading4 /^\s*\*\{4}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
|
||||
syntax match orgHeading5 /^\s*\*\{5}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
|
||||
syntax match orgHeading6 /^\s*\*\{6,}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo
|
||||
syntax match orgHeading1 /^\s*\*\{1}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
|
||||
syntax match orgHeading2 /^\s*\*\{2}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
|
||||
syntax match orgHeading3 /^\s*\*\{3}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
|
||||
syntax match orgHeading4 /^\s*\*\{4}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
|
||||
syntax match orgHeading5 /^\s*\*\{5}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
|
||||
syntax match orgHeading6 /^\s*\*\{6,}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
|
||||
|
||||
syntax match orgTag /:\w\{-}:/ contained contains=orgTag
|
||||
exec 'syntax keyword orgTodo contained ' . join(org#option('org_state_keywords', ['TODO', 'NEXT', 'DONE']), ' ')
|
||||
@@ -111,5 +113,23 @@ highlight def link orgHyperCentre Comment
|
||||
highlight def link orgHyperLeft Comment
|
||||
highlight def link orgHyperRight Comment
|
||||
|
||||
" TeX
|
||||
" Support for both inline and block based embedded latex
|
||||
" eg: $Latex$ for inline or $$ LaTeX $$ for a block
|
||||
" Note:
|
||||
" - $LaTeX$ uses the tex.vim syntax for its conceal properties
|
||||
" - Inspired by https://github.com/vim-pandoc/vim-pandoc-syntax
|
||||
" - the conceal settings follows your g:tex_conceal setting for
|
||||
" more info run :h tex-conceal.
|
||||
" Ref: https://orgmode.org/manual/LaTeX-fragments.html#LaTeX-fragments
|
||||
syntax include @LATEX syntax/tex.vim
|
||||
syntax region orgMath start="\\begin\[.*\]{.*}" end="\\end{.*}" keepend contains=@LATEX
|
||||
syntax region orgMath start="\\begin{.*}" end="\\end{.*}" keepend contains=@LATEX
|
||||
syntax region orgMath start="\\\[" end="\\\]" keepend contains=@LATEX
|
||||
syntax region orgMath start="\\(" end="\\)" keepend contains=@LATEX
|
||||
syntax region orgMath start="\S\@<=\$\|\$\S\@=" end="\S\@<=\$\|\$\S\@=" keepend oneline contains=@LATEX
|
||||
syntax region orgMath start=/\$\$/ end=/\$\$/ keepend contains=@LATEX
|
||||
syntax match orgMath /\\\$/ conceal cchar=$
|
||||
hi def link orgMath String
|
||||
|
||||
let b:current_syntax = 'org'
|
||||
|
||||
Reference in New Issue
Block a user