40 Commits
v1.0 ... master

Author SHA1 Message Date
Alex Vear
9eff5aadf5 Remove .gitattributes file 2025-08-18 04:03:27 +01:00
Alex Vear
b99b967b8f Update screenshots 2025-07-05 03:40:43 +01:00
Alex Vear
3b2c1e3f21 Move samples from samples branch to master branch
Originally-authored-on: 2020-10-26
2025-07-05 03:32:58 +01:00
Alex Vear
1122c1ea37 Remove unused config from .gitattributes 2025-07-05 03:32:19 +01:00
Alex Vear
cc998511b6 Fix referenced file path 2024-06-24 16:30:17 +01:00
Harvey R
79dd8529ea Fix typos (#9) 2022-10-16 21:01:48 +01:00
Tomáš Janoušek
1156d9f34c Add /doc/tags to .gitignore (#8)
This hides it from git status when org.vim is installed directly under `~/.vim` using git clone.
2022-04-30 19:28:56 +01:00
jgart
adf01bb7c9 Fix typo in README.org (#7) 2021-08-21 08:39:55 +01:00
Alex Vear
19babbda11 Update email address and last changed dates 2021-06-15 19:53:34 +01:00
Alex Vear
5e1d9fb5fb Update docs for v1.5 2021-03-11 19:46:15 +00:00
Alex Vear
bab85fda8a Update doc file to mention alphabetical ordered list bullets
Related: #4
2021-03-11 19:39:47 +00:00
Alex Vear
82f7f89e4d Make alphabetical bullets optional (and restrict to single character)
Related: #4
2021-03-11 19:25:57 +00:00
István Donkó
5af62cc9b9 Alphabetical ordered list bullets (#4) 2021-03-11 19:25:40 +00:00
Alex Vear
e146fd2ee3 Mention syntax and filetype options to enable all features 2021-01-19 20:01:11 +00:00
Alex Vear
61f5467543 Add a .gitignore file to ignore samples directory 2020-10-26 20:20:03 +00:00
Alex Vear
0af5ca0324 Add option to disable (La)TeX syntax highlighting 2020-09-08 19:47:57 +01:00
Alex Vear
f50c700b87 Minor wording tweak and TODO file update 2020-09-08 19:47:26 +01:00
Alex Vear
42315ab08c Remove pointless (and inaccurate) paragraph on folding in help doc 2020-08-25 22:45:43 +01:00
Alex Vear
92bab89063 Change log entry for v1.4 and removed some old TODOs 2020-08-24 22:11:56 +01:00
Alex Vear
b5877e40fb Syntax cluster groups and clean up 2020-08-24 21:56:51 +01:00
Alex Vear
263d073f41 Minor wording update to README 2020-08-24 20:54:03 +01:00
Alex Vear
bb7fce3045 Small project maintenance updates (no code changes) 2020-07-18 20:42:46 +01:00
Alex Vear
605b0d0248 Render "strike through" markup as struck through 2020-05-03 14:28:09 +01:00
Alex Vear
510b749e45 Write change log for version 1.3 of org.vim 2020-05-02 21:14:47 +01:00
Alex Vear
211e1b40ba Grey out "strike through" text 2020-05-02 21:04:50 +01:00
Alex Vear
315733a7ed Attempt to make syntax matches closer to Emacs' Org mode 2020-05-02 20:59:51 +01:00
Gavinok
be53a9cb85 Syntax highlight "LaTeX math fragments" and provide conceal options (#1)
"LaTeX math fragments" will now be syntax highlighted in Org mode files.
If `conceallevel=2` is set, the LaTeX symbols will be displayed as their
Unicode equivalents.  E.g.

    $\alpha$ --> α
    \( x^2 \)  --> x²

For more info, see: <https://orgmode.org/manual/LaTeX-fragments.html#LaTeX-fragments>
2020-04-02 22:40:56 +01:00
Alex Vear
66fdf66321 Update README content
Added:
  - installation instructions,
  - screenshots.
2020-03-19 18:45:45 +00:00
Alex Vear
9b329f456b Remove "basic syntax" (Org mode syntax intro) section from docs 2020-03-09 00:39:13 +00:00
Alex Vear
b0b0a13e06 Add v1.2 entry to change log + minor README content updates 2020-02-15 20:25:43 +00:00
Alex Vear
a65f2b1d98 Allow lower case in option keys and dynamic block markers
For example previously only `#+TITLE: Foo` would have syntax highlighted
`Foo` correctly. Now all case variants will work (e.g. `#+title: Foo`
and `#+tItLE: Foo`).

The same has been done to dynamic block markers so now this will also
work:

    #+begin_src lisp
    (if (< 1 2)
      (print "True!")
      (print "False!))
    #+end_src
2020-02-15 20:01:31 +00:00
Alex Vear
6a29a2e961 Better Org mode hyperlink syntax highlighting and disabled link conceal
Org mode hyperlinks are now fully syntax highlighted (similar to
Markdown links).

The `org_conceal_links` option has been removed in favour of using
built-in Vim options to enable concealing (with a short section in the
`doc/org.txt` file on how to do this).  This was done because concealed
text makes navigating "hard-wrapped" documents difficult (especially
when the concealed text is as long as most URLs).
2020-02-15 03:17:49 +00:00
Alex Vear
d671e862e4 Syntax highlight and correctly format/manipulate lists
Adds support for syntax highlighting and formatting both ordered and
unordered lists (excluding unordered lists delimited with `*`, as they
conflict with headings and are generally not recommended).

e.g.

    1. Foo
    2. Bar
       1) Biz
       2) Baz

    - Foo
      - Bar
    + Biz
      + Baz
2020-02-15 02:19:15 +00:00
Alex Vear
b24dfe0762 Remove unnecessary folding rules and update .gitattributes 2020-01-05 12:07:34 +00:00
Alex Vear
a956c48e9c Add change log and fix minor mistakes in docs 2020-01-05 00:52:02 +00:00
Alex Vear
f8d010c672 Significantly improved accuracy of in-line delimiter matching
Previously the following would've caused everything after the `/` to be
italicised (until it found a second `/`).

    foo/bar

The same happened with all of the other in-line delimiters.  This was
clearly not good enough.

The new in-line delimiter matching is now much closer to Emacs' than
before while maintaining Unicode support (as well as Vim can offer).
2020-01-05 00:29:14 +00:00
Alex Vear
ebbc3efac2 Add org_clean_folds option 2020-01-04 20:11:52 +00:00
Alex Vear
d2ecdb4ed3 Rewrite README in Org mode format 2019-12-06 22:26:03 +00:00
Alex Vear
0a98223c0b Fix in-line verbatim and code delimiters 2019-12-06 22:19:45 +00:00
Alex Vear
b8eb8a82d0 Enable italic text rendering by default 2019-10-05 16:59:55 +01:00
18 changed files with 598 additions and 218 deletions

5
.gitattributes vendored
View File

@@ -1,5 +0,0 @@
# See: https://axvr.io/projects/ascribe/
* text=auto eol=lf final-newline trim-trailing-whitespace
*.vim line-length=78 expand-tab tab-stop=4
doc/* line-length=78 expand-tab tab-stop=4
*.md line-length=80 expand-tab tab-stop=4

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
samples/
/doc/tags

View File

@@ -1,31 +0,0 @@
# Org mode and Outline mode syntax highlighting for Vim
Org.vim is a very minimal [Org mode][] and [Outline mode][] plugin for
[Vim](https://www.vim.org) providing only syntax highlighting and folding.
This plugin aims to replicate Vim's [existing Markdown](https://github.com/tpope/vim-markdown/)
editing experience on Org mode (and Outline mode) files, rather than trying to
be a full featured Org mode plugin -- that is what Emacs is for.
Originally created so I would be able to quickly edit and easily read Org mode
files in Vim without any of _the bells and whistles_ of the original Emacs
implementation. It also allowed me use [Orgzly](https://github.com/orgzly/orgzly-android/)
(highly recommended) without worrying about Emacs lock-in.
**Notice**: this project is considered complete by the author. You can still
report bugs and request additional features, however it is unlikely that new
features will be added.
## Licence
Copyright (c) 2018-2019, Alex Vear.
Org.vim is distributed under the same terms as Vim itself.
A copy of the full licence text should have been provided with this extension
in the `LICENCE` file. The license can also be viewed on the
[web](http://vimdoc.sourceforge.net/htmldoc/uganda.html#license) or by invoking
`:help license` from within Vim.
[Outline mode]: https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html
[Org mode]: https://orgmode.org

61
README.org Normal file
View File

@@ -0,0 +1,61 @@
#+TITLE: Org mode and Outline mode syntax highlighting for Vim
Org.vim is a minimal [[https://orgmode.org][Org mode]] and
[[https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html][Outline mode]]
plugin for [[https://www.vim.org][Vim]] providing only syntax highlighting and
folding.
This plugin aims to replicate Vim's [[https://github.com/tpope/vim-markdown/][existing Markdown]]
editing experience on Org mode (and Outline mode) files, rather than trying to
be a full featured Org mode plugin—that is what Emacs is for. Originally
created so I could use [[https://github.com/orgzly/orgzly-android/][Orgzly]]
without worrying about Emacs lock-in.
*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
Make sure the following options are set in your vimrc to enable all
functionality:
#+BEGIN_SRC vim
syntax enable
filetype plugin indent on
#+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/axvr/raider.vim][Raider]] | Unokai (built-in) |
|--------+------------|
| [[https://raw.githubusercontent.com/axvr/org.vim/images/raider.png]] | [[https://raw.githubusercontent.com/axvr/org.vim/images/unokai.png]] |
** Licence
Copyright © 20182021, Alex Vear.
Org.vim is distributed under the same terms as Vim itself.
A copy of the full licence text should have been provided with this extension
in the =LICENCE= file. The license can also be viewed on the
[[http://vimdoc.sourceforge.net/htmldoc/uganda.html#license][web]] or by invoking
~:help license~ from within Vim.

21
TODO
View File

@@ -1,13 +1,12 @@
MAYBE: * Future
- Better link syntax highlighting (more similar to links in vim-markdown) - Syntax highlight checkboxes and checkbox cookies
- Syntax highlight bullets and checkboxes - Separate syntax group for heading delimiters
- Option to enable/disable folding (similar to g:markdown_folding) - Syntax highlight and indent "properties"
- Different syntax group for heading delimiters
- Change log in Vim doc
UNLIKELY: * Maybe
- Add working links
- Maybe utilise Vim-Waikiki and override default Vim mappings
- Open man pages (use ':h :Man')
- Add 'org-store-link' and 'org-insert-link' implementations
- Implement Emacs's abbreviations (e.g. '\<s<TAB>') - Implement Emacs's abbreviations (e.g. '\<s<TAB>')
* Impossible?
- Try to get text attributes to stack (e.g. underlined text in bold text)
- Close inline block using same number of starting delimiters.
- Set a max number of lines to search for end delimiter for bold/italic/etc. to 3 (might not be possible)

View File

@@ -1,12 +1,26 @@
" Helper functions for org.vim " Helper functions for org.vim
" "
" Maintainer: Alex Vear <av@axvr.io> " Maintainer: Alex Vear <alex@vear.uk>
" License: Vim (see `:help license`) " License: Vim (see `:help license`)
" Location: autoload/org.vim " Location: autoload/org.vim
" Website: https://github.com/axvr/org.vim " Website: https://github.com/axvr/org.vim
" Last Change: 2019-09-22 " Last Change: 2020-01-04
" Fallback chain for options. Buffer local --> Global --> default. " Fallback chain for options. Buffer local --> Global --> default.
function org#option(name, default) function org#option(name, default) abort
return get(b:, a:name, get(g:, a:name, a:default)) return get(b:, a:name, get(g:, a:name, a:default))
endfunction endfunction
" Emacs-like fold text.
function org#fold_text() abort
return getline(v:foldstart) . '...'
endfunction
" Check fold depth of a line.
function org#fold_expr()
let l:depth = match(getline(v:lnum), '\(^\*\+\)\@<=\( .*$\)\@=')
if l:depth > 0 && synIDattr(synID(v:lnum, 1, 1), 'name') =~# '\m^o\(rg\|utline\)Heading'
return ">" . l:depth
endif
return "="
endfunction

View File

@@ -7,16 +7,16 @@
Welcome to the org.vim user manual. *org* *org.vim* *vim-org* *outline* Welcome to the org.vim user manual. *org* *org.vim* *vim-org* *outline*
1. Introduction ............................... |org-intro| 1. Introduction ............................... |org-intro|
2. Installation ............................... |org-install| 2. Usage ...................................... |org-usage|
3. Basic syntax ............................... |org-syntax| 3. Configuration .............................. |org-configuration|
4. Configuration .............................. |org-configuration| 4. Change log ................................. |org-changelog|
5. Legal ...................................... |org-legal| 5. Legal ...................................... |org-legal|
6. References ................................. |org-references| 6. References ................................. |org-references|
============================================================================== ==============================================================================
1. INTRODUCTION *org-intro* 1. INTRODUCTION *org-intro*
Org.vim is a very minimal Org mode [2] and Outline mode [1] plugin for Vim Org.vim is a minimal Org mode [2] and Outline mode [1] plugin for Vim
providing only syntax highlighting and folding. providing only syntax highlighting and folding.
This plugin aims to replicate Vim's existing Markdown editing experience on This plugin aims to replicate Vim's existing Markdown editing experience on
@@ -24,88 +24,57 @@ Org mode (and Outline mode) files, rather than trying to be a full featured
Org mode plugin -- that is what Emacs is for. Org mode plugin -- that is what Emacs is for.
============================================================================== ==============================================================================
2. INSTALLATION *org-install* 2. USAGE *org-usage*
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.
When Org.vim is installed, files ending with the extension `.org` will When Org.vim is installed, files ending with the extension `.org` will
automatically have syntax highlighting and folding support enabled. It can automatically have syntax highlighting and folding support enabled. You can
also be manually enabled with the following command. also manually enable it by setting the 'filetype' option.
> >
:set filetype=org :set filetype=org
< <
Outline mode doesn't have a file extension like Org mode so you will have to 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 enable it manually.
following command.
> >
:set filetype=outline :set filetype=outline
< <
Just make sure the following options are set in your vimrc to enable all
functionality offered by this plugin:
>
syntax enable
filetype plugin indent on
<
============================================================================== ==============================================================================
4. CONFIGURATION *org-configuration* 3. CONFIGURATION *org-configuration*
*org-folding*
To control how Org.vim handles folding, just use the standard Vim |folding|
options and commands.
For example, if you want to enable or disable folding, just set 'foldenable'.
>
autocmd FileType org,outline setlocal nofoldenable
<
For more information on folding in Vim, refer to |fold.txt|.
------------------------------------------------------------------------------
*org-conceal-links*
You can tell Vim to conceal links by using the built-in 'conceallevel' and
'concealcursor' options.
For example, you can make Vim collapse an Org mode link to look like it would
within Emacs or a Web browser (i.e. only showing the link title).
>
[[https://www.vim.org][Vim website]] --> Vim website
<
This is achieved with this |autocmd|:
>
autocmd FileType org setlocal conceallevel=2 concealcursor=nc
<
Note: long concealed text can act weird when "hard-wraping" text in Vim.
------------------------------------------------------------------------------
*'b:org_state_keywords'* *'g:org_state_keywords'* *'b:org_state_keywords'* *'g:org_state_keywords'*
Value: list of strings~ Value: list of strings~
Default: ['TODO', 'NEXT', 'DONE']~ Default: ['TODO', 'NEXT', 'DONE']~
@@ -121,78 +90,150 @@ State keywords can be set on specific buffers by using |'b:org_state_keywords'|
rather than |'g:org_state_keywords'|. rather than |'g:org_state_keywords'|.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*'b:org_conceal_links'* *'g:org_conceal_links'* *'b:org_clean_folds'* *'g:org_clean_folds'*
Value: numeric~ Value: numeric~
Default: 1~ Default: 0~
This option changes how Org mode links are rendered. If this option is Vim's default styling for folds is quite ugly. Enabling this option will
enabled, most of the link syntax will be collapsed to look as it would within remove much of the visual noise and suffix the folded heading text with an
Emacs or a web browser; only showing the (underlined) link text. ellipsis (`...`) making folds look the same as they do in Emacs' Org mode (and
Outline mode).
> >
[https://www.vim.org][Vim website] --> Vim website * Heading 1...
< <
When in insert mode with the cursor on that line, Vim will show the full link This option can be enabled for all buffers like so:
syntax. This feature is enabled by default, however the way Vim treats
concealed text can be annoying, so it can be disabled.
To disable for all Org mode files, place the following line in your vimrc:
> >
let g:org_conceal_links = 0 let g:org_clean_folds = 1
< <
To disable for a specific file use this instead: Alternatively, it can be enabled for specific buffers:
> >
let b:org_conceal_links = 0 let b:org_clean_folds = 1
<
If you would like to modify how links are concealed, you can disable this
option, and manually set the |conceallevel| and |concealcursor| options from
an |autocmd| like so.
>
autocmd FileType org setlocal conceallevel=2 concealcursor=nc
< <
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*'b:org_use_italics'* *'g:org_use_italics'* *'b:org_use_italics'* *'g:org_use_italics'*
Value: numeric~ Value: numeric~
Default: 0~ Default: 1~
Display italic org-mode markup (e.g. `/this is italic org-mode markup/`) using Display italic Org mode markup (e.g. `/this is italic Org mode markup/`) using
the italic variant of your font. the italic variant of your font.
Note: this option is disabled by default because some terminals and monospaced As some terminals, terminal multiplexers and monospaced fonts don't support
fonts don't support the use of italics. the use of italics, org.vim provides a mechanism to disable italic text.
To enable this feature in all Org mode files place the following line in your To disable for all Org mode files, place the following line in your vimrc:
vimrc:
> >
let g:org_use_italics = 1 let g:org_use_italics = 0
< <
To enable italics only in a single buffer, use this instead: To disable italics only in a single buffer, use this instead:
> >
let b:org_use_italics = 1 let b:org_use_italics = 0
< <
------------------------------------------------------------------------------
*'b:org_highlight_tex'* *'g:org_highlight_tex'*
Value: numeric~
Default: 1~
Enable/disable syntax highlighting of inline (La)TeX blocks[4]. This option
exists as some Org mode users don't use TeX and may find the highlighting
annoying.
To disable for all Org mode files, place the following line in your vimrc:
>
let g:org_highlight_tex = 0
<
To disable only in a single buffer, use this instead:
>
let b:org_highlight_tex = 0
<
------------------------------------------------------------------------------
*'b:org_list_alphabetical_bullets'* *'g:org_list_alphabetical_bullets'*
Value: numeric~
Default: 0~
Enable/disable alphabetical bullets on ordered lists. This is disabled by
default like in Emacs.
To enable for all Org mode files, place the following line in your vimrc:
>
let g:org_list_alphabetical_bullets = 1
<
To enable only in a single buffer, use this instead:
>
let b:org_list_alphabetical_bullets = 1
<
==============================================================================
4. CHANGE LOG *org-changelog*
v1.5 [2021-03-11]~
* Added support for alphabetical ordered list bullets. (Thanks Isti115!)
* Option to disable (La)TeX highlighting. (See: |g:org_highlight_tex|)
* Doc update.
v1.4 [2020-08-24]~
* Render "strikethrough" text as "struck through".
* Added syntax cluster groups for headings and hyperlinks.
* Made spacing consistent throughout syntax files.
* Minor wording tweaks to README.
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]~
* Improved syntax highlighting of links and turned off link concealing.
* Added |org_conceal_links| doc section on how turn on link concealing.
* Syntax highlight list item bullets and numbers.
* Make Vim correctly format lists without messing up indentation.
* Allow lower case in option keys and dynamic block markers.
* Remove a couple of unnecessary 'fillchars' rules.
* Minor README content update.
v1.1 [2020-01-05]~
* Added documentation on folding configuration (|org-folding|).
* Added 'g:org_clean_folds' option.
* Improved accuracy of in-line delimiter matching.
* Various minor documentation fixes.
* Rewrote README in Org mode.
* Enabled rendering of italics by default.
v1.0 [2019-09-28]~
* Initial stable release.
============================================================================== ==============================================================================
5. 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
works are:
* GNU Emacs' Outline mode [1].
* Carsten Dominik's Org mode [2].
Org.vim is distributed under the same terms as Vim itself. Org.vim is distributed under the same terms as Vim itself.
Copyright (c) 2018-2019, Alex Vear. Copyright (c) 20182021, Alex Vear.
A copy of the full licence text should have been provided with this extension A copy of the full licence text should have been provided with this extension
in the `LICENCE` file. The license can also be viewed on the web [3] or by in the `LICENCE` file. The license can also be viewed on the web [3] or by
viewing the |license| section of the |uganda.txt| help doc from within Vim. viewing the |license| section of the |uganda.txt| help doc from within Vim.
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 these
works are:
* GNU Emacs' Outline mode [1].
* Carsten Dominik's Org mode [2].
============================================================================== ==============================================================================
6. REFERENCES *org-references* 7. REFERENCES *org-references*
[1]: <https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html> [1]: <https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html>
[2]: <https://orgmode.org/> [2]: <https://orgmode.org/>
[3]: <http://vimdoc.sourceforge.net/htmldoc/uganda.html#license> [3]: <http://vimdoc.sourceforge.net/htmldoc/uganda.html#license>
[4]: <https://orgmode.org/manual/LaTeX-fragments.html>
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
vim:et:ts=4:sts=4:sw=4:tw=78:ft=help:norl: vim:et:ts=4:sts=4:sw=4:tw=78:ft=help:norl:

View File

@@ -1,8 +1,8 @@
" Vim filetype detect plugin for GNU Emacs' Org mode " Vim filetype detect plugin for GNU Emacs' Org mode
" "
" Maintainer: Alex Vear <av@axvr.io> " Maintainer: Alex Vear <alex@vear.uk>
" License: Vim (see `:help license`) " License: Vim (see `:help license`)
" Location: ftplugin/org.vim " Location: ftdetect/org.vim
" Website: https://github.com/axvr/org.vim " Website: https://github.com/axvr/org.vim
" Last Change: 2019-09-22 " Last Change: 2019-09-22
" "

View File

@@ -1,30 +1,24 @@
" Vim filetype plugin for GNU Emacs' Org mode " Vim filetype plugin for GNU Emacs' Org mode
" "
" Maintainer: Alex Vear <av@axvr.io> " Maintainer: Alex Vear <alex@vear.uk>
" License: Vim (see `:help license`) " License: Vim (see `:help license`)
" Location: ftplugin/org.vim " Location: ftplugin/org.vim
" Website: https://github.com/axvr/org.vim " Website: https://github.com/axvr/org.vim
" Last Change: 2019-09-22 " Last Change: 2020-02-15
" "
" Reference Specification: Org mode manual " Reference Specification: Org mode manual
" GNU Info: `$ info Org` " GNU Info: `$ info Org`
" Web: <https://orgmode.org/manual/index.html> " Web: <https://orgmode.org/manual/index.html>
setlocal commentstring=#%s setlocal commentstring=#%s
setlocal comments=fb:*,fb:-,fb:+,b:#,b:\:
setlocal formatoptions+=ncqlt
let &l:formatlistpat = '^\s*\(\d\+[.)]\|[+-]\)\s\+'
function! OrgFold() setlocal foldexpr=org#fold_expr()
let l:depth = match(getline(v:lnum), '\(^\*\+\)\@<=\( .*$\)\@=')
if l:depth > 0 && synIDattr(synID(v:lnum, 1, 1), 'name') =~# 'orgHeading'
return ">" . l:depth
endif
return "="
endfunction
setlocal foldexpr=OrgFold()
setlocal foldmethod=expr setlocal foldmethod=expr
" Conceal Org mode link syntax if org#option('org_clean_folds', 0)
if org#option('org_conceal_links', 1) setlocal foldtext=org#fold_text()
setlocal conceallevel=2 setlocal fillchars-=fold:-
setlocal concealcursor=nc
endif endif

View File

@@ -1,22 +1,19 @@
" Vim filetype plugin for GNU Emacs' Outline mode " Vim filetype plugin for GNU Emacs' Outline mode
" "
" Maintainer: Alex Vear <av@axvr.io> " Maintainer: Alex Vear <alex@vear.uk>
" License: Vim (see `:help license`) " License: Vim (see `:help license`)
" Location: ftplugin/outline.vim " Location: ftplugin/outline.vim
" Website: https://github.com/axvr/org.vim " Website: https://github.com/axvr/org.vim
" Last Change: 2019-09-22 " Last Change: 2020-01-04
" "
" Reference Specification: GNU Emacs Manual, section 'Outline Mode' " Reference Specification: GNU Emacs Manual, section 'Outline Mode'
" GNU Info: `$ info Emacs Outline Mode` " GNU Info: `$ info Emacs Outline Mode`
" Web: <https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html> " Web: <https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html>
function! OutlineFold() setlocal foldexpr=org#fold_expr()
let l:depth = match(getline(v:lnum), '\(^\*\+\)\@<=\( .*$\)\@=')
if l:depth > 0 && synIDattr(synID(v:lnum, 1, 1), 'name') =~# 'outlineHeading'
return ">" . l:depth
endif
return "="
endfunction
setlocal foldexpr=OutlineFold()
setlocal foldmethod=expr setlocal foldmethod=expr
if org#option('org_clean_folds', 0)
setlocal foldtext=org#fold_text()
setlocal fillchars-=fold:-
endif

5
samples/links.org Normal file
View File

@@ -0,0 +1,5 @@
[[https://google.com]]
[[https://google.com][Google]]
Hello [[world]] foo.

52
samples/sample1.org Normal file
View File

@@ -0,0 +1,52 @@
#+TITLE: Org-mode sample 1
This is some sample text showing off the org-mode syntax for *bold*, /italic/,
_underlined_ and +strike-through+ text.
Org-mode also has support for single line and block comments.
# This is a single-line comment; denoted by the # at the beginning of the line.
#+BEGIN_COMMENT
This is a block comment, which is denoted through th use of the delimiters
found above and below.
#+END_COMMENT
_this is underline text
this is more_
~verbatim~
: verbatim
asasdf ** __
_hello world_ something __ _hello_
_hello world_ _ _ __
=monospace=
#+BEGIN_SRC file-type
this is a code block
#+END_SRC
#+BEGIN_EXAMPLE
some example text
#+END_EXAMPLE
#+SOME_OPTION: This is an org-mode option
Active date:
<2019-03-02 23:44>
Inactive date:
[2019-03-02 23:44]
[[https://google.com]]
[[https://google.com][Google]]
* Heading 1
** Heading 2
*** Heading 3 :tag:
**** TODO DONE NEXT DOING Heading 4
# vim: set spell :

83
samples/sample2.org Normal file
View File

@@ -0,0 +1,83 @@
#+TITLE: Hello world
[[hello world][something]] <-- this is a link
*bold*
/italic/
+strikethrough+
_underline_
/aasdf *sdfasdf* sadfasdf/
#+BEGIN_COMMENT
hello world this is a comment block
#+END_COMMENT
# comment
1. Foo bar bz baz this is a /not so/ very long line of text in this vim 8.2
buffer.
2. Hello world.
1. Foo
2. Bar
- foo
- bar
- This is *foo*
- A nested listsdf
+ Using different asdfasd
+ delimiters /fee/
+ Foo bar bz baz this is a /not so/ very long line of text in this vim 8.2 buffer.
+ [ ] This is a checkbox.
+ [ ] Nested checkbox.
+ [X] This is a checked checkbox with really long text to test how wrapping
works.
+ [ ] Something asdf asdf asdf adfs dsf asdf sadf sadf sadf saf sdf asdf sdf
asdf sadf
# * foo not a list item
# * Is a list item
| Table | Column 1 |
|-------+----------|
| item | _foo_ bar |
<2003-09-16 Tue 12:00>--<2003-09-16 Tue 12:00>
<2003-09-16 Tue>--<2003-09-16 Tue>
[2003-09-16 Tue]
[2003-09-16 Tue 12:00]--[2003-09-16 Tue 12:00]
<2003-09-16 Tue>
<2003-09-16 Sáb>
<2003-09-16 Tue 12:00-12:30>
#+asdasdsdfasdf: asdfasd
~verbatim~
: verbatim
=monospace=
#+BEGIN_SRC
asdfasdfasdf
#+END_SRC
* Hello world
** Foo bar
*** Something :something_else:
******** asdfasdf
hello world
**** Hello world
something

45
samples/sample3.org Normal file
View File

@@ -0,0 +1,45 @@
#+TITLE: This is a title
#+Author: Foo bar
* Heading 1
This is *bold* text.
This is /italic/ text.
This is _underlined_ text.
This is +strikethrough+ text.
This is ~monospace~ text.
This is =verbatim= text.
Link to [[https://www.orgmode.org][Org mode]] website.
Get Org.vim from here: [[https://github.com/axvr/org.vim]]
# Comment
: Verbatim
#+BEGIN_SRC lisp
(if (> 1 2)
(print "True")
(print "False"))
#+END_SRC
#+BEGIN_COMMENT
This is a comment block.
#+END_COMMENT
- Foo.
- Bar.
+ Biz.
1. Hello.
2. World.
+ Baz.
1) Org,
2) Mode.
Time stamps: [2020-03-01] <2020-02-29>
** TODO Heading 2
*** Heading 3 :heading:tags:
**** Heading 4
and so on...

36
samples/tex.org Normal file
View File

@@ -0,0 +1,36 @@
#+TITLE: Experiment with TeX in Org mode
#+OPTIONS: tex:t
Hello $\alpha$.
$$\alpha$$
* Foo $\alpha$
*foo $\alpha$ bar*
\neg
a \begin{equation} % arbitrary environments,
x=\sqrt{b} % even tables, figures
\end{equation} % etc
\begin{equation} % arbitrary environments,
x=\sqrt{b} % even tables, figures
\end{equation} % etc
\begin{equation} % arbitrary environments,
x=\sqrt{b} % even tables, figures
\end{equation} % etc
\begin[asdf]{equation2} % arbitrary environments,
x=\sqrt{b} % even tables, figures
\end{equation2} % etc
If $a^2=b$ and \( b=2 \), then the solution must be
either $$ a=+\sqrt{2} $$ or \[ a=-\sqrt{2} \].
$$
a+=\alpha
$$

46
samples/unusual.org Normal file
View File

@@ -0,0 +1,46 @@
Hello /world/ foo/bar/asdf biz/baz//buz/
~foo~
*hello*
/_asdf/
a/foo/
-/foo/
#/foo/
@/foo/
:/foo/
_/foo/_
+/foo/+
3/foo/
£/foo/
;/foo/
,/foo/
./foo/
*hello*
/asdföasdf/
/öasdf/
hello /foo
bar/
*Foo. Bar.*
Biz
Org mode will match unconditionally from first =*= (must be preceded by [- '"(] ) to first one with [ \n\r-'")[}] on the right side.
*Hello
asdf world*
Hello 123468-qwertyuiop[]\aasdfgghjjk;/.,mzxcg!@#$%^&*(*Foo=\\\\]][][[[*asdf]* [asdf*
Bar
*Helloa sdf world
asdf ** dasf
Hello 123468-qwertyuiop[]\aasdfgghjjk;'"/.,mzxcg!@#$%^&*(*Foo=\\\\]][ _asd_ [[*asdf]"**[a*sdf*/
Bar

View File

@@ -1,10 +1,10 @@
" Vim syntax file for GNU Emacs' Org mode " Vim syntax file for GNU Emacs' Org mode
" "
" Maintainer: Alex Vear <av@axvr.io> " Maintainer: Alex Vear <alex@vear.uk>
" License: Vim (see `:help license`) " License: Vim (see `:help license`)
" Location: syntax/org.vim " Location: syntax/org.vim
" Website: https://github.com/axvr/org.vim " Website: https://github.com/axvr/org.vim
" Last Change: 2019-09-28 " Last Change: 2021-03-11
" "
" Reference Specification: Org mode manual " Reference Specification: Org mode manual
" GNU Info: `$ info Org` " GNU Info: `$ info Org`
@@ -17,13 +17,14 @@ endif
" Enable spell check for non syntax highlighted text " Enable spell check for non syntax highlighted text
syntax spell toplevel syntax spell toplevel
" Bold, underine, italic, etc.
syntax region orgItalic matchgroup=orgItalicDelimiter start="\/\S\@=\/\@!" end="\S\@<=\/\@<!\/" keepend contains=@Spell
syntax region orgBold matchgroup=orgBoldDelimiter start="\*\S\@=\*\@!" end="\S\@<=\*\@<!\*" keepend contains=@Spell
syntax region orgUnderline matchgroup=orgUnderlineDelimiter start="_\S\@=_\@!" end="\S\@<=_\@<!_" keepend contains=@Spell
syntax region orgStrikethrough matchgroup=orgStrikethroughDelimiter start="+\S\@=+\@!" end="\S\@<=+\@<!+" keepend contains=@Spell
if org#option('org_use_italics', 0) " Bold, underine, italic, etc.
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 highlight def orgItalic term=italic cterm=italic gui=italic
else else
highlight def orgItalic term=none cterm=none gui=none highlight def orgItalic term=none cterm=none gui=none
@@ -31,27 +32,27 @@ endif
highlight def orgBold term=bold cterm=bold gui=bold highlight def orgBold term=bold cterm=bold gui=bold
highlight def orgUnderline term=underline cterm=underline gui=underline highlight def orgUnderline term=underline cterm=underline gui=underline
highlight def link orgItalicDelimiter orgItalic highlight def orgStrikethrough term=strikethrough cterm=strikethrough gui=strikethrough
highlight def link orgBoldDelimiter orgBold highlight def link orgBoldDelimiter orgBold
highlight def link orgUnderlineDelimiter orgUnderline highlight def link orgUnderlineDelimiter orgUnderline
highlight def link orgStrikethroughDelimiter orgStrikethrough
" Options " Options
syntax match orgOption /^\s*#+\w\+.*$/ keepend syntax match orgOption /^\s*#+\w\+.*$/ keepend
syntax region orgTitle matchgroup=orgOption start="^\s*#+TITLE:\s*" end="$" keepend oneline syntax region orgTitle matchgroup=orgOption start="\c^\s*#+TITLE:\s*" end="$" keepend oneline
highlight def link orgBlockDelimiter SpecialComment highlight def link orgBlockDelimiter SpecialComment
highlight def link orgOption SpecialComment highlight def link orgOption SpecialComment
highlight def link orgTitle Title highlight def link orgTitle Title
" Code and vervatim text " Code and vervatim text
syntax region orgCode matchgroup=orgCodeDelimiter start="=\S\@==\@!" end="\S\@<==\@<!=" keepend syntax region orgCode matchgroup=orgCodeDelimiter start="\(^\|[- '"({\]]\)\@<=\~\ze[^ ]" end="^\@!\~\([^\k\~]\|$\)\@=" keepend
syntax region orgVerbatim matchgroup=orgVerbatimDelimiter start="\~\S\@=\~\@!" end="\S\@<=\~\@<!\~" keepend syntax region orgVerbatim matchgroup=orgVerbatimDelimiter start="\(^\|[- '"({\]]\)\@<==\ze[^ ]" end="^\@!=\([^\k=]\|$\)\@=" keepend
syntax match orgVerbatim /^\s*: .*$/ keepend syntax match orgVerbatim /^\s*: .*$/ keepend
syntax region orgVerbatim matchgroup=orgBlockDelimiter start="^\s*#+BEGIN_.*" end="^\s*#+END_.*" keepend syntax region orgVerbatim matchgroup=orgBlockDelimiter start="\c^\s*#+BEGIN_.*" end="\c^\s*#+END_.*" keepend
syntax region orgCode matchgroup=orgBlockDelimiter start="^\s*#+BEGIN_SRC" end="^\s*#+END_SRC" keepend syntax region orgCode matchgroup=orgBlockDelimiter start="\c^\s*#+BEGIN_SRC" end="\c^\s*#+END_SRC" keepend
syntax region orgCode matchgroup=orgBlockDelimiter start="^\s*#+BEGIN_EXAMPLE" end="^\s*#+END_EXAMPLE" keepend syntax region orgCode matchgroup=orgBlockDelimiter start="\c^\s*#+BEGIN_EXAMPLE" end="\c^\s*#+END_EXAMPLE" keepend
highlight def link orgVerbatim Identifier highlight def link orgVerbatim Identifier
highlight def link orgVerbatimDelimiter orgVerbatim highlight def link orgVerbatimDelimiter orgVerbatim
@@ -61,17 +62,19 @@ highlight def link orgCodeDelimiter orgCode
" Comments " Comments
syntax match orgComment /^\s*#\s\+.*$/ keepend syntax match orgComment /^\s*#\s\+.*$/ keepend
syntax region orgComment matchgroup=orgBlockDelimiter start="^\s*#+BEGIN_COMMENT" end="^\s*#+END_COMMENT" keepend syntax region orgComment matchgroup=orgBlockDelimiter start="\c^\s*#+BEGIN_COMMENT" end="\c^\s*#+END_COMMENT" keepend
highlight def link orgComment Comment highlight def link orgComment Comment
" Headings " Headings
syntax match orgHeading1 /^\s*\*\{1}\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 syntax match orgHeading2 /^\s*\*\{2}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
syntax match orgHeading3 /^\s*\*\{3}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo syntax match orgHeading3 /^\s*\*\{3}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
syntax match orgHeading4 /^\s*\*\{4}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo syntax match orgHeading4 /^\s*\*\{4}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
syntax match orgHeading5 /^\s*\*\{5}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo syntax match orgHeading5 /^\s*\*\{5}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
syntax match orgHeading6 /^\s*\*\{6,}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo syntax match orgHeading6 /^\s*\*\{6,}\s\+.*$/ keepend contains=@Spell,orgTag,orgTodo,orgMath
syntax cluster orgHeadingGroup contains=orgHeading1,orgHeading2,orgHeading3,orgHeading4,orgHeading5,orgHeading6
syntax match orgTag /:\w\{-}:/ contained contains=orgTag syntax match orgTag /:\w\{-}:/ contained contains=orgTag
exec 'syntax keyword orgTodo contained ' . join(org#option('org_state_keywords', ['TODO', 'NEXT', 'DONE']), ' ') exec 'syntax keyword orgTodo contained ' . join(org#option('org_state_keywords', ['TODO', 'NEXT', 'DONE']), ' ')
@@ -86,6 +89,16 @@ highlight def link orgTodo Todo
highlight def link orgTag Type highlight def link orgTag Type
" Lists
syntax match orgUnorderedListMarker "^\s*[-+]\s\+" keepend contains=@Spell
syntax match orgOrderedListMarker "^\s*\d\+[.)]\s\+" keepend contains=@Spell
if org#option('org_list_alphabetical_bullets', 0)
syntax match orgOrderedListMarker "^\s*\a[.)]\s\+" keepend contains=@Spell
endif
highlight def link orgUnorderedListMarker Statement
highlight def link orgOrderedListMarker orgUnorderedListMarker
" Timestamps " Timestamps
syntax match orgTimestampActive /<\d\{4}-\d\{2}-\d\{2}.\{-}>/ keepend syntax match orgTimestampActive /<\d\{4}-\d\{2}-\d\{2}.\{-}>/ keepend
syntax match orgTimestampInactive /\[\d\{4}-\d\{2}-\d\{2}.\{-}\]/ keepend syntax match orgTimestampInactive /\[\d\{4}-\d\{2}-\d\{2}.\{-}\]/ keepend
@@ -97,8 +110,32 @@ highlight def link orgTimestampInactive Comment
syntax match orgHyperlink /\[\{2}\([^][]\{-1,}\]\[\)\?[^][]\{-1,}\]\{2}/ containedin=ALL contains=orgHyperLeft,orgHyperRight,orgHyperURL syntax match orgHyperlink /\[\{2}\([^][]\{-1,}\]\[\)\?[^][]\{-1,}\]\{2}/ containedin=ALL contains=orgHyperLeft,orgHyperRight,orgHyperURL
syntax match orgHyperLeft /\[\{2}/ contained conceal syntax match orgHyperLeft /\[\{2}/ contained conceal
syntax match orgHyperRight /\]\{2}/ contained conceal syntax match orgHyperRight /\]\{2}/ contained conceal
syntax match orgHyperURL /[^][]\{-1,}\]\[/ contained conceal syntax match orgHyperURL /[^][]\{-1,}\]\[/ contains=orgHyperCentre contained conceal
syntax match orgHyperCentre /\]\[/ contained conceal
syntax cluster orgHyperlinkBracketsGroup contains=orgHyperLeft,orgHyperRight,orgHyperCentre
syntax cluster orgHyperlinkGroup contains=orgHyperlink,orgHyperURL,orgHyperlinkBracketsGroup
highlight def link orgHyperlink Underlined highlight def link orgHyperlink Underlined
highlight def link orgHyperURL String
highlight def link orgHyperCentre Comment
highlight def link orgHyperLeft Comment
highlight def link orgHyperRight Comment
" TeX
" Ref: https://orgmode.org/manual/LaTeX-fragments.html
if org#option('org_highlight_tex', 1)
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=$
highlight def link orgMath String
endif
let b:current_syntax = 'org' let b:current_syntax = 'org'

View File

@@ -1,10 +1,10 @@
" Vim syntax file for GNU Emacs' Outline mode " Vim syntax file for GNU Emacs' Outline mode
" "
" Maintainer: Alex Vear <av@axvr.io> " Maintainer: Alex Vear <alex@vear.uk>
" License: Vim (see `:help license`) " License: Vim (see `:help license`)
" Location: syntax/outline.vim " Location: syntax/outline.vim
" Website: https://github.com/axvr/org.vim " Website: https://github.com/axvr/org.vim
" Last Change: 2019-09-28 " Last Change: 2020-08-24
" "
" Reference Specification: GNU Emacs Manual, section 'Outline Mode' " Reference Specification: GNU Emacs Manual, section 'Outline Mode'
" GNU Info: `$ info Emacs Outline Mode` " GNU Info: `$ info Emacs Outline Mode`
@@ -17,6 +17,7 @@ endif
" Enable spell check for non syntax highlighted text " Enable spell check for non syntax highlighted text
syntax spell toplevel syntax spell toplevel
" Headings " Headings
syntax match outlineHeading1 /^\s*\*\{1}\s\+.*$/ keepend contains=@Spell syntax match outlineHeading1 /^\s*\*\{1}\s\+.*$/ keepend contains=@Spell
syntax match outlineHeading2 /^\s*\*\{2}\s\+.*$/ keepend contains=@Spell syntax match outlineHeading2 /^\s*\*\{2}\s\+.*$/ keepend contains=@Spell
@@ -25,6 +26,8 @@ syntax match outlineHeading4 /^\s*\*\{4}\s\+.*$/ keepend contains=@Spell
syntax match outlineHeading5 /^\s*\*\{5}\s\+.*$/ keepend contains=@Spell syntax match outlineHeading5 /^\s*\*\{5}\s\+.*$/ keepend contains=@Spell
syntax match outlineHeading6 /^\s*\*\{6,}\s\+.*$/ keepend contains=@Spell syntax match outlineHeading6 /^\s*\*\{6,}\s\+.*$/ keepend contains=@Spell
syntax cluster outlineHeadingGroup contains=outlineHeading1,outlineHeading2,outlineHeading3,outlineHeading4,outlineHeading5,outlineHeading6
hi def link outlineHeading1 Title hi def link outlineHeading1 Title
hi def link outlineHeading2 outlineHeading1 hi def link outlineHeading2 outlineHeading1
hi def link outlineHeading3 outlineHeading2 hi def link outlineHeading3 outlineHeading2
@@ -32,4 +35,5 @@ hi def link outlineHeading4 outlineHeading3
hi def link outlineHeading5 outlineHeading4 hi def link outlineHeading5 outlineHeading4
hi def link outlineHeading6 outlineHeading5 hi def link outlineHeading6 outlineHeading5
let b:current_syntax = 'outline' let b:current_syntax = 'outline'