aboutsummaryrefslogtreecommitdiff
path: root/vim/.vim/plugged/vimwiki
diff options
context:
space:
mode:
authorKumar Damani <damani.kumar@gmail.com>2019-05-16 22:16:09 +0000
committerKumar Damani <damani.kumar@gmail.com>2019-05-16 22:16:09 +0000
commit12564a8f73ebe721d415a04d36f7aac7091bea9d (patch)
treebbc8a6bf6aabe832b3ee435eaa605dcac655fc5f /vim/.vim/plugged/vimwiki
parent1241da7ab7a4e91248391ee9b045267bcbbeee4f (diff)
updating vimrc
Diffstat (limited to 'vim/.vim/plugged/vimwiki')
-rw-r--r--vim/.vim/plugged/vimwiki/LICENSE22
-rw-r--r--vim/.vim/plugged/vimwiki/README-cn.md161
-rw-r--r--vim/.vim/plugged/vimwiki/README.md170
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/base.vim2046
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/customwiki2html.sh62
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/default.tpl11
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/diary.vim322
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/html.vim1666
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/lst.vim1677
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/markdown_base.vim150
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/path.vim183
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/style.css82
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/tags.vim342
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/tbl.vim703
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/u.vim72
-rw-r--r--vim/.vim/plugged/vimwiki/autoload/vimwiki/vars.vim711
-rw-r--r--vim/.vim/plugged/vimwiki/doc/screenshot_1.pngbin29362 -> 0 bytes
-rw-r--r--vim/.vim/plugged/vimwiki/doc/screenshot_2.pngbin49959 -> 0 bytes
-rw-r--r--vim/.vim/plugged/vimwiki/doc/tags214
-rw-r--r--vim/.vim/plugged/vimwiki/doc/vimwiki.txt3238
-rw-r--r--vim/.vim/plugged/vimwiki/ftplugin/vimwiki.vim699
-rw-r--r--vim/.vim/plugged/vimwiki/plugin/vimwiki.vim396
-rw-r--r--vim/.vim/plugged/vimwiki/syntax/vimwiki.vim487
-rw-r--r--vim/.vim/plugged/vimwiki/syntax/vimwiki_default.vim110
-rw-r--r--vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown.vim104
-rw-r--r--vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim194
-rw-r--r--vim/.vim/plugged/vimwiki/syntax/vimwiki_media.vim85
27 files changed, 0 insertions, 13907 deletions
diff --git a/vim/.vim/plugged/vimwiki/LICENSE b/vim/.vim/plugged/vimwiki/LICENSE
deleted file mode 100644
index cdf8546..0000000
--- a/vim/.vim/plugged/vimwiki/LICENSE
+++ /dev/null
@@ -1,22 +0,0 @@
-MIT License
-
-Copyright (c) 2008-2010 Maxim Kim
- 2013-2017 Daniel Schemala
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/vim/.vim/plugged/vimwiki/README-cn.md b/vim/.vim/plugged/vimwiki/README-cn.md
deleted file mode 100644
index 60574ae..0000000
--- a/vim/.vim/plugged/vimwiki/README-cn.md
+++ /dev/null
@@ -1,161 +0,0 @@
-VimWiki —— Vim 个人 Wiki 插件
-==============================================================================
-
-[English](README.md)
-
-![screenshot1](doc/screenshot_1.png)
-![screenshot2](doc/screenshot_2.png) *
-
-介绍
-------------------------------------------------------------------------------
-
-Vimwiki 是 Vim 中的个人 Wiki —— 一组链接起来的、有独特语法高亮的文本文件。
-
-通过 Vimwiki,你可以:
-
- * 组织笔记和想法
- * 管理待办事项
- * 编写文档
- * 坚持写日记
- * 将这一切导出成 HTML 网页
-
-马上开始!按下 `<Leader>ww`(通常是 `\ww`)进入作为目录页的 wiki 文件,这个文件默认存放在 `~/vimwiki/index.wiki`。
-
-在该文件中输入以下示例:
-
- = 我的个人知识库 =
- * 任务列表 -- _昨天_ 就该完成的事!!!
- * Gutenberg 计划 -- 好书给我力量。
- * 草稿 -- 临时记录一些东西。
-
-把光标移到 `任务` 二字上,按 Enter(回车)创建链接。按下后,`任务`二字会变成 `[[任务]]` —— 这是一个 Vimwiki 链接。再次按 Enter 即可进入这个链接(打开新的 wiki 文件)。编辑这个新文件,保存,然后按 Backspace(退格)就能回到目录页。
-
-如果 Vimwiki 链接长度不止一个单词(指的是英文单词),只需在 Visual 模式选择这段文本后按 Enter 即可。用上面的 `Gutenberg 计划` 试试吧。最终结果是这样:
-
- = 我的个人知识库 =
- * [[任务列表]] -- _昨天_ 就该完成的事!!!
- * [[Gutenberg 计划]] -- 好书给我力量。
- * 草稿 -- 临时记录一些东西。
-
-
-基本标记
-------------------------------------------------------------------------------
-
- = 一级标题 =
- == 二级标题 ==
- === 三级标题 ===
-
-
- *bold* -- 粗体文本
- _italic_ -- 斜体文本
- (应用于句中的汉字文本时,必须在标记前后加空格,例如:一段 *中文* 文本)
-
- [[wiki link]] -- wiki 链接
- [[wiki link|description]] -- 带有描述文本的 wiki 链接
-
-
-列表:
-
- * bullet list item 1(无编号列表)
- - bullet list item 2
- - bullet list item 3
- * bullet list item 4
- * bullet list item 5
- * bullet list item 6
- * bullet list item 7
- - bullet list item 8
- - bullet list item 9
-
- 1. numbered list item 1(有编号列表)
- 2. numbered list item 2
- a) numbered list item 3
- b) numbered list item 4
-
-
-更多格式说明,请阅 `:h vimwiki-syntax`
-
-
-键位绑定
-------------------------------------------------------------------------------
-
-normal 模式:
-
- * `<Leader>ww` -- 打开默认的 wiki 目录文件
- * `<Leader>wt` -- 在新标签(Tab)中打开 wiki 目录文件
- * `<Leader>ws` -- 在多个 wiki 中选择并打开该 wiki 的目录文件
- * `<Leader>wd` -- 删除当前 wiki 文件
- * `<Leader>wr` -- 重命名当前 wiki 文件
- * `<Enter>` -- 创建或打开 wiki 链接
- * `<Shift-Enter>` -- 先上下分屏再打开 wiki 链接(若非链接则先创建)
- * `<Ctrl-Enter>` -- 先左右分屏再打开 wiki 链接(若非链接则先创建)
- * `<Backspace>` -- 返回之前浏览的 wiki 文件
- * `<Tab>` -- 跳到本文件中下一个 wiki 链接
- * `<Shift-Tab>` -- 跳到本文件中上一个 wiki 链接
-
-更多快捷键说明,请阅 `:h vimwiki-mappings`
-
-
-命令
-------------------------------------------------------------------------------
-
- * `:Vimwiki2HTML` -- 将当前 wiki 文件转换成 HTML 网页
- * `:VimwikiAll2HTML` -- 把所有 wiki 文件转换成 HTML 网页
- * `:help vimwiki-commands` -- 显示全部命令
-
-
-安装
-==============================================================================
-
-准备工作
-------------------------------------------------------------------------------
-
-确保在 `vimrc` 中加入了以下设置:
-
- set nocompatible
- filetype plugin on
- syntax on
-
-没有这些设置,Vimwiki 将无法正常工作。
-
-通过 [Vim packages](http://vimhelp.appspot.com/repeat.txt.html#packages) 安装(Vim 7.4.1528 后)
-------------------------------------------------------------------------------
-
- git clone https://github.com/vimwiki/vimwiki.git ~/.vim/pack/plugins/start/vimwiki
-
-通过 [Pathogen](http://www.vim.org/scripts/script.php?script_id=2332) 安装
-------------------------------------------------------------------------------
-
- cd ~/.vim
- mkdir bundle
- cd bundle
- git clone https://github.com/vimwiki/vimwiki.git
-
-通过 [Vim-Plug](https://github.com/junegunn/vim-plug) 安装
-------------------------------------------------------------------------------
-
-在 `vimrc` 中加入以下插件设置:
-
- Plug 'vimwiki/vimwiki', { 'branch': 'dev' }
-
-然后运行 `:PlugInstall`。
-
-通过 [Vundle](https://github.com/VundleVim/Vundle.vim) 安装
-------------------------------------------------------------------------------
-
-在 `vimrc` 中加入 `Plugin 'vimwiki/vimwiki'`,然后执行:
-
- vim +PluginInstall +qall
-
-或者下载 [zip 压缩包](https://github.com/vimwiki/vimwiki/archive/master.zip)然后解压到 `~/.vim/bundle/` 目录下。
-
-安装后,启动 Vim 并执行 `:Helptags` 以及 `:help vimwiki`,检查安装是否成功。
-
-
-获取帮助
-==============================================================================
-
-遇到问题?在 Freenode 的 IRC 频道 `#vimwiki`([网页聊天](https://webchat.freenode.net/?channels=#vimwiki))提问,或者发送问题到[邮件列表](https://groups.google.com/forum/#!forum/vimwiki)上吧。
-
-
-----
-\* 前面截图中用的是 [solarized 配色方案](https://github.com/altercation/vim-colors-solarized)以及 [lightline](https://github.com/itchyny/lightline.vim) 插件。
diff --git a/vim/.vim/plugged/vimwiki/README.md b/vim/.vim/plugged/vimwiki/README.md
deleted file mode 100644
index a8a203a..0000000
--- a/vim/.vim/plugged/vimwiki/README.md
+++ /dev/null
@@ -1,170 +0,0 @@
-A Personal Wiki For Vim
-==============================================================================
-
-[中文](README-cn.md)
-
-![screenshot1](doc/screenshot_1.png)
-![screenshot2](doc/screenshot_2.png) *
-
-Intro
-------------------------------------------------------------------------------
-
-Vimwiki is a personal wiki for Vim -- a number of linked text files that have
-their own syntax highlighting.
-
-With Vimwiki you can:
-
- * organize notes and ideas
- * manage todo-lists
- * write documentation
- * maintain a diary
- * export everything to HTML
-
-To do a quick start press `<Leader>ww` (this is usually `\ww`) to go to your index
-wiki file. By default it is located in `~/vimwiki/index.wiki`.
-
-Feed it with the following example:
-
- = My knowledge base =
- * Tasks -- things to be done _yesterday_!!!
- * Project Gutenberg -- good books are power.
- * Scratchpad -- various temporary stuff.
-
-Place your cursor on `Tasks` and press Enter to create a link. Once pressed,
-`Tasks` will become `[[Tasks]]` -- a Vimwiki link. Press Enter again to
-open it. Edit the file, save it, and then press Backspace to jump back to your
-index.
-
-A Vimwiki link can be constructed from more than one word. Just visually
-select the words to be linked and press Enter. Try it with `Project Gutenberg`.
-The result should look something like:
-
- = My knowledge base =
- * [[Tasks]] -- things to be done _yesterday_!!!
- * [[Project Gutenberg]] -- good books are power.
- * Scratchpad -- various temporary stuff.
-
-
-Basic Markup
-------------------------------------------------------------------------------
-
- = Header1 =
- == Header2 ==
- === Header3 ===
-
-
- *bold* -- bold text
- _italic_ -- italic text
-
- [[wiki link]] -- wiki link
- [[wiki link|description]] -- wiki link with description
-
-
-Lists:
-
- * bullet list item 1
- - bullet list item 2
- - bullet list item 3
- * bullet list item 4
- * bullet list item 5
- * bullet list item 6
- * bullet list item 7
- - bullet list item 8
- - bullet list item 9
-
- 1. numbered list item 1
- 2. numbered list item 2
- a) numbered list item 3
- b) numbered list item 4
-
-
-For other syntax elements, see `:h vimwiki-syntax`
-
-
-Key bindings
-------------------------------------------------------------------------------
-
-normal mode:
-
- * `<Leader>ww` -- Open default wiki index file.
- * `<Leader>wt` -- Open default wiki index file in a new tab.
- * `<Leader>ws` -- Select and open wiki index file.
- * `<Leader>wd` -- Delete wiki file you are in.
- * `<Leader>wr` -- Rename wiki file you are in.
- * `<Enter>` -- Follow/Create wiki link
- * `<Shift-Enter>` -- Split and follow/create wiki link
- * `<Ctrl-Enter>` -- Vertical split and follow/create wiki link
- * `<Backspace>` -- Go back to parent(previous) wiki link
- * `<Tab>` -- Find next wiki link
- * `<Shift-Tab>` -- Find previous wiki link
-
-For more keys, see `:h vimwiki-mappings`
-
-
-Commands
-------------------------------------------------------------------------------
-
- * `:Vimwiki2HTML` -- Convert current wiki link to HTML
- * `:VimwikiAll2HTML` -- Convert all your wiki links to HTML
- * `:help vimwiki-commands` -- list all commands
-
-
-Installation
-==============================================================================
-
-Prerequisites
-------------------------------------------------------------------------------
-
-Make sure you have these settings in your vimrc file:
-
- set nocompatible
- filetype plugin on
- syntax on
-
-Without them Vimwiki will not work properly.
-
-
-Installation using [Vim packages](http://vimhelp.appspot.com/repeat.txt.html#packages) (since Vim 7.4.1528)
-------------------------------------------------------------------------------
-
- git clone https://github.com/vimwiki/vimwiki.git ~/.vim/pack/plugins/start/vimwiki
-
-Installation using [Pathogen](http://www.vim.org/scripts/script.php?script_id=2332)
-------------------------------------------------------------------------------
-
- cd ~/.vim
- mkdir bundle
- cd bundle
- git clone https://github.com/vimwiki/vimwiki.git
-
-Installation using [Vim-Plug](https://github.com/junegunn/vim-plug)
-------------------------------------------------------------------------------
-
-Add the following to the plugin-configuration in your vimrc:
-
- Plug 'vimwiki/vimwiki'
-
-Then run `:PlugInstall`.
-
-Installation using [Vundle](https://github.com/VundleVim/Vundle.vim)
-------------------------------------------------------------------------------
-
-Add `Plugin 'vimwiki/vimwiki'` to your vimrc file and run
-
- vim +PluginInstall +qall
-
-Or download the [zip archive](https://github.com/vimwiki/vimwiki/archive/master.zip) and extract it in `~/.vim/bundle/`
-
-Then launch Vim, run `:Helptags` and then `:help vimwiki` to verify it was installed.
-
-
-Getting help
-==============================================================================
-
-Have a question? Visit the IRC channel `#vimwiki` on Freenode ([webchat](https://webchat.freenode.net/?channels=#vimwiki))
-or post to the [mailing list](https://groups.google.com/forum/#!forum/vimwiki).
-
-
-----
-\* Screenshots made with the [solarized colorscheme](https://github.com/altercation/vim-colors-solarized)
-and [lightline](https://github.com/itchyny/lightline.vim)
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/base.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/base.vim
deleted file mode 100644
index 2bb8c4d..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/base.vim
+++ /dev/null
@@ -1,2046 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Desc: Basic functionality
-" Home: https://github.com/vimwiki/vimwiki/
-
-if exists("g:loaded_vimwiki_auto") || &cp
- finish
-endif
-let g:loaded_vimwiki_auto = 1
-
-
-function! s:safesubstitute(text, search, replace, mode)
- " Substitute regexp but do not interpret replace
- let escaped = escape(a:replace, '\&')
- return substitute(a:text, a:search, escaped, a:mode)
-endfunction
-
-
-function! s:vimwiki_get_known_syntaxes()
- " Getting all syntaxes that different wikis could have
- let syntaxes = {}
- let syntaxes['default'] = 1
- for wiki_nr in range(vimwiki#vars#number_of_wikis())
- let wiki_syntax = vimwiki#vars#get_wikilocal('syntax', wiki_nr)
- let syntaxes[wiki_syntax] = 1
- endfor
- " also consider the syntaxes from g:vimwiki_ext2syntax
- for syn in values(vimwiki#vars#get_global('ext2syntax'))
- let syntaxes[syn] = 1
- endfor
- return keys(syntaxes)
-endfunction
-
-
-function! vimwiki#base#file_pattern(files)
- " Get search regex from glob()
- " string. Aim to support *all* special characters, forcing the user to choose
- " names that are compatible with any external restrictions that they
- " encounter (e.g. filesystem, wiki conventions, other syntaxes, ...).
- " See: https://github.com/vimwiki-backup/vimwiki/issues/316
- " Change / to [/\\] to allow "Windows paths"
- return '\V\%('.join(a:files, '\|').'\)\m'
-endfunction
-
-
-"FIXME TODO slow and faulty
-function! vimwiki#base#subdir(path, filename)
- let path = a:path
- " ensure that we are not fooled by a symbolic link
- "FIXME if we are not "fooled", we end up in a completely different wiki?
- if a:filename !~# '^scp:'
- let filename = resolve(a:filename)
- else
- let filename = a:filename
- endif
- let idx = 0
- "FIXME this can terminate in the middle of a path component!
- while path[idx] ==? filename[idx]
- let idx = idx + 1
- endwhile
-
- let p = split(strpart(filename, idx), '[/\\]')
- let res = join(p[:-2], '/')
- if len(res) > 0
- let res = res.'/'
- endif
- return res
-endfunction
-
-
-function! vimwiki#base#current_subdir()
- return vimwiki#base#subdir(vimwiki#vars#get_wikilocal('path'), expand('%:p'))
-endfunction
-
-
-function! vimwiki#base#invsubdir(subdir)
- return substitute(a:subdir, '[^/\.]\+/', '../', 'g')
-endfunction
-
-
-" Returns: the number of the wiki a file belongs to or -1 if it doesn't belong
-" to any registered wiki.
-" The path can be the full path or just the directory of the file
-function! vimwiki#base#find_wiki(path)
- let bestmatch = -1
- let bestlen = 0
- let path = vimwiki#path#path_norm(vimwiki#path#chomp_slash(a:path))
- for idx in range(vimwiki#vars#number_of_wikis())
- let idx_path = expand(vimwiki#vars#get_wikilocal('path', idx))
- let idx_path = vimwiki#path#path_norm(vimwiki#path#chomp_slash(idx_path))
- let common_pfx = vimwiki#path#path_common_pfx(idx_path, path)
- if vimwiki#path#is_equal(common_pfx, idx_path)
- if len(common_pfx) > bestlen
- let bestlen = len(common_pfx)
- let bestmatch = idx
- endif
- endif
- endfor
-
- return bestmatch
-endfunction
-
-
-" THE central function of Vimwiki. Extract infos about the target from a link.
-" If the second parameter is present, which should be an absolute file path, it
-" is assumed that the link appears in that file. Without it, the current file
-" is used.
-function! vimwiki#base#resolve_link(link_text, ...)
- if a:0
- let source_wiki = vimwiki#base#find_wiki(a:1)
- let source_file = a:1
- else
- let source_wiki = vimwiki#vars#get_bufferlocal('wiki_nr')
- let source_file = vimwiki#path#current_wiki_file()
- endif
-
- let link_text = a:link_text
-
-
- let link_infos = {
- \ 'index': -1,
- \ 'scheme': '',
- \ 'filename': '',
- \ 'anchor': '',
- \ }
-
- if link_text == ''
- return link_infos
- endif
-
- let scheme = matchstr(link_text, '^\zs'.vimwiki#vars#get_global('rxSchemes').'\ze:')
- if scheme == ''
- let link_infos.scheme = 'wiki'.source_wiki
- else
- let link_infos.scheme = scheme
-
- if link_infos.scheme !~# '\mwiki\d\+\|diary\|local\|file'
- let link_infos.filename = link_text " unknown scheme, may be a weblink
- return link_infos
- endif
-
- let link_text = matchstr(link_text, '^'.vimwiki#vars#get_global('rxSchemes').':\zs.*\ze')
- endif
-
- let is_wiki_link = link_infos.scheme =~# '\mwiki\d\+' || link_infos.scheme ==# 'diary'
-
- " extract anchor
- if is_wiki_link
- let split_lnk = split(link_text, '#', 1)
- let link_text = split_lnk[0]
- if len(split_lnk) > 1 && split_lnk[-1] != ''
- let link_infos.anchor = join(split_lnk[1:], '#')
- endif
- if link_text == '' " because the link was of the form '#anchor'
- let link_text = fnamemodify(source_file, ':p:t:r')
- endif
- endif
-
- " check if absolute or relative path
- if is_wiki_link && link_text[0] == '/'
- if link_text != '/'
- let link_text = link_text[1:]
- endif
- let is_relative = 0
- elseif !is_wiki_link && vimwiki#path#is_absolute(link_text)
- let is_relative = 0
- else
- let is_relative = 1
- let root_dir = fnamemodify(source_file, ':p:h') . '/'
- endif
-
-
- " extract the other items depending on the scheme
- if link_infos.scheme =~# '\mwiki\d\+'
- let link_infos.index = eval(matchstr(link_infos.scheme, '\D\+\zs\d\+\ze'))
- if link_infos.index < 0 || link_infos.index >= vimwiki#vars#number_of_wikis()
- let link_infos.filename = ''
- return link_infos
- endif
-
- if !is_relative || link_infos.index != source_wiki
- let root_dir = vimwiki#vars#get_wikilocal('path', link_infos.index)
- endif
-
- let link_infos.filename = root_dir . link_text
-
- if vimwiki#path#is_link_to_dir(link_text)
- if vimwiki#vars#get_global('dir_link') != ''
- let link_infos.filename .= vimwiki#vars#get_global('dir_link') .
- \ vimwiki#vars#get_wikilocal('ext', link_infos.index)
- endif
- else
- let link_infos.filename .= vimwiki#vars#get_wikilocal('ext', link_infos.index)
- endif
-
- elseif link_infos.scheme ==# 'diary'
- let link_infos.index = source_wiki
-
- let link_infos.filename =
- \ vimwiki#vars#get_wikilocal('path', link_infos.index) .
- \ vimwiki#vars#get_wikilocal('diary_rel_path', link_infos.index) .
- \ link_text .
- \ vimwiki#vars#get_wikilocal('ext', link_infos.index)
- elseif (link_infos.scheme ==# 'file' || link_infos.scheme ==# 'local') && is_relative
- let link_infos.filename = simplify(root_dir . link_text)
- else " absolute file link
- " collapse repeated leading "/"'s within a link
- let link_text = substitute(link_text, '\m^/\+', '/', '')
- " expand ~/
- let link_text = fnamemodify(link_text, ':p')
- let link_infos.filename = simplify(link_text)
- endif
-
- let link_infos.filename = vimwiki#path#normalize(link_infos.filename)
- return link_infos
-endfunction
-
-
-function! vimwiki#base#system_open_link(url)
- " handlers
- function! s:win32_handler(url)
- "http://vim.wikia.com/wiki/Opening_current_Vim_file_in_your_Windows_browser
- "disable 'shellslash', otherwise the url will be enclosed in single quotes,
- "which is problematic
- "see https://github.com/vimwiki/vimwiki/issues/54#issuecomment-48011289
- if exists('+shellslash')
- let old_ssl = &shellslash
- set noshellslash
- let url = shellescape(a:url, 1)
- let &shellslash = old_ssl
- else
- let url = shellescape(a:url, 1)
- endif
- if &l:shell ==? "powershell"
- execute 'silent ! start ' . a:url
- else
- execute 'silent ! start "Title" /B ' . a:url
- endif
- endfunction
- function! s:macunix_handler(url)
- call system('open ' . shellescape(a:url).' &')
- endfunction
- function! s:linux_handler(url)
- call system('xdg-open ' . shellescape(a:url).' &')
- endfunction
- try
- if vimwiki#u#is_windows()
- call s:win32_handler(a:url)
- return
- elseif vimwiki#u#is_macos()
- call s:macunix_handler(a:url)
- return
- else
- call s:linux_handler(a:url)
- return
- endif
- endtry
- echomsg 'Vimwiki Error: Default Vimwiki link handler was unable to open the HTML file!'
-endfunction
-
-
-function! vimwiki#base#open_link(cmd, link, ...)
- let link_infos = {}
- if a:0
- let link_infos = vimwiki#base#resolve_link(a:link, a:1)
- else
- let link_infos = vimwiki#base#resolve_link(a:link)
- endif
-
- if link_infos.filename == ''
- echomsg 'Vimwiki Error: Unable to resolve link!'
- return
- endif
-
- let is_wiki_link = link_infos.scheme =~# '\mwiki\d\+' || link_infos.scheme =~# 'diary'
-
- let update_prev_link = is_wiki_link &&
- \ !vimwiki#path#is_equal(link_infos.filename, vimwiki#path#current_wiki_file())
-
- let vimwiki_prev_link = []
- " update previous link for wiki pages
- if update_prev_link
- if a:0
- let vimwiki_prev_link = [a:1, []]
- elseif &ft ==# 'vimwiki'
- let vimwiki_prev_link = [vimwiki#path#current_wiki_file(), getpos('.')]
- endif
- endif
-
- " open/edit
- if is_wiki_link
- call vimwiki#base#edit_file(a:cmd, link_infos.filename, link_infos.anchor,
- \ vimwiki_prev_link, update_prev_link)
- else
- call vimwiki#base#system_open_link(link_infos.filename)
- endif
-endfunction
-
-
-function! vimwiki#base#get_globlinks_escaped() abort
- " only get links from the current dir
- " change to the directory of the current file
- let orig_pwd = getcwd()
- lcd! %:h
- " all path are relative to the current file's location
- let globlinks = glob('*'.vimwiki#vars#get_wikilocal('ext'), 1)."\n"
- " remove extensions
- let globlinks = substitute(globlinks, '\'.vimwiki#vars#get_wikilocal('ext').'\ze\n', '', 'g')
- " restore the original working directory
- exe 'lcd! '.orig_pwd
- " convert to a List
- let lst = split(globlinks, '\n')
- " Apply fnameescape() to each item
- call map(lst, 'fnameescape(v:val)')
- " Convert back to newline-separated list
- let globlinks = join(lst, "\n")
- " return all escaped links as a single newline-separated string
- return globlinks
-endfunction
-
-
-function! vimwiki#base#generate_links()
- let lines = []
-
- let links = vimwiki#base#get_wikilinks(vimwiki#vars#get_bufferlocal('wiki_nr'), 0)
- call sort(links)
-
- let bullet = repeat(' ', vimwiki#lst#get_list_margin()) . vimwiki#lst#default_symbol().' '
- for link in links
- let abs_filepath = vimwiki#path#abs_path_of_link(link)
- if !s:is_diary_file(abs_filepath)
- call add(lines, bullet.
- \ s:safesubstitute(vimwiki#vars#get_global('WikiLinkTemplate1'),
- \ '__LinkUrl__', link, ''))
- endif
- endfor
-
- let links_rx = '\m^\s*'.vimwiki#u#escape(vimwiki#lst#default_symbol()).' '
-
- call vimwiki#base#update_listing_in_buffer(lines, 'Generated Links', links_rx, line('$')+1, 1)
-endfunction
-
-
-function! vimwiki#base#goto(...)
- let key = a:1
- let anchor = a:0 > 1 ? a:2 : ''
-
- call vimwiki#base#edit_file(':e',
- \ vimwiki#vars#get_wikilocal('path') . key . vimwiki#vars#get_wikilocal('ext'),
- \ anchor)
-endfunction
-
-
-function! vimwiki#base#backlinks()
- let current_filename = expand("%:p")
- let locations = []
- for idx in range(vimwiki#vars#number_of_wikis())
- let syntax = vimwiki#vars#get_wikilocal('syntax', idx)
- let wikifiles = vimwiki#base#find_files(idx, 0)
- for source_file in wikifiles
- let links = s:get_links(source_file, idx)
- for [target_file, _, lnum, col] in links
- " don't include links from the current file to itself
- if vimwiki#path#is_equal(target_file, current_filename) &&
- \ !vimwiki#path#is_equal(target_file, source_file)
- call add(locations, {'filename':source_file, 'lnum':lnum, 'col':col})
- endif
- endfor
- endfor
- endfor
-
- if empty(locations)
- echomsg 'Vimwiki: No other file links to this file'
- else
- call setloclist(0, locations, 'r')
- lopen
- endif
-endfunction
-
-
-" Returns: a list containing all files of the given wiki as absolute file path.
-" If the given wiki number is negative, the diary of the current wiki is used
-" If the second argument is not zero, only directories are found
-function! vimwiki#base#find_files(wiki_nr, directories_only)
- let wiki_nr = a:wiki_nr
- if wiki_nr >= 0
- let root_directory = vimwiki#vars#get_wikilocal('path', wiki_nr)
- else
- let root_directory = vimwiki#vars#get_wikilocal('path') .
- \ vimwiki#vars#get_wikilocal('diary_rel_path')
- let wiki_nr = vimwiki#vars#get_bufferlocal('wiki_nr')
- endif
- if a:directories_only
- let ext = '/'
- else
- let ext = vimwiki#vars#get_wikilocal('ext', wiki_nr)
- endif
- " if current wiki is temporary -- was added by an arbitrary wiki file then do
- " not search wiki files in subdirectories. Or it would hang the system if
- " wiki file was created in $HOME or C:/ dirs.
- if vimwiki#vars#get_wikilocal('is_temporary_wiki', wiki_nr)
- let pattern = '*'.ext
- else
- let pattern = '**/*'.ext
- endif
- return split(globpath(root_directory, pattern), '\n')
-endfunction
-
-
-" Returns: a list containing the links to get from the current file to all wiki
-" files in the given wiki.
-" If the given wiki number is negative, the diary of the current wiki is used.
-" If also_absolute_links is nonzero, also return links of the form /file
-function! vimwiki#base#get_wikilinks(wiki_nr, also_absolute_links)
- let files = vimwiki#base#find_files(a:wiki_nr, 0)
- if a:wiki_nr == vimwiki#vars#get_bufferlocal('wiki_nr')
- let cwd = vimwiki#path#wikify_path(expand('%:p:h'))
- elseif a:wiki_nr < 0
- let cwd = vimwiki#vars#get_wikilocal('path') . vimwiki#vars#get_wikilocal('diary_rel_path')
- else
- let cwd = vimwiki#vars#get_wikilocal('path', a:wiki_nr)
- endif
- let result = []
- for wikifile in files
- let wikifile = fnamemodify(wikifile, ':r') " strip extension
- let wikifile = vimwiki#path#relpath(cwd, wikifile)
- call add(result, wikifile)
- endfor
- if a:also_absolute_links
- for wikifile in files
- if a:wiki_nr == vimwiki#vars#get_bufferlocal('wiki_nr')
- let cwd = vimwiki#vars#get_wikilocal('path')
- elseif a:wiki_nr < 0
- let cwd = vimwiki#vars#get_wikilocal('path') . vimwiki#vars#get_wikilocal('diary_rel_path')
- endif
- let wikifile = fnamemodify(wikifile, ':r') " strip extension
- let wikifile = '/'.vimwiki#path#relpath(cwd, wikifile)
- call add(result, wikifile)
- endfor
- endif
- return result
-endfunction
-
-
-" Returns: a list containing the links to all directories from the current file
-function! vimwiki#base#get_wiki_directories(wiki_nr)
- let dirs = vimwiki#base#find_files(a:wiki_nr, 1)
- if a:wiki_nr == vimwiki#vars#get_bufferlocal('wiki_nr')
- let cwd = vimwiki#path#wikify_path(expand('%:p:h'))
- let root_dir = vimwiki#vars#get_wikilocal('path')
- else
- let cwd = vimwiki#vars#get_wikilocal('path', a:wiki_nr)
- endif
- let result = ['./']
- for wikidir in dirs
- let wikidir_relative = vimwiki#path#relpath(cwd, wikidir)
- call add(result, wikidir_relative)
- if a:wiki_nr == vimwiki#vars#get_bufferlocal('wiki_nr')
- let wikidir_absolute = '/'.vimwiki#path#relpath(root_dir, wikidir)
- call add(result, wikidir_absolute)
- endif
- endfor
- return result
-endfunction
-
-
-function! vimwiki#base#get_anchors(filename, syntax)
- if !filereadable(a:filename)
- return []
- endif
-
- let rxheader = vimwiki#vars#get_syntaxlocal('header_search', a:syntax)
- let rxbold = vimwiki#vars#get_syntaxlocal('bold_search', a:syntax)
- let rxtag = vimwiki#vars#get_syntaxlocal('tag_search', a:syntax)
-
- let anchor_level = ['', '', '', '', '', '', '']
- let anchors = []
- let current_complete_anchor = ''
- for line in readfile(a:filename)
-
- " collect headers
- let h_match = matchlist(line, rxheader)
- if !empty(h_match)
- let header = vimwiki#u#trim(h_match[2])
- let level = len(h_match[1])
- call add(anchors, header)
- let anchor_level[level-1] = header
- for l in range(level, 6)
- let anchor_level[l] = ''
- endfor
- if level == 1
- let current_complete_anchor = header
- else
- let current_complete_anchor = ''
- for l in range(level-1)
- if anchor_level[l] != ''
- let current_complete_anchor .= anchor_level[l].'#'
- endif
- endfor
- let current_complete_anchor .= header
- call add(anchors, current_complete_anchor)
- endif
- endif
-
- " collect bold text (there can be several in one line)
- let bold_count = 1
- while 1
- let bold_text = matchstr(line, rxbold, 0, bold_count)
- if bold_text == ''
- break
- endif
- call add(anchors, bold_text)
- if current_complete_anchor != ''
- call add(anchors, current_complete_anchor.'#'.bold_text)
- endif
- let bold_count += 1
- endwhile
-
- " collect tags text (there can be several in one line)
- let tag_count = 1
- while 1
- let tag_group_text = matchstr(line, rxtag, 0, tag_count)
- if tag_group_text == ''
- break
- endif
- for tag_text in split(tag_group_text, ':')
- call add(anchors, tag_text)
- if current_complete_anchor != ''
- call add(anchors, current_complete_anchor.'#'.tag_text)
- endif
- endfor
- let tag_count += 1
- endwhile
-
- endfor
-
- return anchors
-endfunction
-
-
-function! s:jump_to_anchor(anchor)
- let oldpos = getpos('.')
- call cursor(1, 1)
-
- let anchor = vimwiki#u#escape(a:anchor)
-
- let segments = split(anchor, '#', 0)
-
- for segment in segments
-
- let anchor_header = s:safesubstitute(
- \ vimwiki#vars#get_syntaxlocal('header_match'),
- \ '__Header__', segment, '')
- let anchor_bold = s:safesubstitute(
- \ vimwiki#vars#get_syntaxlocal('bold_match'),
- \ '__Text__', segment, '')
- let anchor_tag = s:safesubstitute(
- \ vimwiki#vars#get_syntaxlocal('tag_match'),
- \ '__Tag__', segment, '')
-
- if !search(anchor_tag, 'Wc') && !search(anchor_header, 'Wc') && !search(anchor_bold, 'Wc')
- call setpos('.', oldpos)
- break
- endif
- let oldpos = getpos('.')
- endfor
-endfunction
-
-
-" Params: full path to a wiki file and its wiki number
-" Returns: a list of all links inside the wiki file
-" Every list item has the form
-" [target file, anchor, line number of the link in source file, column number]
-function! s:get_links(wikifile, idx)
- if !filereadable(a:wikifile)
- return []
- endif
-
- let syntax = vimwiki#vars#get_wikilocal('syntax', a:idx)
- let rx_link = vimwiki#vars#get_syntaxlocal('wikilink', syntax)
- let links = []
- let lnum = 0
-
- for line in readfile(a:wikifile)
- let lnum += 1
-
- let link_count = 1
- while 1
- let col = match(line, rx_link, 0, link_count)+1
- let link_text = matchstr(line, rx_link, 0, link_count)
- if link_text == ''
- break
- endif
- let link_count += 1
- let target = vimwiki#base#resolve_link(link_text, a:wikifile)
- if target.filename != '' && target.scheme =~# '\mwiki\d\+\|diary\|file\|local'
- call add(links, [target.filename, target.anchor, lnum, col])
- endif
- endwhile
- endfor
-
- return links
-endfunction
-
-
-function! vimwiki#base#check_links()
- let anchors_of_files = {}
- let links_of_files = {}
- let errors = []
- for idx in range(vimwiki#vars#number_of_wikis())
- let syntax = vimwiki#vars#get_wikilocal('syntax', idx)
- let wikifiles = vimwiki#base#find_files(idx, 0)
- for wikifile in wikifiles
- let links_of_files[wikifile] = s:get_links(wikifile, idx)
- let anchors_of_files[wikifile] = vimwiki#base#get_anchors(wikifile, syntax)
- endfor
- endfor
-
- for wikifile in keys(links_of_files)
- for [target_file, target_anchor, lnum, col] in links_of_files[wikifile]
- if target_file == '' && target_anchor == ''
- call add(errors, {'filename':wikifile, 'lnum':lnum, 'col':col,
- \ 'text': "numbered scheme refers to a non-existent wiki"})
- elseif has_key(anchors_of_files, target_file)
- if target_anchor != '' && index(anchors_of_files[target_file], target_anchor) < 0
- call add(errors, {'filename':wikifile, 'lnum':lnum, 'col':col,
- \'text': "there is no such anchor: ".target_anchor})
- endif
- else
- if target_file =~ '\m/$' " maybe it's a link to a directory
- if !isdirectory(target_file)
- call add(errors, {'filename':wikifile, 'lnum':lnum, 'col':col,
- \'text': "there is no such directory: ".target_file})
- endif
- else " maybe it's a non-wiki file
- if filereadable(target_file)
- let anchors_of_files[target_file] = []
- else
- call add(errors, {'filename':wikifile, 'lnum':lnum, 'col':col,
- \'text': "there is no such file: ".target_file})
- endif
- endif
- endif
- endfor
- endfor
-
-
- " Check which wiki files are reachable from at least one of the index files.
- " First, all index files are marked as reachable. Then, pick a reachable file
- " and mark all files to which it links as reachable, too. Repeat until the
- " links of all reachable files have been checked.
-
- " Map every wiki file to a number. 0 means not reachable from any index file,
- " 1 means reachable, but the outgoing links are not checked yet, 2 means
- " reachable and done.
- let reachable_wikifiles = {}
-
- " first, all files are considered not reachable
- for wikifile in keys(links_of_files)
- let reachable_wikifiles[wikifile] = 0
- endfor
-
- " mark every index file as reachable
- for idx in range(vimwiki#vars#number_of_wikis())
- let index_file = vimwiki#vars#get_wikilocal('path', idx) .
- \ vimwiki#vars#get_wikilocal('index', idx) . vimwiki#vars#get_wikilocal('ext', idx)
- if filereadable(index_file)
- let reachable_wikifiles[index_file] = 1
- endif
- endfor
-
- while 1
- let next_unvisited_wikifile = ''
- for wf in keys(reachable_wikifiles)
- if reachable_wikifiles[wf] == 1
- let next_unvisited_wikifile = wf
- let reachable_wikifiles[wf] = 2
- break
- endif
- endfor
- if next_unvisited_wikifile == ''
- break
- endif
- for [target_file, target_anchor, lnum, col] in links_of_files[next_unvisited_wikifile]
- if has_key(reachable_wikifiles, target_file) && reachable_wikifiles[target_file] == 0
- let reachable_wikifiles[target_file] = 1
- endif
- endfor
- endwhile
-
- for wf in keys(reachable_wikifiles)
- if reachable_wikifiles[wf] == 0
- call add(errors, {'text':wf." is not reachable from the index file"})
- endif
- endfor
-
- if empty(errors)
- echomsg 'Vimwiki: All links are OK'
- else
- call setqflist(errors, 'r')
- copen
- endif
-endfunction
-
-
-function! vimwiki#base#edit_file(command, filename, anchor, ...)
- let fname = escape(a:filename, '% *|#`')
- let dir = fnamemodify(a:filename, ":p:h")
-
- let ok = vimwiki#path#mkdir(dir, 1)
-
- if !ok
- echomsg ' '
- echomsg 'Vimwiki Error: Unable to edit file in non-existent directory: '.dir
- return
- endif
-
- " Check if the file we want to open is already the current file
- " which happens if we jump to an achor in the current file.
- " This hack is necessary because apparently Vim messes up the result of
- " getpos() directly after this command. Strange.
- if !(a:command ==# ':e ' && vimwiki#path#is_equal(a:filename, expand('%:p')))
- try
- if &autowriteall && !&hidden " in this case, the file is saved before switching to the
- " new buffer. This causes Vim to show two messages in the command line which triggers
- " the annoying hit-enter prompt. Solution: show no messages at all.
- silent execute a:command fname
- else
- execute a:command fname
- endif
- catch /E37:/
- echomsg 'Vimwiki: The current file is modified. Hint: Take a look at'
- \ ''':h g:vimwiki_autowriteall'' to see how to save automatically.'
- return
- endtry
-
- " If the opened file was not already loaded by Vim, an autocommand is
- " triggered at this point
-
- " Make sure no other plugin takes ownership over the new file. Vimwiki
- " rules them all! Well, except for directories, which may be opened with
- " Netrw
- if &filetype != 'vimwiki' && fname !~ '\m/$'
- setfiletype vimwiki
- endif
- endif
- if a:anchor != ''
- call s:jump_to_anchor(a:anchor)
- endif
-
- " save previous link
- " a:1 -- previous vimwiki link to save
- " a:2 -- should we update previous link
- if a:0 && a:2 && len(a:1) > 0
- call vimwiki#vars#set_bufferlocal('prev_link', a:1)
- endif
-endfunction
-
-
-function! vimwiki#base#search_word(wikiRx, cmd)
- let match_line = search(a:wikiRx, 's'.a:cmd)
- if match_line == 0
- echomsg 'Vimwiki: Wiki link not found'
- endif
-endfunction
-
-
-" Returns part of the line that matches wikiRX at cursor
-function! vimwiki#base#matchstr_at_cursor(wikiRX)
- let col = col('.') - 1
- let line = getline('.')
- let ebeg = -1
- let cont = match(line, a:wikiRX, 0)
- while (ebeg >= 0 || (0 <= cont) && (cont <= col))
- let contn = matchend(line, a:wikiRX, cont)
- if (cont <= col) && (col < contn)
- let ebeg = match(line, a:wikiRX, cont)
- let elen = contn - ebeg
- break
- else
- let cont = match(line, a:wikiRX, contn)
- endif
- endwh
- if ebeg >= 0
- return strpart(line, ebeg, elen)
- else
- return ""
- endif
-endfunction
-
-
-function! vimwiki#base#replacestr_at_cursor(wikiRX, sub)
- let col = col('.') - 1
- let line = getline('.')
- let ebeg = -1
- let cont = match(line, a:wikiRX, 0)
- while (ebeg >= 0 || (0 <= cont) && (cont <= col))
- let contn = matchend(line, a:wikiRX, cont)
- if (cont <= col) && (col < contn)
- let ebeg = match(line, a:wikiRX, cont)
- let elen = contn - ebeg
- break
- else
- let cont = match(line, a:wikiRX, contn)
- endif
- endwh
- if ebeg >= 0
- " TODO: There might be problems with Unicode chars...
- let newline = strpart(line, 0, ebeg).a:sub.strpart(line, ebeg+elen)
- call setline(line('.'), newline)
- endif
-endfunction
-
-
-function! s:print_wiki_list()
- let idx = 0
- while idx < vimwiki#vars#number_of_wikis()
- if idx == vimwiki#vars#get_bufferlocal('wiki_nr')
- let sep = ' * '
- echohl PmenuSel
- else
- let sep = ' '
- echohl None
- endif
- echo (idx + 1) . sep . vimwiki#vars#get_wikilocal('path', idx)
- let idx += 1
- endwhile
- echohl None
-endfunction
-
-
-function! s:update_wiki_link(fname, old, new)
- echo "Updating links in ".a:fname
- let has_updates = 0
- let dest = []
- for line in readfile(a:fname)
- if !has_updates && match(line, a:old) != -1
- let has_updates = 1
- endif
- " XXX: any other characters to escape!?
- call add(dest, substitute(line, a:old, escape(a:new, "&"), "g"))
- endfor
- " add exception handling...
- if has_updates
- call rename(a:fname, a:fname.'#vimwiki_upd#')
- call writefile(dest, a:fname)
- call delete(a:fname.'#vimwiki_upd#')
- endif
-endfunction
-
-
-function! s:update_wiki_links_dir(dir, old_fname, new_fname)
- let old_fname = substitute(a:old_fname, '[/\\]', '[/\\\\]', 'g')
- let new_fname = a:new_fname
-
- let old_fname_r = vimwiki#base#apply_template(
- \ vimwiki#vars#get_syntaxlocal('WikiLinkMatchUrlTemplate'), old_fname, '', '')
-
- let files = split(glob(vimwiki#vars#get_wikilocal('path').a:dir.'*'.
- \ vimwiki#vars#get_wikilocal('ext')), '\n')
- for fname in files
- call s:update_wiki_link(fname, old_fname_r, new_fname)
- endfor
-endfunction
-
-
-function! s:tail_name(fname)
- let result = substitute(a:fname, ":", "__colon__", "g")
- let result = fnamemodify(result, ":t:r")
- let result = substitute(result, "__colon__", ":", "g")
- return result
-endfunction
-
-
-function! s:update_wiki_links(old_fname, new_fname)
- let old_fname = a:old_fname
- let new_fname = a:new_fname
-
- let subdirs = split(a:old_fname, '[/\\]')[: -2]
-
- " TODO: Use Dictionary here...
- let dirs_keys = ['']
- let dirs_vals = ['']
- if len(subdirs) > 0
- let dirs_keys = ['']
- let dirs_vals = [join(subdirs, '/').'/']
- let idx = 0
- while idx < len(subdirs) - 1
- call add(dirs_keys, join(subdirs[: idx], '/').'/')
- call add(dirs_vals, join(subdirs[idx+1 :], '/').'/')
- let idx = idx + 1
- endwhile
- call add(dirs_keys,join(subdirs, '/').'/')
- call add(dirs_vals, '')
- endif
-
- let idx = 0
- while idx < len(dirs_keys)
- let dir = dirs_keys[idx]
- let new_dir = dirs_vals[idx]
- call s:update_wiki_links_dir(dir, new_dir.old_fname, new_dir.new_fname)
- let idx = idx + 1
- endwhile
-endfunction
-
-
-function! s:get_wiki_buffers()
- let blist = []
- let bcount = 1
- while bcount<=bufnr("$")
- if bufexists(bcount)
- let bname = fnamemodify(bufname(bcount), ":p")
- " this may find buffers that are not part of the current wiki, but that
- " doesn't hurt
- if bname =~# vimwiki#vars#get_wikilocal('ext')."$"
- let bitem = [bname, vimwiki#vars#get_bufferlocal('prev_link', bcount)]
- call add(blist, bitem)
- endif
- endif
- let bcount = bcount + 1
- endwhile
- return blist
-endfunction
-
-
-function! s:open_wiki_buffer(item)
- call vimwiki#base#edit_file(':e', a:item[0], '')
- if !empty(a:item[1])
- call vimwiki#vars#set_bufferlocal('prev_link', a:item[1], a:item[0])
- endif
-endfunction
-
-
-function! vimwiki#base#nested_syntax(filetype, start, end, textSnipHl) abort
-" From http://vim.wikia.com/wiki/VimTip857
- let ft=toupper(a:filetype)
- let group='textGroup'.ft
- if exists('b:current_syntax')
- let s:current_syntax=b:current_syntax
- " Remove current syntax definition, as some syntax files (e.g. cpp.vim)
- " do nothing if b:current_syntax is defined.
- unlet b:current_syntax
- endif
-
- " Some syntax files set up iskeyword which might scratch vimwiki a bit.
- " Let us save and restore it later.
- " let b:skip_set_iskeyword = 1
- let is_keyword = &iskeyword
-
- try
- " keep going even if syntax file is not found
- execute 'syntax include @'.group.' syntax/'.a:filetype.'.vim'
- execute 'syntax include @'.group.' after/syntax/'.a:filetype.'.vim'
- catch
- endtry
-
- let &iskeyword = is_keyword
-
- if exists('s:current_syntax')
- let b:current_syntax=s:current_syntax
- else
- unlet b:current_syntax
- endif
-
- " Fix issue #236: tell Vimwiki to think in maths when encountering maths
- " blocks like {{$ }}$. Here, we don't want the tex highlight group, but the
- " group for tex math.
- if a:textSnipHl ==# 'VimwikiMath'
- let group='texMathZoneGroup'
- endif
-
- execute 'syntax region textSnip'.ft.
- \ ' matchgroup='.a:textSnipHl.
- \ ' start="'.a:start.'" end="'.a:end.'"'.
- \ ' contains=@'.group.' keepend'
-
- " A workaround to Issue 115: Nested Perl syntax highlighting differs from
- " regular one.
- " Perl syntax file has perlFunctionName which is usually has no effect due to
- " 'contained' flag. Now we have 'syntax include' that makes all the groups
- " included as 'contained' into specific group.
- " Here perlFunctionName (with quite an angry regexp "\h\w*[^:]") clashes with
- " the rest syntax rules as now it has effect being really 'contained'.
- " Clear it!
- if ft =~? 'perl'
- syntax clear perlFunctionName
- endif
-endfunction
-
-
-" creates or updates auto-generated listings in a wiki file, like TOC, diary
-" links, tags list etc.
-" - the listing consists of a level 1 header and a list of strings as content
-" - a:content_regex is used to determine how long a potentially existing list is
-" - a:default_lnum is the line number where the new listing should be placed if
-" it's not already present
-" - if a:create is true, it will be created if it doesn't exist, otherwise it
-" will only be updated if it already exists
-function! vimwiki#base#update_listing_in_buffer(strings, start_header,
- \ content_regex, default_lnum, create)
- " apparently, Vim behaves strange when files change while in diff mode
- if &diff || &readonly
- return
- endif
-
- " check if the listing is already there
- let already_there = 0
-
- let header_rx = '\m^\s*'.substitute(vimwiki#vars#get_syntaxlocal('rxH1_Template'),
- \ '__Header__', a:start_header, '') .'\s*$'
-
- let start_lnum = 1
- while start_lnum <= line('$')
- if getline(start_lnum) =~# header_rx
- let already_there = 1
- break
- endif
- let start_lnum += 1
- endwhile
-
- if !already_there && !a:create
- return
- endif
-
- let winview_save = winsaveview()
- let cursor_line = winview_save.lnum
- let is_cursor_after_listing = 0
-
- let is_fold_closed = 1
-
- let lines_diff = 0
-
- if already_there
- let is_fold_closed = ( foldclosed(start_lnum) > -1 )
- " delete the old listing
- let whitespaces_in_first_line = matchstr(getline(start_lnum), '\m^\s*')
- let end_lnum = start_lnum + 1
- while end_lnum <= line('$') && getline(end_lnum) =~# a:content_regex
- let end_lnum += 1
- endwhile
- let is_cursor_after_listing = ( cursor_line >= end_lnum )
- " We'll be removing a range. But, apparently, if folds are enabled, Vim
- " won't let you remove a range that overlaps with closed fold -- the entire
- " fold gets deleted. So we temporarily disable folds, and then reenable
- " them right back.
- let foldenable_save = &l:foldenable
- setlo nofoldenable
- silent exe start_lnum.','.string(end_lnum - 1).'delete _'
- let &l:foldenable = foldenable_save
- let lines_diff = 0 - (end_lnum - start_lnum)
- else
- let start_lnum = a:default_lnum
- let is_cursor_after_listing = ( cursor_line > a:default_lnum )
- let whitespaces_in_first_line = ''
- endif
-
- let start_of_listing = start_lnum
-
- " write new listing
- let new_header = whitespaces_in_first_line
- \ . s:safesubstitute(vimwiki#vars#get_syntaxlocal('rxH1_Template'),
- \ '__Header__', a:start_header, '')
- call append(start_lnum - 1, new_header)
- let start_lnum += 1
- let lines_diff += 1 + len(a:strings)
- for string in a:strings
- call append(start_lnum - 1, string)
- let start_lnum += 1
- endfor
- " append an empty line if there is not one
- if start_lnum <= line('$') && getline(start_lnum) !~# '\m^\s*$'
- call append(start_lnum - 1, '')
- let lines_diff += 1
- endif
-
- " Open fold, if needed
- if !is_fold_closed && ( foldclosed(start_of_listing) > -1 )
- exe start_of_listing
- norm! zo
- endif
-
- if is_cursor_after_listing
- let winview_save.lnum += lines_diff
- endif
- call winrestview(winview_save)
-endfunction
-
-
-function! vimwiki#base#find_next_link()
- call vimwiki#base#search_word(vimwiki#vars#get_syntaxlocal('rxAnyLink'), '')
-endfunction
-
-
-function! vimwiki#base#find_prev_link()
- "Jump 2 times if the cursor is in the middle of a link
- if synIDattr(synID(line('.'), col('.'), 0), "name") =~# "VimwikiLink.*" &&
- \ synIDattr(synID(line('.'), col('.')-1, 0), "name") =~# "VimwikiLink.*"
- call vimwiki#base#search_word(vimwiki#vars#get_syntaxlocal('rxAnyLink'), 'b')
- endif
- call vimwiki#base#search_word(vimwiki#vars#get_syntaxlocal('rxAnyLink'), 'b')
-endfunction
-
-
-" This is an API function, that is, remappable by the user. Don't change the signature.
-function! vimwiki#base#follow_link(split, reuse, move_cursor, ...)
- " Parse link at cursor and pass to VimwikiLinkHandler, or failing that, the
- " default open_link handler
-
- " try WikiLink
- let lnk = matchstr(vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink')),
- \ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'))
- " try WikiIncl
- if lnk == ""
- let lnk = matchstr(vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_global('rxWikiIncl')),
- \ vimwiki#vars#get_global('rxWikiInclMatchUrl'))
- endif
- " try Weblink
- if lnk == ""
- let lnk = matchstr(vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink')),
- \ vimwiki#vars#get_syntaxlocal('rxWeblinkMatchUrl'))
- endif
-
- if lnk != "" " cursor is indeed on a link
- let processed_by_user_defined_handler = VimwikiLinkHandler(lnk)
- if processed_by_user_defined_handler
- return
- endif
-
- if a:split ==# "hsplit"
- let cmd = ":split "
- elseif a:split ==# "vsplit"
- let cmd = ":vsplit "
- elseif a:split ==# "tab"
- let cmd = ":tabnew "
- else
- let cmd = ":e "
- endif
-
- " if we want to and can reuse a split window, jump to that window and open
- " the new file there
- if (a:split ==# 'hsplit' || a:split ==# 'vsplit') && a:reuse
- let previous_window_nr = winnr('#')
- if previous_window_nr > 0 && previous_window_nr != winnr()
- execute previous_window_nr . 'wincmd w'
- let cmd = ':e'
- endif
- endif
-
-
- if vimwiki#vars#get_wikilocal('syntax') == 'markdown'
- let processed_by_markdown_reflink = vimwiki#markdown_base#open_reflink(lnk)
- if processed_by_markdown_reflink
- return
- endif
-
- " remove the extension from the filename if exists, because non-vimwiki
- " markdown files usually include the extension in links
- let lnk = substitute(lnk, '\'.vimwiki#vars#get_wikilocal('ext').'$', '', '')
- endif
-
- let current_tab_page = tabpagenr()
-
- call vimwiki#base#open_link(cmd, lnk)
-
- if !a:move_cursor
- if (a:split ==# 'hsplit' || a:split ==# 'vsplit')
- execute 'wincmd p'
- elseif a:split ==# 'tab'
- execute 'tabnext ' . current_tab_page
- endif
- endif
-
- else
- if a:0 > 0
- execute "normal! ".a:1
- else
- call vimwiki#base#normalize_link(0)
- endif
- endif
-endfunction
-
-
-function! vimwiki#base#go_back_link()
- let prev_link = vimwiki#vars#get_bufferlocal('prev_link')
- if !empty(prev_link)
- " go back to saved wiki link
- call vimwiki#base#edit_file(':e ', prev_link[0], '')
- call setpos('.', prev_link[1])
- else
- " maybe we came here by jumping to a tag -> pop from the tag stack
- silent! pop!
- endif
-endfunction
-
-
-function! vimwiki#base#goto_index(wnum, ...)
- if a:wnum > vimwiki#vars#number_of_wikis()
- echomsg 'Vimwiki Error: Wiki '.a:wnum.' is not registered in your Vimwiki settings!'
- return
- endif
-
- " usually a:wnum is greater then 0 but with the following command it is == 0:
- " vim -n -c ":VimwikiIndex"
- if a:wnum > 0
- let idx = a:wnum - 1
- else
- let idx = 0
- endif
-
- if a:0
- if a:1 == 1
- let cmd = 'tabedit'
- elseif a:1 == 2
- let cmd = 'split'
- elseif a:1 == 3
- let cmd = 'vsplit'
- endif
- else
- let cmd = 'edit'
- endif
-
- let index_file = vimwiki#vars#get_wikilocal('path', idx).
- \ vimwiki#vars#get_wikilocal('index', idx).
- \ vimwiki#vars#get_wikilocal('ext', idx)
-
- call vimwiki#base#edit_file(cmd, index_file, '')
-endfunction
-
-
-function! vimwiki#base#delete_link()
- " Delete wiki file you are in from filesystem
- let val = input('Delete "'.expand('%').'" [y]es/[N]o? ')
- if val !~? '^y'
- return
- endif
- let fname = expand('%:p')
- try
- call delete(fname)
- catch /.*/
- echomsg 'Vimwiki Error: Cannot delete "'.expand('%:t:r').'"!'
- return
- endtry
-
- call vimwiki#base#go_back_link()
- execute "bdelete! ".escape(fname, " ")
-
- " reread buffer => deleted wiki link should appear as non-existent
- if expand('%:p') != ""
- execute "e"
- endif
-endfunction
-
-
-" Rename current file, update all links to it
-function! vimwiki#base#rename_link()
- let subdir = vimwiki#vars#get_bufferlocal('subdir')
- let old_fname = subdir.expand('%:t')
-
- " there is no file (new one maybe)
- if glob(expand('%:p')) == ''
- echomsg 'Vimwiki Error: Cannot rename "'.expand('%:p').
- \'". It does not exist! (New file? Save it before renaming.)'
- return
- endif
-
- let val = input('Rename "'.expand('%:t:r').'" [y]es/[N]o? ')
- if val !~? '^y'
- return
- endif
-
- let new_link = input('Enter new name: ')
-
- if new_link =~# '[/\\]'
- " It is actually doable but I do not have free time to do it.
- echomsg 'Vimwiki Error: Cannot rename to a filename with path!'
- return
- endif
-
- " check new_fname - it should be 'good', not empty
- if substitute(new_link, '\s', '', 'g') == ''
- echomsg 'Vimwiki Error: Cannot rename to an empty filename!'
- return
- endif
-
- let url = matchstr(new_link, vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'))
- if url != ''
- let new_link = url
- endif
-
- let new_link = subdir.new_link
- let new_fname = vimwiki#vars#get_wikilocal('path') . new_link . vimwiki#vars#get_wikilocal('ext')
-
- " do not rename if file with such name exists
- let fname = glob(new_fname)
- if fname != ''
- echomsg 'Vimwiki Error: Cannot rename to "'.new_fname.'". File with that name exist!'
- return
- endif
- " rename wiki link file
- try
- echomsg 'Vimwiki: Renaming '.vimwiki#vars#get_wikilocal('path').old_fname.' to '.new_fname
- let res = rename(expand('%:p'), expand(new_fname))
- if res != 0
- throw "Cannot rename!"
- end
- catch /.*/
- echomsg 'Vimwiki Error: Cannot rename "'.expand('%:t:r').'" to "'.new_fname.'"'
- return
- endtry
-
- let &buftype="nofile"
-
- let cur_buffer = [expand('%:p'), vimwiki#vars#get_bufferlocal('prev_link')]
-
- let blist = s:get_wiki_buffers()
-
- " save wiki buffers
- for bitem in blist
- execute ':b '.escape(bitem[0], ' ')
- execute ':update'
- endfor
-
- execute ':b '.escape(cur_buffer[0], ' ')
-
- " remove wiki buffers
- for bitem in blist
- execute 'bwipeout '.escape(bitem[0], ' ')
- endfor
-
- let setting_more = &more
- setlocal nomore
-
- " update links
- call s:update_wiki_links(s:tail_name(old_fname), new_link)
-
- " restore wiki buffers
- for bitem in blist
- if !vimwiki#path#is_equal(bitem[0], cur_buffer[0])
- call s:open_wiki_buffer(bitem)
- endif
- endfor
-
- call s:open_wiki_buffer([new_fname, cur_buffer[1]])
- " execute 'bwipeout '.escape(cur_buffer[0], ' ')
-
- echomsg 'Vimwiki: '.old_fname.' is renamed to '.new_fname
-
- let &more = setting_more
-endfunction
-
-
-function! vimwiki#base#ui_select()
- call s:print_wiki_list()
- let idx = input("Select Wiki (specify number): ")
- if idx == ""
- return
- endif
- call vimwiki#base#goto_index(idx)
-endfunction
-
-
-function! vimwiki#base#TO_header(inner, including_subheaders, count)
- let headers = s:collect_headers()
- if empty(headers)
- return
- endif
-
- let current_line = line('.')
-
- let current_header_index = s:current_header(headers, current_line)
-
- if current_header_index < 0
- return
- endif
-
- " from which to which header
- if !a:including_subheaders && a:count <= 1
- let first_line = headers[current_header_index][0]
- let last_line = current_header_index == len(headers)-1 ? line('$') :
- \ headers[current_header_index + 1][0] - 1
- else
- let first_header_index = current_header_index
- for _ in range(a:count - 1)
- let parent = s:get_another_header(headers, first_header_index, -1, '<')
- if parent < 0
- break
- else
- let first_header_index = parent
- endif
- endfor
-
- let next_sibling_or_higher = s:get_another_header(headers, first_header_index, +1, '<=')
-
- let first_line = headers[first_header_index][0]
- let last_line =
- \ next_sibling_or_higher >= 0 ? headers[next_sibling_or_higher][0] - 1 : line('$')
- endif
-
- if a:inner
- let first_line += 1
- let last_line = prevnonblank(last_line)
- endif
-
- if first_line > last_line
- " this can happen e.g. when doing vih on a header with another header in the very next line
- return
- endif
-
- call cursor(first_line, 1)
- normal! V
- call cursor(last_line, 1)
-endfunction
-
-
-function! vimwiki#base#TO_table_cell(inner, visual)
- if col('.') == col('$')-1
- return
- endif
-
- if a:visual
- normal! `>
- let sel_end = getpos('.')
- normal! `<
- let sel_start = getpos('.')
-
- let firsttime = sel_start == sel_end
-
- if firsttime
- if !search('|\|\(-+-\)', 'cb', line('.'))
- return
- endif
- if getline('.')[virtcol('.')] == '+'
- normal! l
- endif
- if a:inner
- normal! 2l
- endif
- let sel_start = getpos('.')
- endif
-
- normal! `>
- call search('|\|\(-+-\)', '', line('.'))
- if getline('.')[virtcol('.')] == '+'
- normal! l
- endif
- if a:inner
- if firsttime || abs(sel_end[2] - getpos('.')[2]) != 2
- normal! 2h
- endif
- endif
- let sel_end = getpos('.')
-
- call setpos('.', sel_start)
- exe "normal! \<C-v>"
- call setpos('.', sel_end)
-
- " XXX: WORKAROUND.
- " if blockwise selection is ended at | character then pressing j to extend
- " selection further fails. But if we shake the cursor left and right then
- " it works.
- normal! hl
- else
- if !search('|\|\(-+-\)', 'cb', line('.'))
- return
- endif
- if a:inner
- normal! 2l
- endif
- normal! v
- call search('|\|\(-+-\)', '', line('.'))
- if !a:inner && getline('.')[virtcol('.')-1] == '|'
- normal! h
- elseif a:inner
- normal! 2h
- endif
- endif
-endfunction
-
-
-function! vimwiki#base#TO_table_col(inner, visual)
- let t_rows = vimwiki#tbl#get_rows(line('.'))
- if empty(t_rows)
- return
- endif
-
- " TODO: refactor it!
- if a:visual
- normal! `>
- let sel_end = getpos('.')
- normal! `<
- let sel_start = getpos('.')
-
- let firsttime = sel_start == sel_end
-
- if firsttime
- " place cursor to the top row of the table
- call vimwiki#u#cursor(t_rows[0][0], virtcol('.'))
- " do not accept the match at cursor position if cursor is next to column
- " separator of the table separator (^ is a cursor):
- " |-----^-+-------|
- " | bla | bla |
- " |-------+-------|
- " or it will select wrong column.
- if strpart(getline('.'), virtcol('.')-1) =~# '^-+'
- let s_flag = 'b'
- else
- let s_flag = 'cb'
- endif
- " search the column separator backwards
- if !search('|\|\(-+-\)', s_flag, line('.'))
- return
- endif
- " -+- column separator is matched --> move cursor to the + sign
- if getline('.')[virtcol('.')] == '+'
- normal! l
- endif
- " inner selection --> reduce selection
- if a:inner
- normal! 2l
- endif
- let sel_start = getpos('.')
- endif
-
- normal! `>
- if !firsttime && getline('.')[virtcol('.')] == '|'
- normal! l
- elseif a:inner && getline('.')[virtcol('.')+1] =~# '[|+]'
- normal! 2l
- endif
- " search for the next column separator
- call search('|\|\(-+-\)', '', line('.'))
- " Outer selection selects a column without border on the right. So we move
- " our cursor left if the previous search finds | border, not -+-.
- if getline('.')[virtcol('.')] != '+'
- normal! h
- endif
- if a:inner
- " reduce selection a bit more if inner.
- normal! h
- endif
- " expand selection to the bottom line of the table
- call vimwiki#u#cursor(t_rows[-1][0], virtcol('.'))
- let sel_end = getpos('.')
-
- call setpos('.', sel_start)
- exe "normal! \<C-v>"
- call setpos('.', sel_end)
-
- else
- " place cursor to the top row of the table
- call vimwiki#u#cursor(t_rows[0][0], virtcol('.'))
- " do not accept the match at cursor position if cursor is next to column
- " separator of the table separator (^ is a cursor):
- " |-----^-+-------|
- " | bla | bla |
- " |-------+-------|
- " or it will select wrong column.
- if strpart(getline('.'), virtcol('.')-1) =~# '^-+'
- let s_flag = 'b'
- else
- let s_flag = 'cb'
- endif
- " search the column separator backwards
- if !search('|\|\(-+-\)', s_flag, line('.'))
- return
- endif
- " -+- column separator is matched --> move cursor to the + sign
- if getline('.')[virtcol('.')] == '+'
- normal! l
- endif
- " inner selection --> reduce selection
- if a:inner
- normal! 2l
- endif
-
- exe "normal! \<C-V>"
-
- " search for the next column separator
- call search('|\|\(-+-\)', '', line('.'))
- " Outer selection selects a column without border on the right. So we move
- " our cursor left if the previous search finds | border, not -+-.
- if getline('.')[virtcol('.')] != '+'
- normal! h
- endif
- " reduce selection a bit more if inner.
- if a:inner
- normal! h
- endif
- " expand selection to the bottom line of the table
- call vimwiki#u#cursor(t_rows[-1][0], virtcol('.'))
- endif
-endfunction
-
-
-function! vimwiki#base#AddHeaderLevel()
- let lnum = line('.')
- let line = getline(lnum)
- let rxHdr = vimwiki#vars#get_syntaxlocal('rxH')
- if line =~# '^\s*$'
- return
- endif
-
- if line =~# vimwiki#vars#get_syntaxlocal('rxHeader')
- let level = vimwiki#u#count_first_sym(line)
- if level < 6
- if vimwiki#vars#get_syntaxlocal('symH')
- let line = substitute(line, '\('.rxHdr.'\+\).\+\1', rxHdr.'&'.rxHdr, '')
- else
- let line = substitute(line, '\('.rxHdr.'\+\).\+', rxHdr.'&', '')
- endif
- call setline(lnum, line)
- endif
- else
- let line = substitute(line, '^\s*', '&'.rxHdr.' ', '')
- if vimwiki#vars#get_syntaxlocal('symH')
- let line = substitute(line, '\s*$', ' '.rxHdr.'&', '')
- endif
- call setline(lnum, line)
- endif
-endfunction
-
-
-function! vimwiki#base#RemoveHeaderLevel()
- let lnum = line('.')
- let line = getline(lnum)
- let rxHdr = vimwiki#vars#get_syntaxlocal('rxH')
- if line =~# '^\s*$'
- return
- endif
-
- if line =~# vimwiki#vars#get_syntaxlocal('rxHeader')
- let level = vimwiki#u#count_first_sym(line)
- let old = repeat(rxHdr, level)
- let new = repeat(rxHdr, level - 1)
-
- let chomp = line =~# rxHdr.'\s'
-
- if vimwiki#vars#get_syntaxlocal('symH')
- let line = substitute(line, old, new, 'g')
- else
- let line = substitute(line, old, new, '')
- endif
-
- if level == 1 && chomp
- let line = substitute(line, '^\s', '', 'g')
- let line = substitute(line, '\s$', '', 'g')
- endif
-
- let line = substitute(line, '\s*$', '', '')
-
- call setline(lnum, line)
- endif
-endfunction
-
-
-
-" Returns all the headers in the current buffer as a list of the form
-" [[line_number, header_level, header_text], [...], [...], ...]
-function! s:collect_headers()
- let is_inside_pre_or_math = 0 " 1: inside pre, 2: inside math, 0: outside
- let headers = []
- for lnum in range(1, line('$'))
- let line_content = getline(lnum)
- if (is_inside_pre_or_math == 1 && line_content =~# vimwiki#vars#get_syntaxlocal('rxPreEnd')) ||
- \ (is_inside_pre_or_math == 2 && line_content =~# vimwiki#vars#get_syntaxlocal('rxMathEnd'))
- let is_inside_pre_or_math = 0
- continue
- endif
- if is_inside_pre_or_math > 0
- continue
- endif
- if line_content =~# vimwiki#vars#get_syntaxlocal('rxPreStart')
- let is_inside_pre_or_math = 1
- continue
- endif
- if line_content =~# vimwiki#vars#get_syntaxlocal('rxMathStart')
- let is_inside_pre_or_math = 2
- continue
- endif
- if line_content !~# vimwiki#vars#get_syntaxlocal('rxHeader')
- continue
- endif
- let header_level = vimwiki#u#count_first_sym(line_content)
- let header_text =
- \ vimwiki#u#trim(matchstr(line_content, vimwiki#vars#get_syntaxlocal('rxHeader')))
- call add(headers, [lnum, header_level, header_text])
- endfor
-
- return headers
-endfunction
-
-
-function! s:current_header(headers, line_number)
- if empty(a:headers)
- return -1
- endif
-
- if a:line_number >= a:headers[-1][0]
- return len(a:headers) - 1
- endif
-
- let current_header_index = -1
- while a:headers[current_header_index+1][0] <= a:line_number
- let current_header_index += 1
- endwhile
- return current_header_index
-endfunction
-
-
-function! s:get_another_header(headers, current_index, direction, operation)
- if empty(a:headers) || a:current_index < 0
- return -1
- endif
- let current_level = a:headers[a:current_index][1]
- let index = a:current_index + a:direction
-
- while 1
- if index < 0 || index >= len(a:headers)
- return -1
- endif
- if eval('a:headers[index][1] ' . a:operation . ' current_level')
- return index
- endif
- let index += a:direction
- endwhile
-endfunction
-
-
-function! vimwiki#base#goto_parent_header()
- let headers = s:collect_headers()
- let current_header_index = s:current_header(headers, line('.'))
- let parent_header = s:get_another_header(headers, current_header_index, -1, '<')
- if parent_header >= 0
- call cursor(headers[parent_header][0], 1)
- else
- echo 'Vimwiki: no parent header found'
- endif
-endfunction
-
-
-function! vimwiki#base#goto_next_header()
- let headers = s:collect_headers()
- let current_header_index = s:current_header(headers, line('.'))
- if current_header_index >= 0 && current_header_index < len(headers) - 1
- call cursor(headers[current_header_index + 1][0], 1)
- elseif current_header_index < 0 && !empty(headers) " we're above the first header
- call cursor(headers[0][0], 1)
- else
- echo 'Vimwiki: no next header found'
- endif
-endfunction
-
-
-function! vimwiki#base#goto_prev_header()
- let headers = s:collect_headers()
- let current_header_index = s:current_header(headers, line('.'))
- " if the cursor already was on a header, jump to the previous one
- if current_header_index >= 1 && headers[current_header_index][0] == line('.')
- let current_header_index -= 1
- endif
- if current_header_index >= 0
- call cursor(headers[current_header_index][0], 1)
- else
- echo 'Vimwiki: no previous header found'
- endif
-endfunction
-
-
-function! vimwiki#base#goto_sibling(direction)
- let headers = s:collect_headers()
- let current_header_index = s:current_header(headers, line('.'))
- let next_potential_sibling =
- \ s:get_another_header(headers, current_header_index, a:direction, '<=')
- if next_potential_sibling >= 0 && headers[next_potential_sibling][1] ==
- \ headers[current_header_index][1]
- call cursor(headers[next_potential_sibling][0], 1)
- else
- echo 'Vimwiki: no sibling header found'
- endif
-endfunction
-
-
-" a:create == 1: creates or updates TOC in current file
-" a:create == 0: update if TOC exists
-function! vimwiki#base#table_of_contents(create)
- let headers = s:collect_headers()
- let numbering = vimwiki#vars#get_global('html_header_numbering')
- let headers_levels = [['', 0], ['', 0], ['', 0], ['', 0], ['', 0], ['', 0]]
- let complete_header_infos = []
- for header in headers
- let h_text = header[2]
- let h_level = header[1]
- if h_text ==# vimwiki#vars#get_global('toc_header') " don't include the TOC's header itself
- continue
- endif
- let headers_levels[h_level-1] = [h_text, headers_levels[h_level-1][1]+1]
- for idx in range(h_level, 5) | let headers_levels[idx] = ['', 0] | endfor
-
- let h_complete_id = ''
- for l in range(h_level-1)
- if headers_levels[l][0] != ''
- let h_complete_id .= headers_levels[l][0].'#'
- endif
- endfor
- let h_complete_id .= headers_levels[h_level-1][0]
-
- if numbering > 0 && numbering <= h_level
- let h_number = join(map(copy(headers_levels[numbering-1 : h_level-1]), 'v:val[1]'), '.')
- let h_number .= vimwiki#vars#get_global('html_header_numbering_sym')
- let h_text = h_number.' '.h_text
- endif
-
- call add(complete_header_infos, [h_level, h_complete_id, h_text])
- endfor
-
- let lines = []
- let startindent = repeat(' ', vimwiki#lst#get_list_margin())
- let indentstring = repeat(' ', vimwiki#u#sw())
- let bullet = vimwiki#lst#default_symbol().' '
- for [lvl, link, desc] in complete_header_infos
- let esc_link = substitute(link, "'", "''", 'g')
- let esc_desc = substitute(desc, "'", "''", 'g')
- let link_tpl = vimwiki#vars#get_global('WikiLinkTemplate2')
- if vimwiki#vars#get_wikilocal('syntax') == 'markdown'
- let link_tpl = vimwiki#vars#get_syntaxlocal('Weblink1Template')
- endif
- let link = s:safesubstitute(link_tpl, '__LinkUrl__',
- \ '#'.esc_link, '')
- let link = s:safesubstitute(link, '__LinkDescription__', esc_desc, '')
- call add(lines, startindent.repeat(indentstring, lvl-1).bullet.link)
- endfor
-
- let links_rx = '\m^\s*'.vimwiki#u#escape(vimwiki#lst#default_symbol()).' '
-
- call vimwiki#base#update_listing_in_buffer(lines,
- \ vimwiki#vars#get_global('toc_header'), links_rx, 1, a:create)
-endfunction
-
-
-" Construct a regular expression matching from template (with special
-" characters properly escaped), by substituting rxUrl for __LinkUrl__, rxDesc
-" for __LinkDescription__, and rxStyle for __LinkStyle__. The three
-" arguments rxUrl, rxDesc, and rxStyle are copied verbatim, without any
-" special character escapes or substitutions.
-function! vimwiki#base#apply_template(template, rxUrl, rxDesc, rxStyle)
- let lnk = a:template
- if a:rxUrl != ""
- let lnk = s:safesubstitute(lnk, '__LinkUrl__', a:rxUrl, 'g')
- endif
- if a:rxDesc != ""
- let lnk = s:safesubstitute(lnk, '__LinkDescription__', a:rxDesc, 'g')
- endif
- if a:rxStyle != ""
- let lnk = s:safesubstitute(lnk, '__LinkStyle__', a:rxStyle, 'g')
- endif
- return lnk
-endfunction
-
-
-function! s:clean_url(url)
- let url = split(a:url, '/\|=\|-\|&\|?\|\.')
- let url = filter(url, 'v:val !=# ""')
- let url = filter(url, 'v:val !=# "www"')
- let url = filter(url, 'v:val !=# "com"')
- let url = filter(url, 'v:val !=# "org"')
- let url = filter(url, 'v:val !=# "net"')
- let url = filter(url, 'v:val !=# "edu"')
- let url = filter(url, 'v:val !=# "http\:"')
- let url = filter(url, 'v:val !=# "https\:"')
- let url = filter(url, 'v:val !=# "file\:"')
- let url = filter(url, 'v:val !=# "xml\:"')
- return join(url, " ")
-endfunction
-
-
-function! s:is_diary_file(filename)
- let file_path = vimwiki#path#path_norm(a:filename)
- let rel_path = vimwiki#vars#get_wikilocal('diary_rel_path')
- let diary_path = vimwiki#path#path_norm(vimwiki#vars#get_wikilocal('path') . rel_path)
- return rel_path != '' && file_path =~# '^'.vimwiki#u#escape(diary_path)
-endfunction
-
-
-function! vimwiki#base#normalize_link_helper(str, rxUrl, rxDesc, template)
- let url = matchstr(a:str, a:rxUrl)
- let descr = matchstr(a:str, a:rxDesc)
- if descr == ""
- let descr = s:clean_url(url)
- endif
- let lnk = s:safesubstitute(a:template, '__LinkDescription__', descr, '')
- let lnk = s:safesubstitute(lnk, '__LinkUrl__', url, '')
- return lnk
-endfunction
-
-
-function! vimwiki#base#normalize_imagelink_helper(str, rxUrl, rxDesc, rxStyle, template)
- let lnk = vimwiki#base#normalize_link_helper(a:str, a:rxUrl, a:rxDesc, a:template)
- let style = matchstr(a:str, a:rxStyle)
- let lnk = s:safesubstitute(lnk, '__LinkStyle__', style, '')
- return lnk
-endfunction
-
-
-function! s:normalize_link_in_diary(lnk)
- let link = a:lnk . vimwiki#vars#get_wikilocal('ext')
- let link_wiki = vimwiki#vars#get_wikilocal('path') . '/' . link
- let link_diary = vimwiki#vars#get_wikilocal('path') . '/'
- \ . vimwiki#vars#get_wikilocal('diary_rel_path') . '/' . link
- let link_exists_in_diary = filereadable(link_diary)
- let link_exists_in_wiki = filereadable(link_wiki)
- let link_is_date = a:lnk =~# '\d\d\d\d-\d\d-\d\d'
-
- if ! link_exists_in_wiki || link_exists_in_diary || link_is_date
- let str = a:lnk
- let rxUrl = vimwiki#vars#get_global('rxWord')
- let rxDesc = ''
- let template = vimwiki#vars#get_global('WikiLinkTemplate1')
- else
- let depth = len(split(vimwiki#vars#get_wikilocal('diary_rel_path'), '/'))
- let str = repeat('../', depth) . a:lnk . '|' . a:lnk
- let rxUrl = '^.*\ze|'
- let rxDesc = '|\zs.*$'
- let template = vimwiki#vars#get_global('WikiLinkTemplate2')
- endif
-
- return vimwiki#base#normalize_link_helper(str, rxUrl, rxDesc, template)
-endfunction
-
-
-function! s:normalize_link_syntax_n()
-
- " try WikiLink
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink'))
- if !empty(lnk)
- let sub = vimwiki#base#normalize_link_helper(lnk,
- \ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'),
- \ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchDescr'),
- \ vimwiki#vars#get_global('WikiLinkTemplate2'))
- call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink'), sub)
- return
- endif
-
- " try WikiIncl
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_global('rxWikiIncl'))
- if !empty(lnk)
- " NO-OP !!
- return
- endif
-
- " try Weblink
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink'))
- if !empty(lnk)
- let sub = vimwiki#base#normalize_link_helper(lnk,
- \ lnk, '', vimwiki#vars#get_global('WikiLinkTemplate2'))
- call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink'), sub)
- return
- endif
-
- " try Word (any characters except separators)
- " rxWord is less permissive than rxWikiLinkUrl which is used in
- " normalize_link_syntax_v
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_global('rxWord'))
- if !empty(lnk)
- if s:is_diary_file(expand("%:p"))
- let sub = s:normalize_link_in_diary(lnk)
- else
- let sub = vimwiki#base#normalize_link_helper(lnk,
- \ vimwiki#vars#get_global('rxWord'), '',
- \ vimwiki#vars#get_global('WikiLinkTemplate1'))
- endif
- call vimwiki#base#replacestr_at_cursor('\V'.lnk, sub)
- return
- endif
-
-endfunction
-
-
-function! s:normalize_link_syntax_v()
- let sel_save = &selection
- let &selection = "old"
- let default_register_save = @"
- let registertype_save = getregtype('"')
-
- try
- " Save selected text to register "
- normal! gv""y
-
- " Set substitution
- if s:is_diary_file(expand("%:p"))
- let sub = s:normalize_link_in_diary(@")
- else
- let sub = s:safesubstitute(vimwiki#vars#get_global('WikiLinkTemplate1'),
- \ '__LinkUrl__', @", '')
- endif
-
- " Put substitution in register " and change text
- call setreg('"', substitute(sub, '\n', '', ''), visualmode())
- normal! `>""pgvd
- finally
- call setreg('"', default_register_save, registertype_save)
- let &selection = sel_save
- endtry
-endfunction
-
-
-function! vimwiki#base#normalize_link(is_visual_mode)
- if exists('*vimwiki#'.vimwiki#vars#get_wikilocal('syntax').'_base#normalize_link')
- " Syntax-specific links
- call vimwiki#{vimwiki#vars#get_wikilocal('syntax')}_base#normalize_link(a:is_visual_mode)
- else
- if !a:is_visual_mode
- call s:normalize_link_syntax_n()
- elseif line("'<") == line("'>")
- " action undefined for multi-line visual mode selections
- call s:normalize_link_syntax_v()
- endif
- endif
-endfunction
-
-
-function! vimwiki#base#detect_nested_syntax()
- let last_word = '\v.*<(\w+)\s*$'
- let lines = map(filter(getline(1, "$"), 'v:val =~ "\\%({{{\\|```\\)" && v:val =~ last_word'),
- \ 'substitute(v:val, last_word, "\\=submatch(1)", "")')
- let dict = {}
- for elem in lines
- let dict[elem] = elem
- endfor
- return dict
-endfunction
-
-
-function! vimwiki#base#complete_links_escaped(ArgLead, CmdLine, CursorPos) abort
- " We can safely ignore args if we use -custom=complete option, Vim engine
- " will do the job of filtering.
- return vimwiki#base#get_globlinks_escaped()
-endfunction
-
-
-" -------------------------------------------------------------------------
-" Load syntax-specific Wiki functionality
-for s:syn in s:vimwiki_get_known_syntaxes()
- execute 'runtime! autoload/vimwiki/'.s:syn.'_base.vim'
-endfor
-" -------------------------------------------------------------------------
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/customwiki2html.sh b/vim/.vim/plugged/vimwiki/autoload/vimwiki/customwiki2html.sh
deleted file mode 100644
index 6b0c17a..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/customwiki2html.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/bash
-
-#
-# This script converts markdown into html, to be used with vimwiki's
-# "customwiki2html" option. Experiment with the two proposed methods by
-# commenting / uncommenting the relevant lines below.
-#
-# NEW! An alternative converter was developed by Jason6Anderson, and can
-# be located at https://github.com/vimwiki-backup/vimwiki/issues/384
-#
-#
-# To use this script, you must have the Discount converter installed.
-#
-# http://www.pell.portland.or.us/~orc/Code/discount/
-#
-# To verify your installation, check that the commands markdown and mkd2text,
-# are on your path.
-#
-# Also verify that this file is executable.
-#
-# Then, in your .vimrc file, set:
-#
-# g:vimwiki_customwiki2html=$HOME.'/.vim/autoload/vimwiki/customwiki2html.sh'
-#
-# On your next restart, Vimwiki will run this script instead of using the
-# internal wiki2html converter.
-#
-
-MARKDOWN=markdown
-MKD2HTML=mkd2html
-
-
-FORCE="$1"
-SYNTAX="$2"
-EXTENSION="$3"
-OUTPUTDIR="$4"
-INPUT="$5"
-CSSFILE="$6"
-
-FORCEFLAG=
-
-[ $FORCE -eq 0 ] || { FORCEFLAG="-f"; };
-[ $SYNTAX = "markdown" ] || { echo "Error: Unsupported syntax"; exit -2; };
-
-OUTPUT="$OUTPUTDIR"/$(basename "$INPUT" .$EXTENSION).html
-
-# # Method 1:
-# # markdown [-d] [-T] [-V] [-b url-base] [-C prefix] [-F bitmap] [-f flags] [-o file] [-s text] [-t text] [textfile]
-#
-# URLBASE=http://example.com
-# $MARKDOWN -T -b $URLBASE -o $OUTPUT $INPUT
-
-
-# Method 2:
-# mkd2html [-css file] [-header string] [-footer string] [file]
-
-$MKD2HTML -css "$CSSFILE" "$INPUT"
-OUTPUTTMP=$(dirname "$INPUT")/$(basename "$INPUT" ."$EXTENSION").html
-mv -f "$OUTPUTTMP" "$OUTPUT"
-
-
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/default.tpl b/vim/.vim/plugged/vimwiki/autoload/vimwiki/default.tpl
deleted file mode 100644
index 3a4045f..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/default.tpl
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<link rel="Stylesheet" type="text/css" href="%root_path%%css%">
-<title>%title%</title>
-<meta http-equiv="Content-Type" content="text/html; charset=%encoding%">
-</head>
-<body>
-%content%
-</body>
-</html>
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/diary.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/diary.vim
deleted file mode 100644
index 164211d..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/diary.vim
+++ /dev/null
@@ -1,322 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Description: Handle diary notes
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-if exists("g:loaded_vimwiki_diary_auto") || &cp
- finish
-endif
-let g:loaded_vimwiki_diary_auto = 1
-
-
-let s:vimwiki_max_scan_for_caption = 5
-
-
-function! s:prefix_zero(num)
- if a:num < 10
- return '0'.a:num
- endif
- return a:num
-endfunction
-
-
-function! s:diary_path(...)
- let idx = a:0 == 0 ? vimwiki#vars#get_bufferlocal('wiki_nr') : a:1
- return vimwiki#vars#get_wikilocal('path', idx).vimwiki#vars#get_wikilocal('diary_rel_path', idx)
-endfunction
-
-
-function! s:diary_index(...)
- let idx = a:0 == 0 ? vimwiki#vars#get_bufferlocal('wiki_nr') : a:1
- return s:diary_path(idx).vimwiki#vars#get_wikilocal('diary_index', idx).
- \ vimwiki#vars#get_wikilocal('ext', idx)
-endfunction
-
-
-function! vimwiki#diary#diary_date_link(...)
- if a:0
- return strftime('%Y-%m-%d', a:1)
- else
- return strftime('%Y-%m-%d')
- endif
-endfunction
-
-
-function! s:get_position_links(link)
- let idx = -1
- let links = []
- if a:link =~# '^\d\{4}-\d\d-\d\d'
- let links = map(s:get_diary_files(), 'fnamemodify(v:val, ":t:r")')
- " include 'today' into links
- if index(links, vimwiki#diary#diary_date_link()) == -1
- call add(links, vimwiki#diary#diary_date_link())
- endif
- call sort(links)
- let idx = index(links, a:link)
- endif
- return [idx, links]
-endfunction
-
-
-function! s:get_month_name(month)
- return vimwiki#vars#get_global('diary_months')[str2nr(a:month)]
-endfunction
-
-
-function! s:read_captions(files)
- let result = {}
- let rx_header = vimwiki#vars#get_syntaxlocal('rxHeader')
- for fl in a:files
- " remove paths and extensions
- let fl_key = substitute(fnamemodify(fl, ':t'), vimwiki#vars#get_wikilocal('ext').'$', '', '')
-
- if filereadable(fl)
- for line in readfile(fl, '', s:vimwiki_max_scan_for_caption)
- if line =~# rx_header && !has_key(result, fl_key)
- let result[fl_key] = vimwiki#u#trim(matchstr(line, rx_header))
- endif
- endfor
- endif
-
- if !has_key(result, fl_key)
- let result[fl_key] = ''
- endif
-
- endfor
- return result
-endfunction
-
-
-function! s:get_diary_files()
- let rx = '^\d\{4}-\d\d-\d\d'
- let s_files = glob(vimwiki#vars#get_wikilocal('path').
- \ vimwiki#vars#get_wikilocal('diary_rel_path').'*'.vimwiki#vars#get_wikilocal('ext'))
- let files = split(s_files, '\n')
- call filter(files, 'fnamemodify(v:val, ":t") =~# "'.escape(rx, '\').'"')
-
- " remove backup files (.wiki~)
- call filter(files, 'v:val !~# ''.*\~$''')
-
- return files
-endfunction
-
-
-function! s:group_links(links)
- let result = {}
- let p_year = 0
- let p_month = 0
- for fl in sort(keys(a:links))
- let year = strpart(fl, 0, 4)
- let month = strpart(fl, 5, 2)
- if p_year != year
- let result[year] = {}
- let p_month = 0
- endif
- if p_month != month
- let result[year][month] = {}
- endif
- let result[year][month][fl] = a:links[fl]
- let p_year = year
- let p_month = month
- endfor
- return result
-endfunction
-
-
-function! s:sort(lst)
- if vimwiki#vars#get_wikilocal('diary_sort') ==? 'desc'
- return reverse(sort(a:lst))
- else
- return sort(a:lst)
- endif
-endfunction
-
-
-function! s:format_diary()
- let result = []
-
- let links_with_captions = s:read_captions(s:get_diary_files())
- let g_files = s:group_links(links_with_captions)
-
- for year in s:sort(keys(g_files))
- call add(result, '')
- call add(result,
- \ substitute(vimwiki#vars#get_syntaxlocal('rxH2_Template'), '__Header__', year , ''))
-
- for month in s:sort(keys(g_files[year]))
- call add(result, '')
- call add(result, substitute(vimwiki#vars#get_syntaxlocal('rxH3_Template'),
- \ '__Header__', s:get_month_name(month), ''))
-
- for [fl, cap] in s:sort(items(g_files[year][month]))
- let link_tpl = vimwiki#vars#get_global('WikiLinkTemplate2')
-
- if vimwiki#vars#get_wikilocal('syntax') == 'markdown'
- let link_tpl = vimwiki#vars#get_syntaxlocal('Weblink1Template')
-
- if empty(cap) " When using markdown syntax, we should ensure we always have a link description.
- let cap = fl
- endif
- elseif empty(cap)
- let link_tpl = vimwiki#vars#get_global('WikiLinkTemplate1')
- endif
-
- let entry = substitute(link_tpl, '__LinkUrl__', fl, '')
- let entry = substitute(entry, '__LinkDescription__', cap, '')
- call add(result, repeat(' ', vimwiki#lst#get_list_margin()).'* '.entry)
- endfor
-
- endfor
- endfor
-
- return result
-endfunction
-
-
-" The given wiki number a:wnum is 1 for the first wiki, 2 for the second and so on. This is in
-" contrast to most other places, where counting starts with 0. When a:wnum is 0, the current wiki
-" is used.
-function! vimwiki#diary#make_note(wnum, ...)
- if a:wnum == 0
- let wiki_nr = vimwiki#vars#get_bufferlocal('wiki_nr')
- if wiki_nr < 0 " this happens when e.g. VimwikiMakeDiaryNote was called outside a wiki buffer
- let wiki_nr = 0
- endif
- else
- let wiki_nr = a:wnum - 1
- endif
-
- if wiki_nr >= vimwiki#vars#number_of_wikis()
- echomsg 'Vimwiki Error: Wiki '.wiki_nr.' is not registered in g:vimwiki_list!'
- return
- endif
-
- " TODO: refactor it. base#goto_index uses the same
-
- call vimwiki#path#mkdir(vimwiki#vars#get_wikilocal('path', wiki_nr).
- \ vimwiki#vars#get_wikilocal('diary_rel_path', wiki_nr))
-
- let cmd = 'edit'
- if a:0
- if a:1 == 1
- let cmd = 'tabedit'
- elseif a:1 == 2
- let cmd = 'split'
- elseif a:1 == 3
- let cmd = 'vsplit'
- endif
- endif
- if a:0>1
- let link = 'diary:'.a:2
- else
- let link = 'diary:'.vimwiki#diary#diary_date_link()
- endif
-
- call vimwiki#base#open_link(cmd, link, s:diary_index(wiki_nr))
-endfunction
-
-
-function! vimwiki#diary#goto_diary_index(wnum)
- if a:wnum > vimwiki#vars#number_of_wikis()
- echomsg 'Vimwiki Error: Wiki '.a:wnum.' is not registered in g:vimwiki_list!'
- return
- endif
-
- " TODO: refactor it. base#goto_index uses the same
- if a:wnum > 0
- let idx = a:wnum - 1
- else
- let idx = 0
- endif
-
- call vimwiki#base#edit_file('e', s:diary_index(idx), '')
-endfunction
-
-
-function! vimwiki#diary#goto_next_day()
- let link = ''
- let [idx, links] = s:get_position_links(expand('%:t:r'))
-
- if idx == (len(links) - 1)
- return
- endif
-
- if idx != -1 && idx < len(links) - 1
- let link = 'diary:'.links[idx+1]
- else
- " goto today
- let link = 'diary:'.vimwiki#diary#diary_date_link()
- endif
-
- if len(link)
- call vimwiki#base#open_link(':e ', link)
- endif
-endfunction
-
-
-function! vimwiki#diary#goto_prev_day()
- let link = ''
- let [idx, links] = s:get_position_links(expand('%:t:r'))
-
- if idx == 0
- return
- endif
-
- if idx > 0
- let link = 'diary:'.links[idx-1]
- else
- " goto today
- let link = 'diary:'.vimwiki#diary#diary_date_link()
- endif
-
- if len(link)
- call vimwiki#base#open_link(':e ', link)
- endif
-endfunction
-
-
-function! vimwiki#diary#generate_diary_section()
- let current_file = vimwiki#path#path_norm(expand("%:p"))
- let diary_file = vimwiki#path#path_norm(s:diary_index())
- if vimwiki#path#is_equal(current_file, diary_file)
- let content_rx = '^\%(\s*\* \)\|\%(^\s*$\)\|\%('.vimwiki#vars#get_syntaxlocal('rxHeader').'\)'
- call vimwiki#base#update_listing_in_buffer(s:format_diary(),
- \ vimwiki#vars#get_wikilocal('diary_header'), content_rx, line('$')+1, 1)
- else
- echomsg 'Vimwiki Error: You can generate diary links only in a diary index page!'
- endif
-endfunction
-
-
-" Callback function for Calendar.vim
-function! vimwiki#diary#calendar_action(day, month, year, week, dir)
- let day = s:prefix_zero(a:day)
- let month = s:prefix_zero(a:month)
-
- let link = a:year.'-'.month.'-'.day
- if winnr('#') == 0
- if a:dir ==? 'V'
- vsplit
- else
- split
- endif
- else
- wincmd p
- if !&hidden && &modified
- new
- endif
- endif
-
- call vimwiki#diary#make_note(0, 0, link)
-endfunction
-
-
-function vimwiki#diary#calendar_sign(day, month, year)
- let day = s:prefix_zero(a:day)
- let month = s:prefix_zero(a:month)
- let sfile = vimwiki#vars#get_wikilocal('path').vimwiki#vars#get_wikilocal('diary_rel_path').
- \ a:year.'-'.month.'-'.day.vimwiki#vars#get_wikilocal('ext')
- return filereadable(expand(sfile))
-endfunction
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/html.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/html.vim
deleted file mode 100644
index bce5465..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/html.vim
+++ /dev/null
@@ -1,1666 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Description: HTML export
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-if exists("g:loaded_vimwiki_html_auto") || &cp
- finish
-endif
-let g:loaded_vimwiki_html_auto = 1
-
-
-function! s:root_path(subdir)
- return repeat('../', len(split(a:subdir, '[/\\]')))
-endfunction
-
-
-function! s:syntax_supported()
- return vimwiki#vars#get_wikilocal('syntax') ==? "default"
-endfunction
-
-
-function! s:remove_blank_lines(lines)
- while !empty(a:lines) && a:lines[-1] =~# '^\s*$'
- call remove(a:lines, -1)
- endwhile
-endfunction
-
-
-function! s:is_web_link(lnk)
- if a:lnk =~# '^\%(https://\|http://\|www.\|ftp://\|file://\|mailto:\)'
- return 1
- endif
- return 0
-endfunction
-
-
-function! s:is_img_link(lnk)
- if tolower(a:lnk) =~# '\.\%(png\|jpg\|gif\|jpeg\)$'
- return 1
- endif
- return 0
-endfunction
-
-
-function! s:has_abs_path(fname)
- if a:fname =~# '\(^.:\)\|\(^/\)'
- return 1
- endif
- return 0
-endfunction
-
-
-function! s:find_autoload_file(name)
- for path in split(&runtimepath, ',')
- let fname = path.'/autoload/vimwiki/'.a:name
- if glob(fname) != ''
- return fname
- endif
- endfor
- return ''
-endfunction
-
-
-function! s:default_CSS_full_name(path)
- let path = expand(a:path)
- let css_full_name = path . vimwiki#vars#get_wikilocal('css_name')
- return css_full_name
-endfunction
-
-
-function! s:create_default_CSS(path)
- let css_full_name = s:default_CSS_full_name(a:path)
- if glob(css_full_name) == ""
- call vimwiki#path#mkdir(fnamemodify(css_full_name, ':p:h'))
- let default_css = s:find_autoload_file('style.css')
- if default_css != ''
- let lines = readfile(default_css)
- call writefile(lines, css_full_name)
- return 1
- endif
- endif
- return 0
-endfunction
-
-
-function! s:template_full_name(name)
- if a:name == ''
- let name = vimwiki#vars#get_wikilocal('template_default')
- else
- let name = a:name
- endif
-
- let fname = expand(vimwiki#vars#get_wikilocal('template_path').
- \ name . vimwiki#vars#get_wikilocal('template_ext'))
-
- if filereadable(fname)
- return fname
- else
- return ''
- endif
-endfunction
-
-
-function! s:get_html_template(template)
- " TODO: refactor it!!!
- let lines=[]
-
- if a:template != ''
- let template_name = s:template_full_name(a:template)
- try
- let lines = readfile(template_name)
- return lines
- catch /E484/
- echomsg 'Vimwiki: HTML template '.template_name. ' does not exist!'
- endtry
- endif
-
- let default_tpl = s:template_full_name('')
-
- if default_tpl == ''
- let default_tpl = s:find_autoload_file('default.tpl')
- endif
-
- let lines = readfile(default_tpl)
- return lines
-endfunction
-
-
-function! s:safe_html_preformatted(line)
- let line = substitute(a:line,'<','\&lt;', 'g')
- let line = substitute(line,'>','\&gt;', 'g')
- return line
-endfunction
-
-
-function! s:escape_html_attribute(string)
- return substitute(a:string, '"', '\&quot;', 'g')
-endfunction
-
-
-function! s:safe_html_line(line)
- " escape & < > when producing HTML text
- " s:lt_pattern, s:gt_pattern depend on g:vimwiki_valid_html_tags
- " and are set in vimwiki#html#Wiki2HTML()
- let line = substitute(a:line, '&', '\&amp;', 'g')
- let line = substitute(line,s:lt_pattern,'\&lt;', 'g')
- let line = substitute(line,s:gt_pattern,'\&gt;', 'g')
-
- return line
-endfunction
-
-
-function! s:delete_html_files(path)
- let htmlfiles = split(glob(a:path.'**/*.html'), '\n')
- for fname in htmlfiles
- " ignore user html files, e.g. search.html,404.html
- if stridx(vimwiki#vars#get_global('user_htmls'), fnamemodify(fname, ":t")) >= 0
- continue
- endif
-
- " delete if there is no corresponding wiki file
- let subdir = vimwiki#base#subdir(vimwiki#vars#get_wikilocal('path_html'), fname)
- let wikifile = vimwiki#vars#get_wikilocal('path').subdir.
- \fnamemodify(fname, ":t:r").vimwiki#vars#get_wikilocal('ext')
- if filereadable(wikifile)
- continue
- endif
-
- try
- call delete(fname)
- catch
- echomsg 'Vimwiki Error: Cannot delete '.fname
- endtry
- endfor
-endfunction
-
-
-function! s:mid(value, cnt)
- return strpart(a:value, a:cnt, len(a:value) - 2 * a:cnt)
-endfunction
-
-
-function! s:subst_func(line, regexp, func, ...)
- " Substitute text found by regexp with result of
- " func(matched) function.
-
- let pos = 0
- let lines = split(a:line, a:regexp, 1)
- let res_line = ""
- for line in lines
- let res_line = res_line.line
- let matched = matchstr(a:line, a:regexp, pos)
- if matched != ""
- if a:0
- let res_line = res_line.{a:func}(matched, a:1)
- else
- let res_line = res_line.{a:func}(matched)
- endif
- endif
- let pos = matchend(a:line, a:regexp, pos)
- endfor
- return res_line
-endfunction
-
-
-function! s:save_vimwiki_buffer()
- if &filetype ==? 'vimwiki' && filewritable(expand('%'))
- silent update
- endif
-endfunction
-
-
-function! s:process_date(placeholders, default_date)
- if !empty(a:placeholders)
- for [placeholder, row, idx] in a:placeholders
- let [type, param] = placeholder
- if type ==# 'date' && !empty(param)
- return param
- endif
- endfor
- endif
- return a:default_date
-endfunction
-
-
-function! s:process_title(placeholders, default_title)
- if !empty(a:placeholders)
- for [placeholder, row, idx] in a:placeholders
- let [type, param] = placeholder
- if type ==# 'title' && !empty(param)
- return param
- endif
- endfor
- endif
- return a:default_title
-endfunction
-
-
-function! s:is_html_uptodate(wikifile)
- let tpl_time = -1
-
- let tpl_file = s:template_full_name('')
- if tpl_file != ''
- let tpl_time = getftime(tpl_file)
- endif
-
- let wikifile = fnamemodify(a:wikifile, ":p")
- let htmlfile = expand(vimwiki#vars#get_wikilocal('path_html') .
- \ vimwiki#vars#get_bufferlocal('subdir') . fnamemodify(wikifile, ":t:r").".html")
-
- if getftime(wikifile) <= getftime(htmlfile) && tpl_time <= getftime(htmlfile)
- return 1
- endif
- return 0
-endfunction
-
-
-function! s:html_insert_contents(html_lines, content)
- let lines = []
- for line in a:html_lines
- if line =~# '%content%'
- let parts = split(line, '%content%', 1)
- if empty(parts)
- call extend(lines, a:content)
- else
- for idx in range(len(parts))
- call add(lines, parts[idx])
- if idx < len(parts) - 1
- call extend(lines, a:content)
- endif
- endfor
- endif
- else
- call add(lines, line)
- endif
- endfor
- return lines
-endfunction
-
-
-function! s:tag_eqin(value)
- " mathJAX wants \( \) for inline maths
- return '\('.s:mid(a:value, 1).'\)'
-endfunction
-
-
-function! s:tag_em(value)
- return '<em>'.s:mid(a:value, 1).'</em>'
-endfunction
-
-
-function! s:tag_strong(value, header_ids)
- let text = s:mid(a:value, 1)
- let id = s:escape_html_attribute(text)
- let complete_id = ''
- for l in range(6)
- if a:header_ids[l][0] != ''
- let complete_id .= a:header_ids[l][0].'-'
- endif
- endfor
- if a:header_ids[5][0] == ''
- let complete_id = complete_id[:-2]
- endif
- let complete_id .= '-'.id
- return '<span id="'.s:escape_html_attribute(complete_id).'"></span><strong id="'
- \ .id.'">'.text.'</strong>'
-endfunction
-
-
-function! s:tag_tags(value, header_ids)
- let complete_id = ''
- for level in range(6)
- if a:header_ids[level][0] != ''
- let complete_id .= a:header_ids[level][0].'-'
- endif
- endfor
- if a:header_ids[5][0] == ''
- let complete_id = complete_id[:-2]
- endif
- let complete_id = s:escape_html_attribute(complete_id)
-
- let result = []
- for tag in split(a:value, ':')
- let id = s:escape_html_attribute(tag)
- call add(result, '<span id="'.complete_id.'-'.id.'"></span><span class="tag" id="'
- \ .id.'">'.tag.'</span>')
- endfor
- return join(result)
-endfunction
-
-
-function! s:tag_todo(value)
- return '<span class="todo">'.a:value.'</span>'
-endfunction
-
-
-function! s:tag_strike(value)
- return '<del>'.s:mid(a:value, 2).'</del>'
-endfunction
-
-
-function! s:tag_super(value)
- return '<sup><small>'.s:mid(a:value, 1).'</small></sup>'
-endfunction
-
-
-function! s:tag_sub(value)
- return '<sub><small>'.s:mid(a:value, 2).'</small></sub>'
-endfunction
-
-
-function! s:tag_code(value)
- return '<code>'.s:safe_html_preformatted(s:mid(a:value, 1)).'</code>'
-endfunction
-
-
-" match n-th ARG within {{URL[|ARG1|ARG2|...]}}
-" *c,d,e),...
-function! s:incl_match_arg(nn_index)
- let rx = vimwiki#vars#get_global('rxWikiInclPrefix'). vimwiki#vars#get_global('rxWikiInclUrl')
- let rx = rx . repeat(vimwiki#vars#get_global('rxWikiInclSeparator') .
- \ vimwiki#vars#get_global('rxWikiInclArg'), a:nn_index-1)
- if a:nn_index > 0
- let rx = rx. vimwiki#vars#get_global('rxWikiInclSeparator'). '\zs' .
- \ vimwiki#vars#get_global('rxWikiInclArg') . '\ze'
- endif
- let rx = rx . vimwiki#vars#get_global('rxWikiInclArgs') .
- \ vimwiki#vars#get_global('rxWikiInclSuffix')
- return rx
-endfunction
-
-
-function! s:linkify_link(src, descr)
- let src_str = ' href="'.s:escape_html_attribute(a:src).'"'
- let descr = substitute(a:descr,'^\s*\(.*\)\s*$','\1','')
- let descr = (descr == "" ? a:src : descr)
- let descr_str = (descr =~# vimwiki#vars#get_global('rxWikiIncl')
- \ ? s:tag_wikiincl(descr)
- \ : descr)
- return '<a'.src_str.'>'.descr_str.'</a>'
-endfunction
-
-
-function! s:linkify_image(src, descr, verbatim_str)
- let src_str = ' src="'.a:src.'"'
- let descr_str = (a:descr != '' ? ' alt="'.a:descr.'"' : '')
- let verbatim_str = (a:verbatim_str != '' ? ' '.a:verbatim_str : '')
- return '<img'.src_str.descr_str.verbatim_str.' />'
-endfunction
-
-
-function! s:tag_weblink(value)
- " Weblink Template -> <a href="url">descr</a>
- let str = a:value
- let url = matchstr(str, vimwiki#vars#get_syntaxlocal('rxWeblinkMatchUrl'))
- let descr = matchstr(str, vimwiki#vars#get_syntaxlocal('rxWeblinkMatchDescr'))
- let line = s:linkify_link(url, descr)
- return line
-endfunction
-
-
-function! s:tag_wikiincl(value)
- " {{imgurl|arg1|arg2}} -> ???
- " {{imgurl}} -> <img src="imgurl"/>
- " {{imgurl|descr|style="A"}} -> <img src="imgurl" alt="descr" style="A" />
- " {{imgurl|descr|class="B"}} -> <img src="imgurl" alt="descr" class="B" />
- let str = a:value
- " custom transclusions
- let line = VimwikiWikiIncludeHandler(str)
- " otherwise, assume image transclusion
- if line == ''
- let url_0 = matchstr(str, vimwiki#vars#get_global('rxWikiInclMatchUrl'))
- let descr = matchstr(str, s:incl_match_arg(1))
- let verbatim_str = matchstr(str, s:incl_match_arg(2))
-
- let link_infos = vimwiki#base#resolve_link(url_0)
-
- if link_infos.scheme =~# '\mlocal\|wiki\d\+\|diary'
- let url = vimwiki#path#relpath(fnamemodify(s:current_html_file, ':h'), link_infos.filename)
- " strip the .html extension when we have wiki links, so that the user can
- " simply write {{image.png}} to include an image from the wiki directory
- if link_infos.scheme =~# '\mwiki\d\+\|diary'
- let url = fnamemodify(url, ':r')
- endif
- else
- let url = link_infos.filename
- endif
-
- let url = escape(url, '#')
- let line = s:linkify_image(url, descr, verbatim_str)
- endif
- return line
-endfunction
-
-
-function! s:tag_wikilink(value)
- " [[url]] -> <a href="url.html">url</a>
- " [[url|descr]] -> <a href="url.html">descr</a>
- " [[url|{{...}}]] -> <a href="url.html"> ... </a>
- " [[fileurl.ext|descr]] -> <a href="fileurl.ext">descr</a>
- " [[dirurl/|descr]] -> <a href="dirurl/index.html">descr</a>
- " [[url#a1#a2]] -> <a href="url.html#a1-a2">url#a1#a2</a>
- " [[#a1#a2]] -> <a href="#a1-a2">#a1#a2</a>
- let str = a:value
- let url = matchstr(str, vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'))
- let descr = matchstr(str, vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchDescr'))
- let descr = (substitute(descr,'^\s*\(.*\)\s*$','\1','') != '' ? descr : url)
-
- let line = VimwikiLinkConverter(url, s:current_wiki_file, s:current_html_file)
- if line == ''
- let link_infos = vimwiki#base#resolve_link(url, s:current_wiki_file)
-
- if link_infos.scheme ==# 'file'
- " external file links are always absolute
- let html_link = link_infos.filename
- elseif link_infos.scheme ==# 'local'
- let html_link = vimwiki#path#relpath(fnamemodify(s:current_html_file, ':h'),
- \ link_infos.filename)
- elseif link_infos.scheme =~# '\mwiki\d\+\|diary'
- " wiki links are always relative to the current file
- let html_link = vimwiki#path#relpath(
- \ fnamemodify(s:current_wiki_file, ':h'),
- \ fnamemodify(link_infos.filename, ':r'))
- if html_link !~ '\m/$'
- let html_link .= '.html'
- endif
- else " other schemes, like http, are left untouched
- let html_link = link_infos.filename
- endif
-
- if link_infos.anchor != ''
- let anchor = substitute(link_infos.anchor, '#', '-', 'g')
- let html_link .= '#'.anchor
- endif
- let line = html_link
- endif
-
- let line = s:linkify_link(line, descr)
- return line
-endfunction
-
-
-function! s:tag_remove_internal_link(value)
- let value = s:mid(a:value, 2)
-
- let line = ''
- if value =~# '|'
- let link_parts = split(value, "|", 1)
- else
- let link_parts = split(value, "][", 1)
- endif
-
- if len(link_parts) > 1
- if len(link_parts) < 3
- let style = ""
- else
- let style = link_parts[2]
- endif
- let line = link_parts[1]
- else
- let line = value
- endif
- return line
-endfunction
-
-
-function! s:tag_remove_external_link(value)
- let value = s:mid(a:value, 1)
-
- let line = ''
- if s:is_web_link(value)
- let lnkElements = split(value)
- let head = lnkElements[0]
- let rest = join(lnkElements[1:])
- if rest == ""
- let rest = head
- endif
- let line = rest
- elseif s:is_img_link(value)
- let line = '<img src="'.value.'" />'
- else
- " [alskfj sfsf] shouldn't be a link. So return it as it was --
- " enclosed in [...]
- let line = '['.value.']'
- endif
- return line
-endfunction
-
-
-function! s:make_tag(line, regexp, func, ...)
- " Make tags for a given matched regexp.
- " Exclude preformatted text and href links.
- " FIXME
- let patt_splitter = '\(`[^`]\+`\)\|'.
- \ '\('.vimwiki#vars#get_syntaxlocal('rxPreStart').'.\+'.
- \ vimwiki#vars#get_syntaxlocal('rxPreEnd').'\)\|'.
- \ '\(<a href.\{-}</a>\)\|'.
- \ '\(<img src.\{-}/>\)\|'.
- \ '\(<pre.\{-}</pre>\)\|'.
- \ '\('.vimwiki#vars#get_syntaxlocal('rxEqIn').'\)'
-
- "FIXME FIXME !!! these can easily occur on the same line!
- "XXX {{{ }}} ??? obsolete
- if '`[^`]\+`' ==# a:regexp || '{{{.\+}}}' ==# a:regexp ||
- \ vimwiki#vars#get_syntaxlocal('rxEqIn') ==# a:regexp
- let res_line = s:subst_func(a:line, a:regexp, a:func)
- else
- let pos = 0
- " split line with patt_splitter to have parts of line before and after
- " href links, preformatted text
- " ie:
- " hello world `is just a` simple <a href="link.html">type of</a> prg.
- " result:
- " ['hello world ', ' simple ', 'type of', ' prg']
- let lines = split(a:line, patt_splitter, 1)
- let res_line = ""
- for line in lines
- if a:0
- let res_line = res_line.s:subst_func(line, a:regexp, a:func, a:1)
- else
- let res_line = res_line.s:subst_func(line, a:regexp, a:func)
- endif
- let res_line = res_line.matchstr(a:line, patt_splitter, pos)
- let pos = matchend(a:line, patt_splitter, pos)
- endfor
- endif
- return res_line
-endfunction
-
-
-function! s:process_tags_remove_links(line)
- let line = a:line
- let line = s:make_tag(line, '\[\[.\{-}\]\]', 's:tag_remove_internal_link')
- let line = s:make_tag(line, '\[.\{-}\]', 's:tag_remove_external_link')
- return line
-endfunction
-
-
-function! s:process_tags_typefaces(line, header_ids)
- let line = a:line
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxItalic'), 's:tag_em')
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxBold'), 's:tag_strong', a:header_ids)
- let line = s:make_tag(line, vimwiki#vars#get_global('rxTodo'), 's:tag_todo')
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxDelText'), 's:tag_strike')
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxSuperScript'), 's:tag_super')
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxSubScript'), 's:tag_sub')
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxCode'), 's:tag_code')
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxEqIn'), 's:tag_eqin')
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxTags'), 's:tag_tags', a:header_ids)
- return line
-endfunction
-
-
-function! s:process_tags_links(line)
- let line = a:line
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxWikiLink'), 's:tag_wikilink')
- let line = s:make_tag(line, vimwiki#vars#get_global('rxWikiIncl'), 's:tag_wikiincl')
- let line = s:make_tag(line, vimwiki#vars#get_syntaxlocal('rxWeblink'), 's:tag_weblink')
- return line
-endfunction
-
-
-function! s:process_inline_tags(line, header_ids)
- let line = s:process_tags_links(a:line)
- let line = s:process_tags_typefaces(line, a:header_ids)
- return line
-endfunction
-
-
-function! s:close_tag_pre(pre, ldest)
- if a:pre[0]
- call insert(a:ldest, "</pre>")
- return 0
- endif
- return a:pre
-endfunction
-
-
-function! s:close_tag_math(math, ldest)
- if a:math[0]
- call insert(a:ldest, "\\\]")
- return 0
- endif
- return a:math
-endfunction
-
-
-function! s:close_tag_quote(quote, ldest)
- if a:quote
- call insert(a:ldest, "</blockquote>")
- return 0
- endif
- return a:quote
-endfunction
-
-
-function! s:close_tag_para(para, ldest)
- if a:para
- call insert(a:ldest, "</p>")
- return 0
- endif
- return a:para
-endfunction
-
-
-function! s:close_tag_table(table, ldest, header_ids)
- " The first element of table list is a string which tells us if table should be centered.
- " The rest elements are rows which are lists of columns:
- " ['center',
- " [ CELL1, CELL2, CELL3 ],
- " [ CELL1, CELL2, CELL3 ],
- " [ CELL1, CELL2, CELL3 ],
- " ]
- " And CELLx is: { 'body': 'col_x', 'rowspan': r, 'colspan': c }
-
- function! s:sum_rowspan(table)
- let table = a:table
-
- " Get max cells
- let max_cells = 0
- for row in table[1:]
- let n_cells = len(row)
- if n_cells > max_cells
- let max_cells = n_cells
- end
- endfor
-
- " Sum rowspan
- for cell_idx in range(max_cells)
- let rows = 1
-
- for row_idx in range(len(table)-1, 1, -1)
- if cell_idx >= len(table[row_idx])
- let rows = 1
- continue
- endif
-
- if table[row_idx][cell_idx].rowspan == 0
- let rows += 1
- else " table[row_idx][cell_idx].rowspan == 1
- let table[row_idx][cell_idx].rowspan = rows
- let rows = 1
- endif
- endfor
- endfor
- endfunction
-
- function! s:sum_colspan(table)
- for row in a:table[1:]
- let cols = 1
-
- for cell_idx in range(len(row)-1, 0, -1)
- if row[cell_idx].colspan == 0
- let cols += 1
- else "row[cell_idx].colspan == 1
- let row[cell_idx].colspan = cols
- let cols = 1
- endif
- endfor
- endfor
- endfunction
-
- function! s:close_tag_row(row, header, ldest, header_ids)
- call add(a:ldest, '<tr>')
-
- " Set tag element of columns
- if a:header
- let tag_name = 'th'
- else
- let tag_name = 'td'
- end
-
- " Close tag of columns
- for cell in a:row
- if cell.rowspan == 0 || cell.colspan == 0
- continue
- endif
-
- if cell.rowspan > 1
- let rowspan_attr = ' rowspan="' . cell.rowspan . '"'
- else "cell.rowspan == 1
- let rowspan_attr = ''
- endif
- if cell.colspan > 1
- let colspan_attr = ' colspan="' . cell.colspan . '"'
- else "cell.colspan == 1
- let colspan_attr = ''
- endif
-
- call add(a:ldest, '<' . tag_name . rowspan_attr . colspan_attr .'>')
- call add(a:ldest, s:process_inline_tags(cell.body, a:header_ids))
- call add(a:ldest, '</'. tag_name . '>')
- endfor
-
- call add(a:ldest, '</tr>')
- endfunction
-
- let table = a:table
- let ldest = a:ldest
- if len(table)
- call s:sum_rowspan(table)
- call s:sum_colspan(table)
-
- if table[0] ==# 'center'
- call add(ldest, "<table class='center'>")
- else
- call add(ldest, "<table>")
- endif
-
- " Empty lists are table separators.
- " Search for the last empty list. All the above rows would be a table header.
- " We should exclude the first element of the table list as it is a text tag
- " that shows if table should be centered or not.
- let head = 0
- for idx in range(len(table)-1, 1, -1)
- if empty(table[idx])
- let head = idx
- break
- endif
- endfor
- if head > 0
- for row in table[1 : head-1]
- if !empty(filter(row, '!empty(v:val)'))
- call s:close_tag_row(row, 1, ldest, a:header_ids)
- endif
- endfor
- for row in table[head+1 :]
- call s:close_tag_row(row, 0, ldest, a:header_ids)
- endfor
- else
- for row in table[1 :]
- call s:close_tag_row(row, 0, ldest, a:header_ids)
- endfor
- endif
- call add(ldest, "</table>")
- let table = []
- endif
- return table
-endfunction
-
-
-function! s:close_tag_list(lists, ldest)
- while len(a:lists)
- let item = remove(a:lists, 0)
- call insert(a:ldest, item[0])
- endwhile
-endfunction
-
-
-function! s:close_tag_def_list(deflist, ldest)
- if a:deflist
- call insert(a:ldest, "</dl>")
- return 0
- endif
- return a:deflist
-endfunction
-
-
-function! s:process_tag_pre(line, pre)
- " pre is the list of [is_in_pre, indent_of_pre]
- "XXX always outputs a single line or empty list!
- let lines = []
- let pre = a:pre
- let processed = 0
- "XXX huh?
- "if !pre[0] && a:line =~# '^\s*{{{[^\(}}}\)]*\s*$'
- if !pre[0] && a:line =~# '^\s*{{{'
- let class = matchstr(a:line, '{{{\zs.*$')
- "FIXME class cannot contain arbitrary strings
- let class = substitute(class, '\s\+$', '', 'g')
- if class != ""
- call add(lines, "<pre ".class.">")
- else
- call add(lines, "<pre>")
- endif
- let pre = [1, len(matchstr(a:line, '^\s*\ze{{{'))]
- let processed = 1
- elseif pre[0] && a:line =~# '^\s*}}}\s*$'
- let pre = [0, 0]
- call add(lines, "</pre>")
- let processed = 1
- elseif pre[0]
- let processed = 1
- "XXX destroys indent in general!
- "call add(lines, substitute(a:line, '^\s\{'.pre[1].'}', '', ''))
- call add(lines, s:safe_html_preformatted(a:line))
- endif
- return [processed, lines, pre]
-endfunction
-
-
-function! s:process_tag_math(line, math)
- " math is the list of [is_in_math, indent_of_math]
- let lines = []
- let math = a:math
- let processed = 0
- if !math[0] && a:line =~# '^\s*{{\$[^\(}}$\)]*\s*$'
- let class = matchstr(a:line, '{{$\zs.*$')
- "FIXME class cannot be any string!
- let class = substitute(class, '\s\+$', '', 'g')
- " store the environment name in a global variable in order to close the
- " environment properly
- let s:current_math_env = matchstr(class, '^%\zs\S\+\ze%')
- if s:current_math_env != ""
- call add(lines, substitute(class, '^%\(\S\+\)%','\\begin{\1}', ''))
- elseif class != ""
- call add(lines, "\\\[".class)
- else
- call add(lines, "\\\[")
- endif
- let math = [1, len(matchstr(a:line, '^\s*\ze{{\$'))]
- let processed = 1
- elseif math[0] && a:line =~# '^\s*}}\$\s*$'
- let math = [0, 0]
- if s:current_math_env != ""
- call add(lines, "\\end{".s:current_math_env."}")
- else
- call add(lines, "\\\]")
- endif
- let processed = 1
- elseif math[0]
- let processed = 1
- call add(lines, substitute(a:line, '^\s\{'.math[1].'}', '', ''))
- endif
- return [processed, lines, math]
-endfunction
-
-
-function! s:process_tag_quote(line, quote)
- let lines = []
- let quote = a:quote
- let processed = 0
- if a:line =~# '^\s\{4,}\S'
- if !quote
- call add(lines, "<blockquote>")
- let quote = 1
- endif
- let processed = 1
- call add(lines, substitute(a:line, '^\s*', '', ''))
- elseif quote
- call add(lines, "</blockquote>")
- let quote = 0
- endif
- return [processed, lines, quote]
-endfunction
-
-
-function! s:process_tag_list(line, lists)
-
- function! s:add_checkbox(line, rx_list)
- let st_tag = '<li>'
- let chk = matchlist(a:line, a:rx_list)
- if !empty(chk) && len(chk[1]) > 0
- let completion = index(vimwiki#vars#get_syntaxlocal('listsyms_list'), chk[1])
- let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
- if completion == 0
- let st_tag = '<li class="done0">'
- elseif completion == -1 && chk[1] == vimwiki#vars#get_global('listsym_rejected')
- let st_tag = '<li class="rejected">'
- elseif completion > 0 && completion < n
- let completion = float2nr(round(completion / (n-1.0) * 3.0 + 0.5 ))
- let st_tag = '<li class="done'.completion.'">'
- endif
- endif
- return [st_tag, '']
- endfunction
-
-
- let in_list = (len(a:lists) > 0)
-
- " If it is not list yet then do not process line that starts from *bold*
- " text.
- " XXX necessary? in *bold* text, no space must follow the first *
- if !in_list
- let pos = match(a:line, '^\s*'.vimwiki#vars#get_syntaxlocal('rxBold'))
- if pos != -1
- return [0, []]
- endif
- endif
-
- let lines = []
- let processed = 0
-
- if a:line =~# '^\s*'.s:bullets.'\s'
- let lstSym = matchstr(a:line, s:bullets)
- let lstTagOpen = '<ul>'
- let lstTagClose = '</ul>'
- let lstRegExp = '^\s*'.s:bullets.'\s'
- elseif a:line =~# '^\s*'.s:numbers.'\s'
- let lstSym = matchstr(a:line, s:numbers)
- let lstTagOpen = '<ol>'
- let lstTagClose = '</ol>'
- let lstRegExp = '^\s*'.s:numbers.'\s'
- else
- let lstSym = ''
- let lstTagOpen = ''
- let lstTagClose = ''
- let lstRegExp = ''
- endif
-
- if lstSym != ''
- " To get proper indent level 'retab' the line -- change all tabs
- " to spaces*tabstop
- let line = substitute(a:line, '\t', repeat(' ', &tabstop), 'g')
- let indent = stridx(line, lstSym)
-
- let checkbox = '\s*\[\(.\)\]\s*'
- let [st_tag, en_tag] = s:add_checkbox(line, lstRegExp.checkbox)
-
- if !in_list
- call add(a:lists, [lstTagClose, indent])
- call add(lines, lstTagOpen)
- elseif (in_list && indent > a:lists[-1][1])
- let item = remove(a:lists, -1)
- call add(lines, item[0])
-
- call add(a:lists, [lstTagClose, indent])
- call add(lines, lstTagOpen)
- elseif (in_list && indent < a:lists[-1][1])
- while len(a:lists) && indent < a:lists[-1][1]
- let item = remove(a:lists, -1)
- call add(lines, item[0])
- endwhile
- elseif in_list
- let item = remove(a:lists, -1)
- call add(lines, item[0])
- endif
-
- call add(a:lists, [en_tag, indent])
- call add(lines, st_tag)
- call add(lines, substitute(a:line, lstRegExp.'\%('.checkbox.'\)\?', '', ''))
- let processed = 1
- elseif in_list && a:line =~# '^\s\+\S\+'
- if vimwiki#vars#get_global('list_ignore_newline')
- call add(lines, a:line)
- else
- call add(lines, '<br />'.a:line)
- endif
- let processed = 1
- else
- call s:close_tag_list(a:lists, lines)
- endif
- return [processed, lines]
-endfunction
-
-
-function! s:process_tag_def_list(line, deflist)
- let lines = []
- let deflist = a:deflist
- let processed = 0
- let matches = matchlist(a:line, '\(^.*\)::\%(\s\|$\)\(.*\)')
- if !deflist && len(matches) > 0
- call add(lines, "<dl>")
- let deflist = 1
- endif
- if deflist && len(matches) > 0
- if matches[1] != ''
- call add(lines, "<dt>".matches[1]."</dt>")
- endif
- if matches[2] != ''
- call add(lines, "<dd>".matches[2]."</dd>")
- endif
- let processed = 1
- elseif deflist
- let deflist = 0
- call add(lines, "</dl>")
- endif
- return [processed, lines, deflist]
-endfunction
-
-
-function! s:process_tag_para(line, para)
- let lines = []
- let para = a:para
- let processed = 0
- if a:line =~# '^\s\{,3}\S'
- if !para
- call add(lines, "<p>")
- let para = 1
- endif
- let processed = 1
- if vimwiki#vars#get_global('text_ignore_newline')
- call add(lines, a:line)
- else
- call add(lines, a:line."<br />")
- endif
- elseif para && a:line =~# '^\s*$'
- call add(lines, "</p>")
- let para = 0
- endif
- return [processed, lines, para]
-endfunction
-
-
-function! s:process_tag_h(line, id)
- let line = a:line
- let processed = 0
- let h_level = 0
- let h_text = ''
- let h_id = ''
-
- if a:line =~# vimwiki#vars#get_syntaxlocal('rxHeader')
- let h_level = vimwiki#u#count_first_sym(a:line)
- endif
- if h_level > 0
-
- let h_text = vimwiki#u#trim(matchstr(line, vimwiki#vars#get_syntaxlocal('rxHeader')))
- let h_number = ''
- let h_complete_id = ''
- let h_id = s:escape_html_attribute(h_text)
- let centered = (a:line =~# '^\s')
-
- if h_text !=# vimwiki#vars#get_global('toc_header')
-
- let a:id[h_level-1] = [h_text, a:id[h_level-1][1]+1]
-
- " reset higher level ids
- for level in range(h_level, 5)
- let a:id[level] = ['', 0]
- endfor
-
- for l in range(h_level-1)
- let h_number .= a:id[l][1].'.'
- if a:id[l][0] != ''
- let h_complete_id .= a:id[l][0].'-'
- endif
- endfor
- let h_number .= a:id[h_level-1][1]
- let h_complete_id .= a:id[h_level-1][0]
-
- if vimwiki#vars#get_global('html_header_numbering')
- let num = matchstr(h_number,
- \ '^\(\d.\)\{'.(vimwiki#vars#get_global('html_header_numbering')-1).'}\zs.*')
- if !empty(num)
- let num .= vimwiki#vars#get_global('html_header_numbering_sym')
- endif
- let h_text = num.' '.h_text
- endif
- let h_complete_id = s:escape_html_attribute(h_complete_id)
- let h_part = '<div id="'.h_complete_id.'"><h'.h_level.' id="'.h_id.'"'
-
- else
-
- let h_part = '<div id="'.h_id.'" class="toc"><h1 id="'.h_id.'"'
-
- endif
-
- if centered
- let h_part .= ' class="justcenter">'
- else
- let h_part .= '>'
- endif
-
- let h_text = s:process_inline_tags(h_text, a:id)
-
- let line = h_part.h_text.'</h'.h_level.'></div>'
-
- let processed = 1
- endif
- return [processed, line]
-endfunction
-
-
-function! s:process_tag_hr(line)
- let line = a:line
- let processed = 0
- if a:line =~# '^-----*$'
- let line = '<hr />'
- let processed = 1
- endif
- return [processed, line]
-endfunction
-
-
-function! s:process_tag_table(line, table, header_ids)
- function! s:table_empty_cell(value)
- let cell = {}
-
- if a:value =~# '^\s*\\/\s*$'
- let cell.body = ''
- let cell.rowspan = 0
- let cell.colspan = 1
- elseif a:value =~# '^\s*&gt;\s*$'
- let cell.body = ''
- let cell.rowspan = 1
- let cell.colspan = 0
- elseif a:value =~# '^\s*$'
- let cell.body = '&nbsp;'
- let cell.rowspan = 1
- let cell.colspan = 1
- else
- let cell.body = a:value
- let cell.rowspan = 1
- let cell.colspan = 1
- endif
-
- return cell
- endfunction
-
- function! s:table_add_row(table, line)
- if empty(a:table)
- if a:line =~# '^\s\+'
- let row = ['center', []]
- else
- let row = ['normal', []]
- endif
- else
- let row = [[]]
- endif
- return row
- endfunction
-
- let table = a:table
- let lines = []
- let processed = 0
-
- if vimwiki#tbl#is_separator(a:line)
- call extend(table, s:table_add_row(a:table, a:line))
- let processed = 1
- elseif vimwiki#tbl#is_table(a:line)
- call extend(table, s:table_add_row(a:table, a:line))
-
- let processed = 1
- " let cells = split(a:line, vimwiki#tbl#cell_splitter(), 1)[1: -2]
- let cells = vimwiki#tbl#get_cells(a:line)
- call map(cells, 's:table_empty_cell(v:val)')
- call extend(table[-1], cells)
- else
- let table = s:close_tag_table(table, lines, a:header_ids)
- endif
- return [processed, lines, table]
-endfunction
-
-
-function! s:parse_line(line, state)
- let state = {}
- let state.para = a:state.para
- let state.quote = a:state.quote
- let state.pre = a:state.pre[:]
- let state.math = a:state.math[:]
- let state.table = a:state.table[:]
- let state.lists = a:state.lists[:]
- let state.deflist = a:state.deflist
- let state.placeholder = a:state.placeholder
- let state.header_ids = a:state.header_ids
-
- let res_lines = []
-
- let line = s:safe_html_line(a:line)
-
- let processed = 0
-
- " pres
- if !processed
- let [processed, lines, state.pre] = s:process_tag_pre(line, state.pre)
- " pre is just fine to be in the list -- do not close list item here.
- " if processed && len(state.lists)
- " call s:close_tag_list(state.lists, lines)
- " endif
- if !processed
- let [processed, lines, state.math] = s:process_tag_math(line, state.math)
- endif
- if processed && len(state.table)
- let state.table = s:close_tag_table(state.table, lines, state.header_ids)
- endif
- if processed && state.deflist
- let state.deflist = s:close_tag_def_list(state.deflist, lines)
- endif
- if processed && state.quote
- let state.quote = s:close_tag_quote(state.quote, lines)
- endif
- if processed && state.para
- let state.para = s:close_tag_para(state.para, lines)
- endif
- call extend(res_lines, lines)
- endif
-
-
- if !processed
- if line =~# vimwiki#vars#get_syntaxlocal('rxComment')
- let processed = 1
- endif
- endif
-
- " nohtml -- placeholder
- if !processed
- if line =~# '\m^\s*%nohtml\s*$'
- let processed = 1
- let state.placeholder = ['nohtml']
- endif
- endif
-
- " title -- placeholder
- if !processed
- if line =~# '\m^\s*%title\%(\s.*\)\?$'
- let processed = 1
- let param = matchstr(line, '\m^\s*%title\s\+\zs.*')
- let state.placeholder = ['title', param]
- endif
- endif
-
- " date -- placeholder
- if !processed
- if line =~# '\m^\s*%date\%(\s.*\)\?$'
- let processed = 1
- let param = matchstr(line, '\m^\s*%date\s\+\zs.*')
- let state.placeholder = ['date', param]
- endif
- endif
-
- " html template -- placeholder
- if !processed
- if line =~# '\m^\s*%template\%(\s.*\)\?$'
- let processed = 1
- let param = matchstr(line, '\m^\s*%template\s\+\zs.*')
- let state.placeholder = ['template', param]
- endif
- endif
-
-
- " tables
- if !processed
- let [processed, lines, state.table] = s:process_tag_table(line, state.table, state.header_ids)
- call extend(res_lines, lines)
- endif
-
-
- " lists
- if !processed
- let [processed, lines] = s:process_tag_list(line, state.lists)
- if processed && state.quote
- let state.quote = s:close_tag_quote(state.quote, lines)
- endif
- if processed && state.pre[0]
- let state.pre = s:close_tag_pre(state.pre, lines)
- endif
- if processed && state.math[0]
- let state.math = s:close_tag_math(state.math, lines)
- endif
- if processed && len(state.table)
- let state.table = s:close_tag_table(state.table, lines, state.header_ids)
- endif
- if processed && state.deflist
- let state.deflist = s:close_tag_def_list(state.deflist, lines)
- endif
- if processed && state.para
- let state.para = s:close_tag_para(state.para, lines)
- endif
-
- call map(lines, 's:process_inline_tags(v:val, state.header_ids)')
-
- call extend(res_lines, lines)
- endif
-
-
- " headers
- if !processed
- let [processed, line] = s:process_tag_h(line, state.header_ids)
- if processed
- call s:close_tag_list(state.lists, res_lines)
- let state.table = s:close_tag_table(state.table, res_lines, state.header_ids)
- let state.pre = s:close_tag_pre(state.pre, res_lines)
- let state.math = s:close_tag_math(state.math, res_lines)
- let state.quote = s:close_tag_quote(state.quote, res_lines)
- let state.para = s:close_tag_para(state.para, res_lines)
-
- call add(res_lines, line)
- endif
- endif
-
-
- " quotes
- if !processed
- let [processed, lines, state.quote] = s:process_tag_quote(line, state.quote)
- if processed && len(state.lists)
- call s:close_tag_list(state.lists, lines)
- endif
- if processed && state.deflist
- let state.deflist = s:close_tag_def_list(state.deflist, lines)
- endif
- if processed && len(state.table)
- let state.table = s:close_tag_table(state.table, lines, state.header_ids)
- endif
- if processed && state.pre[0]
- let state.pre = s:close_tag_pre(state.pre, lines)
- endif
- if processed && state.math[0]
- let state.math = s:close_tag_math(state.math, lines)
- endif
- if processed && state.para
- let state.para = s:close_tag_para(state.para, lines)
- endif
-
- call map(lines, 's:process_inline_tags(v:val, state.header_ids)')
-
- call extend(res_lines, lines)
- endif
-
-
- " horizontal rules
- if !processed
- let [processed, line] = s:process_tag_hr(line)
- if processed
- call s:close_tag_list(state.lists, res_lines)
- let state.table = s:close_tag_table(state.table, res_lines, state.header_ids)
- let state.pre = s:close_tag_pre(state.pre, res_lines)
- let state.math = s:close_tag_math(state.math, res_lines)
- call add(res_lines, line)
- endif
- endif
-
-
- " definition lists
- if !processed
- let [processed, lines, state.deflist] = s:process_tag_def_list(line, state.deflist)
-
- call map(lines, 's:process_inline_tags(v:val, state.header_ids)')
-
- call extend(res_lines, lines)
- endif
-
-
- "" P
- if !processed
- let [processed, lines, state.para] = s:process_tag_para(line, state.para)
- if processed && len(state.lists)
- call s:close_tag_list(state.lists, lines)
- endif
- if processed && state.quote
- let state.quote = s:close_tag_quote(state.quote, res_lines)
- endif
- if processed && state.pre[0]
- let state.pre = s:close_tag_pre(state.pre, res_lines)
- endif
- if processed && state.math[0]
- let state.math = s:close_tag_math(state.math, res_lines)
- endif
- if processed && len(state.table)
- let state.table = s:close_tag_table(state.table, res_lines, state.header_ids)
- endif
-
- call map(lines, 's:process_inline_tags(v:val, state.header_ids)')
-
- call extend(res_lines, lines)
- endif
-
-
- "" add the rest
- if !processed
- call add(res_lines, line)
- endif
-
- return [res_lines, state]
-
-endfunction
-
-
-function! s:use_custom_wiki2html()
- let custom_wiki2html = vimwiki#vars#get_wikilocal('custom_wiki2html')
- return !empty(custom_wiki2html) &&
- \ (s:file_exists(custom_wiki2html) || s:binary_exists(custom_wiki2html))
-endfunction
-
-
-function! vimwiki#html#CustomWiki2HTML(path, wikifile, force)
- call vimwiki#path#mkdir(a:path)
- echomsg system(vimwiki#vars#get_wikilocal('custom_wiki2html'). ' '.
- \ a:force. ' '.
- \ vimwiki#vars#get_wikilocal('syntax'). ' '.
- \ strpart(vimwiki#vars#get_wikilocal('ext'), 1). ' '.
- \ shellescape(a:path). ' '.
- \ shellescape(a:wikifile). ' '.
- \ shellescape(s:default_CSS_full_name(a:path)). ' '.
- \ (len(vimwiki#vars#get_wikilocal('template_path')) > 1 ?
- \ shellescape(expand(vimwiki#vars#get_wikilocal('template_path'))) : '-'). ' '.
- \ (len(vimwiki#vars#get_wikilocal('template_default')) > 0 ?
- \ vimwiki#vars#get_wikilocal('template_default') : '-'). ' '.
- \ (len(vimwiki#vars#get_wikilocal('template_ext')) > 0 ?
- \ vimwiki#vars#get_wikilocal('template_ext') : '-'). ' '.
- \ (len(vimwiki#vars#get_bufferlocal('subdir')) > 0 ?
- \ shellescape(s:root_path(vimwiki#vars#get_bufferlocal('subdir'))) : '-'). ' '.
- \ (len(vimwiki#vars#get_wikilocal('custom_wiki2html_args')) > 0 ?
- \ vimwiki#vars#get_wikilocal('custom_wiki2html_args') : '-'))
-endfunction
-
-
-function! s:convert_file(path_html, wikifile)
- let done = 0
-
- let wikifile = fnamemodify(a:wikifile, ":p")
-
- let path_html = expand(a:path_html).vimwiki#vars#get_bufferlocal('subdir')
- let htmlfile = fnamemodify(wikifile, ":t:r").'.html'
-
- " the currently processed file name is needed when processing links
- " yeah yeah, shame on me for using (quasi-) global variables
- let s:current_wiki_file = wikifile
- let s:current_html_file = path_html . htmlfile
-
- if s:use_custom_wiki2html()
- let force = 1
- call vimwiki#html#CustomWiki2HTML(path_html, wikifile, force)
- let done = 1
- endif
-
- if s:syntax_supported() && done == 0
- let lsource = readfile(wikifile)
- let ldest = []
-
- call vimwiki#path#mkdir(path_html)
-
- " nohtml placeholder -- to skip html generation.
- let nohtml = 0
-
- " template placeholder
- let template_name = ''
-
- " for table of contents placeholders.
- let placeholders = []
-
- " current state of converter
- let state = {}
- let state.para = 0
- let state.quote = 0
- let state.pre = [0, 0] " [in_pre, indent_pre]
- let state.math = [0, 0] " [in_math, indent_math]
- let state.table = []
- let state.deflist = 0
- let state.lists = []
- let state.placeholder = []
- let state.header_ids = [['', 0], ['', 0], ['', 0], ['', 0], ['', 0], ['', 0]]
- " [last seen header text in this level, number]
-
- " prepare constants for s:safe_html_line()
- let s:lt_pattern = '<'
- let s:gt_pattern = '>'
- if vimwiki#vars#get_global('valid_html_tags') != ''
- let tags = join(split(vimwiki#vars#get_global('valid_html_tags'), '\s*,\s*'), '\|')
- let s:lt_pattern = '\c<\%(/\?\%('.tags.'\)\%(\s\{-1}\S\{-}\)\{-}/\?>\)\@!'
- let s:gt_pattern = '\c\%(</\?\%('.tags.'\)\%(\s\{-1}\S\{-}\)\{-}/\?\)\@<!>'
- endif
-
- " prepare regexps for lists
- let s:bullets = '[*-]'
- let s:numbers = '\C\%(#\|\d\+)\|\d\+\.\|[ivxlcdm]\+)\|[IVXLCDM]\+)\|\l\{1,2})\|\u\{1,2})\)'
-
- for line in lsource
- let oldquote = state.quote
- let [lines, state] = s:parse_line(line, state)
-
- " Hack: There could be a lot of empty strings before s:process_tag_quote
- " find out `quote` is over. So we should delete them all. Think of the way
- " to refactor it out.
- if oldquote != state.quote
- call s:remove_blank_lines(ldest)
- endif
-
- if !empty(state.placeholder)
- if state.placeholder[0] ==# 'nohtml'
- let nohtml = 1
- break
- elseif state.placeholder[0] ==# 'template'
- let template_name = state.placeholder[1]
- else
- call add(placeholders, [state.placeholder, len(ldest), len(placeholders)])
- endif
- let state.placeholder = []
- endif
-
- call extend(ldest, lines)
- endfor
-
-
- if nohtml
- echon "\r"."%nohtml placeholder found"
- return ''
- endif
-
- call s:remove_blank_lines(ldest)
-
- " process end of file
- " close opened tags if any
- let lines = []
- call s:close_tag_quote(state.quote, lines)
- call s:close_tag_para(state.para, lines)
- call s:close_tag_pre(state.pre, lines)
- call s:close_tag_math(state.math, lines)
- call s:close_tag_list(state.lists, lines)
- call s:close_tag_def_list(state.deflist, lines)
- call s:close_tag_table(state.table, lines, state.header_ids)
- call extend(ldest, lines)
-
- let title = s:process_title(placeholders, fnamemodify(a:wikifile, ":t:r"))
- let date = s:process_date(placeholders, strftime('%Y-%m-%d'))
-
- let html_lines = s:get_html_template(template_name)
-
- " processing template variables (refactor to a function)
- call map(html_lines, 'substitute(v:val, "%title%", "'. title .'", "g")')
- call map(html_lines, 'substitute(v:val, "%date%", "'. date .'", "g")')
- call map(html_lines, 'substitute(v:val, "%root_path%", "'.
- \ s:root_path(vimwiki#vars#get_bufferlocal('subdir')) .'", "g")')
-
- let css_name = expand(vimwiki#vars#get_wikilocal('css_name'))
- let css_name = substitute(css_name, '\', '/', 'g')
- call map(html_lines, 'substitute(v:val, "%css%", "'. css_name .'", "g")')
-
- let enc = &fileencoding
- if enc == ''
- let enc = &encoding
- endif
- call map(html_lines, 'substitute(v:val, "%encoding%", "'. enc .'", "g")')
-
- let html_lines = s:html_insert_contents(html_lines, ldest) " %contents%
-
- call writefile(html_lines, path_html.htmlfile)
- let done = 1
-
- endif
-
- if done == 0
- echomsg 'Vimwiki Error: Conversion to HTML is not supported for this syntax'
- return ''
- endif
-
- return path_html.htmlfile
-endfunction
-
-
-function! vimwiki#html#Wiki2HTML(path_html, wikifile)
- let result = s:convert_file(a:path_html, a:wikifile)
- if result != ''
- call s:create_default_CSS(a:path_html)
- endif
- return result
-endfunction
-
-
-function! vimwiki#html#WikiAll2HTML(path_html)
- if !s:syntax_supported() && !s:use_custom_wiki2html()
- echomsg 'Vimwiki Error: Conversion to HTML is not supported for this syntax'
- return
- endif
-
- echomsg 'Vimwiki: Saving Vimwiki files ...'
- let save_eventignore = &eventignore
- let &eventignore = "all"
- let cur_buf = bufname('%')
- bufdo call s:save_vimwiki_buffer()
- exe 'buffer '.cur_buf
- let &eventignore = save_eventignore
-
- let path_html = expand(a:path_html)
- call vimwiki#path#mkdir(path_html)
-
- echomsg 'Vimwiki: Deleting non-wiki html files ...'
- call s:delete_html_files(path_html)
-
- echomsg 'Vimwiki: Converting wiki to html files ...'
- let setting_more = &more
- setlocal nomore
-
- " temporarily adjust current_subdir global state variable
- let current_subdir = vimwiki#vars#get_bufferlocal('subdir')
- let current_invsubdir = vimwiki#vars#get_bufferlocal('invsubdir')
-
- let wikifiles = split(glob(vimwiki#vars#get_wikilocal('path').'**/*'.
- \ vimwiki#vars#get_wikilocal('ext')), '\n')
- for wikifile in wikifiles
- let wikifile = fnamemodify(wikifile, ":p")
-
- " temporarily adjust 'subdir' and 'invsubdir' state variables
- let subdir = vimwiki#base#subdir(vimwiki#vars#get_wikilocal('path'), wikifile)
- call vimwiki#vars#set_bufferlocal('subdir', subdir)
- call vimwiki#vars#set_bufferlocal('invsubdir', vimwiki#base#invsubdir(subdir))
-
- if !s:is_html_uptodate(wikifile)
- echomsg 'Vimwiki: Processing '.wikifile
-
- call s:convert_file(path_html, wikifile)
- else
- echomsg 'Vimwiki: Skipping '.wikifile
- endif
- endfor
- " reset 'subdir' state variable
- call vimwiki#vars#set_bufferlocal('subdir', current_subdir)
- call vimwiki#vars#set_bufferlocal('invsubdir', current_invsubdir)
-
- let created = s:create_default_CSS(path_html)
- if created
- echomsg 'Vimwiki: Default style.css has been created'
- endif
- echomsg 'Vimwiki: HTML exported to '.path_html
- echomsg 'Vimwiki: Done!'
-
- let &more = setting_more
-endfunction
-
-
-function! s:file_exists(fname)
- return !empty(getftype(expand(a:fname)))
-endfunction
-
-
-function! s:binary_exists(fname)
- return executable(expand(a:fname))
-endfunction
-
-
-function! s:get_wikifile_url(wikifile)
- return vimwiki#vars#get_wikilocal('path_html') .
- \ vimwiki#base#subdir(vimwiki#vars#get_wikilocal('path'), a:wikifile).
- \ fnamemodify(a:wikifile, ":t:r").'.html'
-endfunction
-
-
-function! vimwiki#html#PasteUrl(wikifile)
- execute 'r !echo file://'.s:get_wikifile_url(a:wikifile)
-endfunction
-
-
-function! vimwiki#html#CatUrl(wikifile)
- execute '!echo file://'.s:get_wikifile_url(a:wikifile)
-endfunction
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/lst.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/lst.vim
deleted file mode 100644
index d4ccbbd..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/lst.vim
+++ /dev/null
@@ -1,1677 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Description: Everything concerning lists and checkboxes
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-if exists("g:loaded_vimwiki_list_auto") || &cp
- finish
-endif
-let g:loaded_vimwiki_list_auto = 1
-
-
-" ---------------------------------------------------------
-" incrementation functions for the various kinds of numbers
-" ---------------------------------------------------------
-
-function! s:increment_1(value)
- return eval(a:value) + 1
-endfunction
-
-
-function! s:increment_A(value)
- let list_of_chars = split(a:value, '.\zs')
- let done = 0
- for idx in reverse(range(len(list_of_chars)))
- let cur_num = char2nr(list_of_chars[idx])
- if cur_num < 90
- let list_of_chars[idx] = nr2char(cur_num + 1)
- let done = 1
- break
- else
- let list_of_chars[idx] = 'A'
- endif
- endfor
- if !done
- call insert(list_of_chars, 'A')
- endif
- return join(list_of_chars, '')
-endfunction
-
-
-function! s:increment_a(value)
- let list_of_chars = split(a:value, '.\zs')
- let done = 0
- for idx in reverse(range(len(list_of_chars)))
- let cur_num = char2nr(list_of_chars[idx])
- if cur_num < 122
- let list_of_chars[idx] = nr2char(cur_num + 1)
- let done = 1
- break
- else
- let list_of_chars[idx] = 'a'
- endif
- endfor
- if !done
- call insert(list_of_chars, 'a')
- endif
- return join(list_of_chars, '')
-endfunction
-
-
-function! s:increment_I(value)
- let subst_list = [ ['XLVIII$', 'IL'], ['VIII$', 'IX'], ['III$', 'IV'],
- \ ['DCCCXCIX$', 'CM'], ['CCCXCIX$', 'CD'], ['LXXXIX$', 'XC'],
- \ ['XXXIX$', 'XL'], ['\(I\{1,2\}\)$', '\1I'], ['CDXCIX$', 'D'],
- \ ['CMXCIX$', 'M'], ['XCIX$', 'C'], ['I\([VXLCDM]\)$', '\1'],
- \ ['\([VXLCDM]\)$', '\1I'] ]
- for [regex, subst] in subst_list
- if a:value =~# regex
- return substitute(a:value, regex, subst, '')
- endif
- endfor
- return ''
-endfunction
-
-
-function! s:increment_i(value)
- let subst_list = [ ['xlviii$', 'il'], ['viii$', 'ix'], ['iii$', 'iv'],
- \ ['dcccxcix$', 'cm'], ['cccxcix$', 'cd'], ['lxxxix$', 'xc'],
- \ ['xxxix$', 'xl'], ['\(i\{1,2\}\)$', '\1i'], ['cdxcix$', 'd'],
- \ ['cmxcix$', 'm'], ['xcix$', 'c'], ['i\([vxlcdm]\)$', '\1'],
- \ ['\([vxlcdm]\)$', '\1i'] ]
- for [regex, subst] in subst_list
- if a:value =~# regex
- return substitute(a:value, regex, subst, '')
- endif
- endfor
- return ''
-endfunction
-
-
-" ---------------------------------------------------------
-" utility functions
-" ---------------------------------------------------------
-
-function! s:substitute_rx_in_line(lnum, pattern, new_string)
- call setline(a:lnum, substitute(getline(a:lnum), a:pattern, a:new_string, ''))
-endfunction
-
-
-function! s:substitute_string_in_line(lnum, old_string, new_string)
- call s:substitute_rx_in_line(a:lnum, vimwiki#u#escape(a:old_string), a:new_string)
-endfunction
-
-
-function! s:first_char(string)
- return matchstr(a:string, '^.')
-endfunction
-
-
-if exists("*strdisplaywidth")
- function! s:string_length(str)
- return strdisplaywidth(a:str)
- endfunction
-else
- function! s:string_length(str)
- return strlen(substitute(a:str, '.', 'x', 'g'))
- endfunction
-endif
-
-
-function! vimwiki#lst#default_symbol()
- return vimwiki#vars#get_syntaxlocal('list_markers')[0]
-endfunction
-
-
-function! vimwiki#lst#get_list_margin()
- let list_margin = vimwiki#vars#get_wikilocal('list_margin')
- if list_margin < 0
- return &sw
- else
- return list_margin
- endif
-endfunction
-
-
-"Returns: the column where the text of a line starts (possible list item
-"markers and checkboxes are skipped)
-function! s:text_begin(lnum)
- return s:string_length(matchstr(getline(a:lnum), vimwiki#vars#get_syntaxlocal('rxListItem')))
-endfunction
-
-
-"Returns: 2 if there is a marker and text
-" 1 for a marker and no text
-" 0 for no marker at all (empty line or only text)
-function! s:line_has_marker(lnum)
- if getline(a:lnum) =~# vimwiki#vars#get_syntaxlocal('rxListItem').'\s*$'
- return 1
- elseif getline(a:lnum) =~# vimwiki#vars#get_syntaxlocal('rxListItem').'\s*\S'
- return 2
- else
- return 0
- endif
-endfunction
-
-
-" ---------------------------------------------------------
-" get properties of a list item
-" ---------------------------------------------------------
-
-"Returns: the mainly used data structure in this file
-"An item represents a single list item and is a dictionary with the keys
-"lnum - the line number of the list item
-"type - 1 for bulleted item, 2 for numbered item, 0 for a regular line
-"mrkr - the concrete marker, e.g. '**' or 'b)'
-"cb - the char in the checkbox or '' if there is no checkbox
-function! s:get_item(lnum)
- let item = {'lnum': a:lnum}
- if a:lnum == 0 || a:lnum > line('$')
- let item.type = 0
- return item
- endif
-
- let matches = matchlist(getline(a:lnum), vimwiki#vars#get_syntaxlocal('rxListItem'))
- if matches == [] ||
- \ (matches[1] == '' && matches[2] == '') ||
- \ (matches[1] != '' && matches[2] != '')
- let item.type = 0
- return item
- endif
-
- let item.cb = matches[3]
-
- if matches[1] != ''
- let item.type = 1
- let item.mrkr = matches[1]
- else
- let item.type = 2
- let item.mrkr = matches[2]
- endif
-
- return item
-endfunction
-
-
-function! s:empty_item()
- return {'type': 0}
-endfunction
-
-
-"Returns: level of the line
-"0 is the 'highest' level
-function! s:get_level(lnum)
- if getline(a:lnum) =~# '^\s*$'
- return 0
- endif
- if !vimwiki#vars#get_syntaxlocal('recurring_bullets')
- let level = indent(a:lnum)
- else
- let level = s:string_length(matchstr(getline(a:lnum),
- \ vimwiki#vars#get_syntaxlocal(rx_bullet_chars)))-1
- if level < 0
- let level = (indent(a:lnum) == 0) ? 0 : 9999
- endif
- endif
- return level
-endfunction
-
-
-"Returns: 1, a, i, A, I or ''
-"If in doubt if alphanumeric character or romanian
-"numeral, peek in the previous line
-function! s:guess_kind_of_numbered_item(item)
- if a:item.type != 2 | return '' | endif
- let number_chars = a:item.mrkr[:-2]
- let divisor = a:item.mrkr[-1:]
-
- let number_kinds = vimwiki#vars#get_syntaxlocal('number_kinds')
-
- if number_chars =~# '\d\+'
- return '1'
- endif
- if number_chars =~# '\l\+'
- if number_chars !~# '^[ivxlcdm]\+' || index(number_kinds, 'i') == -1
- return 'a'
- else
-
- let item_above = s:get_prev_list_item(a:item, 0)
- if item_above.type != 0
- if index(number_kinds, 'a') == -1 ||
- \ (item_above.mrkr[-1:] !=# divisor && number_chars =~# 'i\+') ||
- \ s:increment_i(item_above.mrkr[:-2]) ==# number_chars
- return 'i'
- else
- return 'a'
- endif
- else
- if number_chars =~# 'i\+' || index(number_kinds, 'a') == -1
- return 'i'
- else
- return 'a'
- endif
- endif
-
- endif
- endif
- if number_chars =~# '\u\+'
- if number_chars !~# '^[IVXLCDM]\+' || index(number_kinds, 'I') == -1
- return 'A'
- else
-
- let item_above = s:get_prev_list_item(a:item, 0)
- if item_above.type != 0
- if index(number_kinds, 'A') == -1 ||
- \ (item_above.mrkr[-1:] !=# divisor && number_chars =~# 'I\+') ||
- \ s:increment_I(item_above.mrkr[:-2]) ==# number_chars
- return 'I'
- else
- return 'A'
- endif
- else
- if number_chars =~# 'I\+' || index(number_kinds, 'A') == -1
- return 'I'
- else
- return 'A'
- endif
- endif
-
- endif
- endif
-endfunction
-
-
-function! s:regexp_of_marker(item)
- if a:item.type == 1
- return vimwiki#u#escape(a:item.mrkr)
- elseif a:item.type == 2
- let number_divisors = vimwiki#vars#get_syntaxlocal('number_divisors')
- for ki in ['d', 'u', 'l']
- let match = matchstr(a:item.mrkr, '\'.ki.'\+['.number_divisors.']')
- if match != ''
- return '\'.ki.'\+'.vimwiki#u#escape(match[-1:])
- endif
- endfor
- else
- return ''
- endif
-endfunction
-
-
-" ---------------------------------------------------------
-" functions for navigating between items
-" ---------------------------------------------------------
-
-"Returns: the list item after a:item or an empty item
-"If a:ignore_kind is 1, the markers can differ
-function! s:get_next_list_item(item, ignore_kind)
- let org_lvl = s:get_level(a:item.lnum)
- if !a:ignore_kind
- let org_regex = s:regexp_of_marker(a:item)
- endif
-
- let cur_ln = s:get_next_line(a:item.lnum)
- while cur_ln <= line('$')
- let cur_lvl = s:get_level(cur_ln)
- if cur_lvl <= org_lvl
- if a:ignore_kind
- return s:get_any_item_of_level(cur_ln, cur_lvl, org_lvl)
- else
- return s:get_item_of_level(cur_ln, cur_lvl, org_lvl, org_regex)
- endif
- endif
- let cur_ln = s:get_next_line(cur_ln)
- endwhile
- return s:empty_item()
-endfunction
-
-
-"Returns: the list item before a:item or an empty item
-"If a:ignore_kind is 1, the markers can differ
-function! s:get_prev_list_item(item, ignore_kind)
- let org_lvl = s:get_level(a:item.lnum)
- if !a:ignore_kind
- let org_regex = s:regexp_of_marker(a:item)
- endif
-
- let cur_ln = s:get_prev_line(a:item.lnum)
- while cur_ln >= 1
- let cur_lvl = s:get_level(cur_ln)
- if cur_lvl <= org_lvl
- if a:ignore_kind
- return s:get_any_item_of_level(cur_ln, cur_lvl, org_lvl)
- else
- return s:get_item_of_level(cur_ln, cur_lvl, org_lvl, org_regex)
- endif
- endif
- let cur_ln = s:get_prev_line(cur_ln)
- endwhile
- return s:empty_item()
-endfunction
-
-
-function! s:get_item_of_level(cur_ln, cur_lvl, org_lvl, org_regex)
- let cur_linecontent = getline(a:cur_ln)
- if a:cur_lvl == a:org_lvl
- if cur_linecontent =~# '^\s*'.a:org_regex.'\s'
- return s:get_item(a:cur_ln)
- else
- return s:empty_item()
- endif
- elseif a:cur_lvl < a:org_lvl
- return s:empty_item()
- endif
-endfunction
-
-
-function! s:get_any_item_of_level(cur_ln, cur_lvl, org_lvl)
- if a:cur_lvl == a:org_lvl
- return s:get_item(a:cur_ln)
- elseif a:cur_lvl < a:org_lvl
- return s:empty_item()
- endif
-endfunction
-
-
-function! s:get_first_item_in_list(item, ignore_kind)
- let cur_item = a:item
- while 1
- let prev_item = s:get_prev_list_item(cur_item, a:ignore_kind)
- if prev_item.type == 0
- break
- else
- let cur_item = prev_item
- endif
- endwhile
- return cur_item
-endfunction
-
-
-function! s:get_last_item_in_list(item, ignore_kind)
- let cur_item = a:item
- while 1
- let next_item = s:get_next_list_item(cur_item, a:ignore_kind)
- if next_item.type == 0
- break
- else
- let cur_item = next_item
- endif
- endwhile
- return cur_item
-endfunction
-
-
-"Returns: lnum+1 in most cases, but skips blank lines and preformatted text,
-"0 in case of nonvalid line.
-"If there is no second argument, 0 is returned at a header, otherwise the
-"header is skipped
-function! s:get_next_line(lnum, ...)
- if getline(a:lnum) =~# vimwiki#vars#get_syntaxlocal('rxPreStart')
- let cur_ln = a:lnum + 1
- while cur_ln <= line('$') && getline(cur_ln) !~# vimwiki#vars#get_syntaxlocal('rxPreEnd')
- let cur_ln += 1
- endwhile
- let next_line = cur_ln
- else
- let next_line = nextnonblank(a:lnum+1)
- endif
-
- if a:0 > 0 && getline(next_line) =~# vimwiki#vars#get_syntaxlocal('rxHeader')
- let next_line = s:get_next_line(next_line, 1)
- endif
-
- if next_line < 0 || next_line > line('$') ||
- \ (getline(next_line) =~# vimwiki#vars#get_syntaxlocal('rxHeader') && a:0 == 0)
- return 0
- endif
-
- return next_line
-endfunction
-
-
-"Returns: lnum-1 in most cases, but skips blank lines and preformatted text
-"0 in case of nonvalid line and a header, because a header ends every list
-function! s:get_prev_line(lnum)
- let prev_line = prevnonblank(a:lnum-1)
-
- if getline(prev_line) =~# vimwiki#vars#get_syntaxlocal('rxPreEnd')
- let cur_ln = a:lnum - 1
- while 1
- if cur_ln == 0 || getline(cur_ln) =~# vimwiki#vars#get_syntaxlocal('rxPreStart')
- break
- endif
- let cur_ln -= 1
- endwhile
- let prev_line = cur_ln
- endif
-
- if prev_line < 0 || prev_line > line('$') ||
- \ getline(prev_line) =~# vimwiki#vars#get_syntaxlocal('rxHeader')
- return 0
- endif
-
- return prev_line
-endfunction
-
-
-function! s:get_first_child(item)
- if a:item.lnum >= line('$')
- return s:empty_item()
- endif
- let org_lvl = s:get_level(a:item.lnum)
- let cur_item = s:get_item(s:get_next_line(a:item.lnum))
- while 1
- if cur_item.type != 0 && s:get_level(cur_item.lnum) > org_lvl
- return cur_item
- endif
- if cur_item.lnum > line('$') || cur_item.lnum <= 0 || s:get_level(cur_item.lnum) <= org_lvl
- return s:empty_item()
- endif
- let cur_item = s:get_item(s:get_next_line(cur_item.lnum))
- endwhile
-endfunction
-
-
-"Returns: the next sibling of a:child, given the parent item
-"Used for iterating over children
-"Note: child items do not necessarily have the same indent, i.e. level
-function! s:get_next_child_item(parent, child)
- if a:parent.type == 0 | return s:empty_item() | endif
- let parent_lvl = s:get_level(a:parent.lnum)
- let cur_ln = s:get_last_line_of_item_incl_children(a:child)
- while 1
- let next_line = s:get_next_line(cur_ln)
- if next_line == 0 || s:get_level(next_line) <= parent_lvl
- break
- endif
- let cur_ln = next_line
- let cur_item = s:get_item(cur_ln)
- if cur_item.type > 0
- return cur_item
- endif
- endwhile
- return s:empty_item()
-endfunction
-
-
-function! s:get_parent(item)
- let parent_line = 0
-
- let cur_ln = prevnonblank(a:item.lnum)
- let child_lvl = s:get_level(cur_ln)
- if child_lvl == 0
- return s:empty_item()
- endif
-
- while 1
- let cur_ln = s:get_prev_line(cur_ln)
- if cur_ln == 0 | break | endif
- let cur_lvl = s:get_level(cur_ln)
- if cur_lvl < child_lvl
- let cur_item = s:get_item(cur_ln)
- if cur_item.type == 0
- let child_lvl = cur_lvl
- continue
- endif
- let parent_line = cur_ln
- break
- endif
- endwhile
- return s:get_item(parent_line)
-endfunction
-
-
-"Returns: the item above or the item below or an empty item
-function! s:get_a_neighbor_item(item)
- let prev_item = s:get_prev_list_item(a:item, 1)
- if prev_item.type != 0
- return prev_item
- else
- let next_item = s:get_next_list_item(a:item, 1)
- if next_item.type != 0
- return next_item
- endif
- endif
- return s:empty_item()
-endfunction
-
-
-function! s:get_a_neighbor_item_in_column(lnum, column)
- let cur_ln = s:get_prev_line(a:lnum)
- while cur_ln >= 1
- if s:get_level(cur_ln) <= a:column
- return s:get_corresponding_item(cur_ln)
- endif
- let cur_ln = s:get_prev_line(cur_ln)
- endwhile
- return s:empty_item()
-endfunction
-
-
-"Returns: the item if there is one in a:lnum
-"else the multiline item a:lnum belongs to
-function! s:get_corresponding_item(lnum)
- let item = s:get_item(a:lnum)
- if item.type != 0
- return item
- endif
- let org_lvl = s:get_level(a:lnum)
- let cur_ln = a:lnum
- while cur_ln > 0
- let cur_lvl = s:get_level(cur_ln)
- let cur_item = s:get_item(cur_ln)
- if cur_lvl < org_lvl && cur_item.type != 0
- return cur_item
- endif
- if cur_lvl < org_lvl
- let org_lvl = cur_lvl
- endif
- let cur_ln = s:get_prev_line(cur_ln)
- endwhile
- return s:empty_item()
-endfunction
-
-
-"Returns: the last line of a (possibly multiline) item, including all children
-function! s:get_last_line_of_item_incl_children(item)
- let cur_ln = a:item.lnum
- let org_lvl = s:get_level(a:item.lnum)
- while 1
- let next_line = s:get_next_line(cur_ln)
- if next_line == 0 || s:get_level(next_line) <= org_lvl
- return cur_ln
- endif
- let cur_ln = next_line
- endwhile
-endfunction
-
-
-"Returns: the last line of a (possibly multiline) item
-"Note: there can be other list items between the first and last line
-function! s:get_last_line_of_item(item)
- if a:item.type == 0 | return 0 | endif
- let org_lvl = s:get_level(a:item.lnum)
- let last_corresponding_line = a:item.lnum
-
- let cur_ln = s:get_next_line(a:item.lnum)
- while 1
- if cur_ln == 0 || s:get_level(cur_ln) <= org_lvl
- break
- endif
- let cur_item = s:get_item(cur_ln)
- if cur_item.type == 0
- let last_corresponding_line = cur_ln
- let cur_ln = s:get_next_line(cur_ln)
- else
- let cur_ln = s:get_next_line(s:get_last_line_of_item_incl_children(cur_item))
- endif
- endwhile
-
- return last_corresponding_line
-endfunction
-
-
-" ---------------------------------------------------------
-" renumber list items
-" ---------------------------------------------------------
-
-"Renumbers the current list from a:item on downwards
-"Returns: the last item that was adjusted
-function! s:adjust_numbered_list_below(item, recursive)
- if !(a:item.type == 2 || (a:item.type == 1 && a:recursive))
- return a:item
- endif
-
- let kind = s:guess_kind_of_numbered_item(a:item)
-
- let cur_item = a:item
- while 1
- if a:recursive
- call s:adjust_items_recursively(cur_item)
- endif
-
- let next_item = s:get_next_list_item(cur_item, 0)
- if next_item.type == 0
- break
- endif
-
- if cur_item.type == 2
- let new_val = s:increment_{kind}(cur_item.mrkr[:-2]) . cur_item.mrkr[-1:]
- call s:substitute_string_in_line(next_item.lnum, next_item.mrkr, new_val)
- let next_item.mrkr = new_val
- endif
-
- let cur_item = next_item
- endwhile
- return cur_item
-endfunction
-
-
-function! s:adjust_items_recursively(parent)
- if a:parent.type == 0
- return s:empty_item()
- end
-
- let child_item = s:get_first_child(a:parent)
- if child_item.type == 0
- return child_item
- endif
- while 1
- let last_item = s:adjust_numbered_list(child_item, 1, 1)
-
- let child_item = s:get_next_child_item(a:parent, last_item)
- if child_item.type == 0
- return last_item
- endif
- endwhile
-endfunction
-
-
-"Renumbers the list a:item is in.
-"If a:ignore_kind == 0, only the items which have the same kind of marker as
-"a:item are considered, otherwise all items.
-"Returns: the last item that was adjusted
-function! s:adjust_numbered_list(item, ignore_kind, recursive)
- if !(a:item.type == 2 || (a:item.type == 1 && (a:ignore_kind || a:recursive)))
- return s:empty_item()
- end
-
- let first_item = s:get_first_item_in_list(a:item, a:ignore_kind)
-
- while 1
- if first_item.type == 2
- let new_mrkr = s:guess_kind_of_numbered_item(first_item) . first_item.mrkr[-1:]
- call s:substitute_string_in_line(first_item.lnum, first_item.mrkr, new_mrkr)
- let first_item.mrkr = new_mrkr
- endif
-
- let last_item = s:adjust_numbered_list_below(first_item, a:recursive)
-
- let next_first_item = s:get_next_list_item(last_item, 1)
- if a:ignore_kind == 0 || next_first_item.type == 0
- return last_item
- endif
- let first_item = next_first_item
- endwhile
-endfunction
-
-
-"Renumbers the list the cursor is in
-"also update its parents checkbox state
-function! vimwiki#lst#adjust_numbered_list()
- let cur_item = s:get_corresponding_item(line('.'))
- if cur_item.type == 0 | return | endif
- call s:adjust_numbered_list(cur_item, 1, 0)
- call s:update_state(s:get_parent(cur_item))
-endfunction
-
-
-"Renumbers all lists of the buffer
-"of course, this might take some seconds
-function! vimwiki#lst#adjust_whole_buffer()
- let cur_ln = 1
- while 1
- let cur_item = s:get_item(cur_ln)
- if cur_item.type != 0
- let cur_item = s:adjust_numbered_list(cur_item, 0, 1)
- endif
- let cur_ln = s:get_next_line(cur_item.lnum, 1)
- if cur_ln <= 0 || cur_ln > line('$')
- return
- endif
- endwhile
-endfunction
-
-
-" ---------------------------------------------------------
-" checkbox stuff
-" ---------------------------------------------------------
-
-"Returns: the rate of checkboxed list item in percent
-function! s:get_rate(item)
- if a:item.type == 0 || a:item.cb == ''
- return -1
- endif
- let state = a:item.cb
- if state == vimwiki#vars#get_global('listsym_rejected')
- return -1
- endif
- let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
- return index(vimwiki#vars#get_syntaxlocal('listsyms_list'), state) * 100/(n-1)
-endfunction
-
-
-"Set state of the list item to [ ] or [o] or whatever
-"Returns: 1 if the state changed, 0 otherwise
-function! s:set_state(item, new_rate)
- let new_state = s:rate_to_state(a:new_rate)
- let old_state = s:rate_to_state(s:get_rate(a:item))
- if new_state !=# old_state
- call s:substitute_rx_in_line(a:item.lnum, '\[.]', '['.new_state.']')
- return 1
- else
- return 0
- endif
-endfunction
-
-
-"Set state of the list item to [ ] or [o] or whatever
-"Updates the states of its child items
-function! s:set_state_plus_children(item, new_rate)
- call s:set_state(a:item, a:new_rate)
-
- let child_item = s:get_first_child(a:item)
- while 1
- if child_item.type == 0
- break
- endif
- if child_item.cb != ''
- call s:set_state_plus_children(child_item, a:new_rate)
- endif
- let child_item = s:get_next_child_item(a:item, child_item)
- endwhile
-endfunction
-
-
-"Returns: the appropriate symbol for a given percent rate
-function! s:rate_to_state(rate)
- let listsyms_list = vimwiki#vars#get_syntaxlocal('listsyms_list')
- let state = ''
- let n = len(listsyms_list)
- if a:rate == 100
- let state = listsyms_list[n-1]
- elseif a:rate == 0
- let state = listsyms_list[0]
- elseif a:rate == -1
- let state = vimwiki#vars#get_global('listsym_rejected')
- else
- let index = float2nr(ceil(a:rate/100.0*(n-2)))
- let state = listsyms_list[index]
- endif
- return state
-endfunction
-
-
-"updates the symbol of a checkboxed item according to the symbols of its
-"children
-function! s:update_state(item)
- if a:item.type == 0 || a:item.cb == ''
- return
- endif
-
- let sum_children_rate = 0
- let count_children_with_cb = 0
-
- let child_item = s:get_first_child(a:item)
-
- while 1
- if child_item.type == 0
- break
- endif
- if child_item.cb != ''
- let rate = s:get_rate(child_item)
- if rate != -1
- let count_children_with_cb += 1
- let sum_children_rate += rate
- endif
- endif
- let child_item = s:get_next_child_item(a:item, child_item)
- endwhile
-
- if count_children_with_cb > 0
- let new_rate = sum_children_rate / count_children_with_cb
- call s:set_state_recursively(a:item, new_rate)
- else
- let rate = s:get_rate(a:item)
- if rate > 0 && rate < 100
- call s:set_state_recursively(a:item, 0)
- endif
- endif
-endfunction
-
-
-function! s:set_state_recursively(item, new_rate)
- let state_changed = s:set_state(a:item, a:new_rate)
- if state_changed
- call s:update_state(s:get_parent(a:item))
- endif
-endfunction
-
-
-"Creates checkbox in a list item.
-"Returns: 1 if successful
-function! s:create_cb(item)
- if a:item.type == 0 || a:item.cb != ''
- return 0
- endif
-
- let new_item = a:item
- let new_item.cb = vimwiki#vars#get_syntaxlocal('listsyms_list')[0]
- call s:substitute_rx_in_line(new_item.lnum,
- \ vimwiki#u#escape(new_item.mrkr) . '\zs\ze', ' [' . new_item.cb . ']')
-
- call s:update_state(new_item)
- return 1
-endfunction
-
-
-function! s:remove_cb(item)
- let item = a:item
- if item.type != 0 && item.cb != ''
- let item.cb = ''
- call s:substitute_rx_in_line(item.lnum, '\s\+\[.\]', '')
- endif
- return item
-endfunction
-
-
-"Change state of checkbox
-"in the lines of the given range
-function! s:change_cb(from_line, to_line, new_rate)
- let from_item = s:get_corresponding_item(a:from_line)
- if from_item.type == 0
- return
- endif
-
- let parent_items_of_lines = []
-
- for cur_ln in range(from_item.lnum, a:to_line)
- let cur_item = s:get_item(cur_ln)
- if cur_item.type != 0 && cur_item.cb != ''
- call s:set_state_plus_children(cur_item, a:new_rate)
- let cur_parent_item = s:get_parent(cur_item)
- if index(parent_items_of_lines, cur_parent_item) == -1
- call insert(parent_items_of_lines, cur_parent_item)
- endif
- endif
- endfor
-
- for parent_item in parent_items_of_lines
- call s:update_state(parent_item)
- endfor
-
-endfunction
-
-
-"Toggles checkbox between two states in the lines of the given range,
-"creates chceckboxes if there aren't any.
-function! s:toggle_create_cb(from_line, to_line, state1, state2)
- let from_item = s:get_corresponding_item(a:from_line)
- if from_item.type == 0
- return
- endif
-
- if from_item.cb == ''
-
- "if from_line has no CB, make a CB in every selected line
- let parent_items_of_lines = []
- for cur_ln in range(from_item.lnum, a:to_line)
- let cur_item = s:get_item(cur_ln)
- let success = s:create_cb(cur_item)
-
- if success
- let cur_parent_item = s:get_parent(cur_item)
- if index(parent_items_of_lines, cur_parent_item) == -1
- call insert(parent_items_of_lines, cur_parent_item)
- endif
- endif
- endfor
-
- for parent_item in parent_items_of_lines
- call s:update_state(parent_item)
- endfor
-
- else
-
- "if from_line has CB, toggle it and set all siblings to the same new state
- let rate_first_line = s:get_rate(from_item)
- let new_rate = rate_first_line == a:state1 ? a:state2 : a:state1
-
- call s:change_cb(a:from_line, a:to_line, new_rate)
-
- endif
-
-endfunction
-
-
-"Decrement checkbox between [ ] and [X]
-"in the lines of the given range
-function! vimwiki#lst#decrement_cb(from_line, to_line)
- let from_item = s:get_corresponding_item(a:from_line)
- if from_item.type == 0
- return
- endif
-
- "if from_line has CB, decrement it and set all siblings to the same new state
- let rate_first_line = s:get_rate(from_item)
- let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
- let new_rate = max([rate_first_line - 100/(n-1)-1, 0])
-
- call s:change_cb(a:from_line, a:to_line, new_rate)
-
-endfunction
-
-
-"Increment checkbox between [ ] and [X]
-"in the lines of the given range
-function! vimwiki#lst#increment_cb(from_line, to_line)
- let from_item = s:get_corresponding_item(a:from_line)
- if from_item.type == 0
- return
- endif
-
- "if from_line has CB, increment it and set all siblings to the same new state
- let rate_first_line = s:get_rate(from_item)
- let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
- let new_rate = min([rate_first_line + 100/(n-1)+1, 100])
-
- call s:change_cb(a:from_line, a:to_line, new_rate)
-
-endfunction
-
-
-"Toggles checkbox between [ ] and [X] or creates one
-"in the lines of the given range
-function! vimwiki#lst#toggle_cb(from_line, to_line)
- return s:toggle_create_cb(a:from_line, a:to_line, 100, 0)
-endfunction
-
-
-"Toggles checkbox between [ ] and [-] or creates one
-"in the lines of the given range
-function! vimwiki#lst#toggle_rejected_cb(from_line, to_line)
- return s:toggle_create_cb(a:from_line, a:to_line, -1, 0)
-endfunction
-
-
-"Increment checkbox between [ ] and [X]
-"in the lines of the given range
-function! vimwiki#lst#increment_cb(from_line, to_line)
- let from_item = s:get_corresponding_item(a:from_line)
- if from_item.type == 0
- return
- endif
-
- "if from_line has CB, increment it and set all siblings to the same new state
- let rate_first_line = s:get_rate(from_item)
- let n = len(vimwiki#vars#get_syntaxlocal('listsyms_list'))
- let new_rate = min([rate_first_line + 100/(n-1)+1, 100])
-
- call s:change_cb(a:from_line, a:to_line, new_rate)
-
-endfunction
-
-
-"Toggles checkbox between [ ] and [X] or creates one
-"in the lines of the given range
-function! vimwiki#lst#toggle_cb(from_line, to_line)
- return s:toggle_create_cb(a:from_line, a:to_line, 100, 0)
-endfunction
-
-
-"Toggles checkbox between [ ] and [-] or creates one
-"in the lines of the given range
-function! vimwiki#lst#toggle_rejected_cb(from_line, to_line)
- return s:toggle_create_cb(a:from_line, a:to_line, -1, 0)
-endfunction
-
-
-function! vimwiki#lst#remove_cb(first_line, last_line)
- let first_item = s:get_corresponding_item(a:first_line)
- let last_item = s:get_corresponding_item(a:last_line)
-
- if first_item.type == 0 || last_item.type == 0
- return
- endif
-
- let parent_items_of_lines = []
- let cur_ln = first_item.lnum
- while 1
- if cur_ln <= 0 || cur_ln > last_item.lnum | break | endif
- let cur_item = s:get_item(cur_ln)
- if cur_item.type != 0
- let cur_item = s:remove_cb(cur_item)
- let cur_parent_item = s:get_parent(cur_item)
- if index(parent_items_of_lines, cur_parent_item) == -1
- call insert(parent_items_of_lines, cur_parent_item)
- endif
- endif
- let cur_ln = s:get_next_line(cur_ln)
- endwhile
- for parent_item in parent_items_of_lines
- call s:update_state(parent_item)
- endfor
-endfunction
-
-
-function! vimwiki#lst#remove_cb_in_list()
- let first_item = s:get_first_item_in_list(s:get_corresponding_item(line('.')), 0)
-
- let cur_item = first_item
- while 1
- let next_item = s:get_next_list_item(cur_item, 0)
- let cur_item = s:remove_cb(cur_item)
- if next_item.type == 0
- break
- else
- let cur_item = next_item
- endif
- endwhile
-
- call s:update_state(s:get_parent(first_item))
-endfunction
-
-
-
-" ---------------------------------------------------------
-" change the level of list items
-" ---------------------------------------------------------
-
-function! s:set_indent(lnum, new_indent)
- if &expandtab
- let indentstring = repeat(' ', a:new_indent)
- else
- let indentstring = repeat('\t', a:new_indent / &tabstop) . repeat(' ', a:new_indent % &tabstop)
- endif
- call s:substitute_rx_in_line(a:lnum, '^\s*', indentstring)
-endfunction
-
-
-function! s:decrease_level(item)
- let removed_indent = 0
- if vimwiki#vars#get_syntaxlocal('recurring_bullets') && a:item.type == 1 &&
- \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
- \ s:first_char(a:item.mrkr)) > -1
- if s:string_length(a:item.mrkr) >= 2
- call s:substitute_string_in_line(a:item.lnum, s:first_char(a:item.mrkr), '')
- let removed_indent = -1
- endif
- else
- let old_indent = indent(a:item.lnum)
- if &shiftround
- let new_indent = (old_indent - 1) / vimwiki#u#sw() * vimwiki#u#sw()
- else
- let new_indent = old_indent - vimwiki#u#sw()
- endif
- call s:set_indent(a:item.lnum, new_indent)
- let removed_indent = new_indent - old_indent
- endif
- return removed_indent
-endfunction
-
-
-function! s:increase_level(item)
- let additional_indent = 0
- if vimwiki#vars#get_syntaxlocal('recurring_bullets') && a:item.type == 1 &&
- \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
- \ s:first_char(a:item.mrkr)) > -1
- call s:substitute_string_in_line(a:item.lnum, a:item.mrkr, a:item.mrkr .
- \ s:first_char(a:item.mrkr))
- let additional_indent = 1
- else
- let old_indent = indent(a:item.lnum)
- if &shiftround
- let new_indent = (old_indent / vimwiki#u#sw() + 1) * vimwiki#u#sw()
- else
- let new_indent = old_indent + vimwiki#u#sw()
- endif
- call s:set_indent(a:item.lnum, new_indent)
- let additional_indent = new_indent - old_indent
- endif
- return additional_indent
-endfunction
-
-
-"adds a:indent_by to the current indent
-"a:indent_by can be negative
-function! s:indent_line_by(lnum, indent_by)
- let item = s:get_item(a:lnum)
- if vimwiki#vars#get_syntaxlocal('recurring_bullets') && item.type == 1 &&
- \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
- \ s:first_char(item.mrkr)) > -1
- if a:indent_by > 0
- call s:substitute_string_in_line(a:lnum, item.mrkr, item.mrkr . s:first_char(item.mrkr))
- elseif a:indent_by < 0
- call s:substitute_string_in_line(a:lnum, s:first_char(item.mrkr), '')
- endif
- else
- call s:set_indent(a:lnum, indent(a:lnum) + a:indent_by)
- endif
-endfunction
-
-
-"changes lvl of lines in selection
-function! s:change_level(from_line, to_line, direction, plus_children)
- let from_item = s:get_corresponding_item(a:from_line)
- if from_item.type == 0
- if a:direction ==# 'increase' && a:from_line == a:to_line && empty(getline(a:from_line))
- "that's because :> doesn't work on an empty line
- normal! gi
- else
- execute a:from_line.','.a:to_line.(a:direction ==# 'increase' ? '>' : '<')
- endif
- return
- endif
-
- if a:direction ==# 'decrease' && s:get_level(from_item.lnum) == 0
- return
- endif
-
- if a:from_line == a:to_line
- if a:plus_children
- let to_line = s:get_last_line_of_item_incl_children(from_item)
- else
- let to_line = s:get_last_line_of_item(from_item)
- endif
- else
- let to_item = s:get_corresponding_item(a:to_line)
- if to_item.type == 0
- let to_line = a:to_line
- else
- if a:plus_children
- let to_line = s:get_last_line_of_item_incl_children(to_item)
- else
- let to_line = s:get_last_line_of_item(to_item)
- endif
- endif
- endif
-
- if to_line == 0
- return
- endif
-
- let to_be_adjusted = s:get_a_neighbor_item(from_item)
- let old_parent = s:get_parent(from_item)
- let first_line_level = s:get_level(from_item.lnum)
- let more_than_one_level_concerned = 0
-
- let first_line_indented_by = (a:direction ==# 'increase') ?
- \ s:increase_level(from_item) : s:decrease_level(from_item)
-
- let cur_ln = s:get_next_line(from_item.lnum)
- while cur_ln > 0 && cur_ln <= to_line
- if !more_than_one_level_concerned &&
- \ s:get_level(cur_ln) != first_line_level &&
- \ s:get_item(cur_ln).type != 0
- let more_than_one_level_concerned = 1
- endif
- call s:indent_line_by(cur_ln, first_line_indented_by)
- let cur_ln = s:get_next_line(cur_ln, 1)
- endwhile
-
- if a:from_line == a:to_line
- call s:adjust_mrkr(from_item)
- endif
- call s:update_state(old_parent)
- let from_item = s:get_item(from_item.lnum)
- if from_item.cb != ''
- call s:update_state(from_item)
- call s:update_state(s:get_parent(from_item))
- endif
-
- if more_than_one_level_concerned
- call vimwiki#lst#adjust_whole_buffer()
- else
- call s:adjust_numbered_list(from_item, 0, 0)
- call s:adjust_numbered_list(to_be_adjusted, 0, 0)
- endif
-endfunction
-
-
-function! vimwiki#lst#change_level(from_line, to_line, direction, plus_children)
- let cur_col = col('$') - col('.')
- call s:change_level(a:from_line, a:to_line, a:direction, a:plus_children)
- call cursor('.', col('$') - cur_col)
-endfunction
-
-
-"indent line a:lnum to be the continuation of a:prev_item
-function! s:indent_multiline(prev_item, lnum)
- if a:prev_item.type != 0
- call s:set_indent(a:lnum, s:text_begin(a:prev_item.lnum))
- endif
-endfunction
-
-
-" ---------------------------------------------------------
-" change markers of list items
-" ---------------------------------------------------------
-
-"Returns: the position of a marker in g:vimwiki_list_markers
-function! s:get_idx_list_markers(item)
- if a:item.type == 1
- let m = s:first_char(a:item.mrkr)
- else
- let m = s:guess_kind_of_numbered_item(a:item) . a:item.mrkr[-1:]
- endif
- return index(vimwiki#vars#get_syntaxlocal('list_markers'), m)
-endfunction
-
-
-"changes the marker of the given item to the next in g:vimwiki_list_markers
-function! s:get_next_mrkr(item)
- let markers = vimwiki#vars#get_syntaxlocal('list_markers')
- if a:item.type == 0
- let new_mrkr = markers[0]
- else
- let idx = s:get_idx_list_markers(a:item)
- let new_mrkr = markers[(idx+1) % len(markers)]
- endif
- return new_mrkr
-endfunction
-
-
-"changes the marker of the given item to the previous in g:vimwiki_list_markers
-function! s:get_prev_mrkr(item)
- let markers = vimwiki#vars#get_syntaxlocal('list_markers')
- if a:item.type == 0
- return markers[-1]
- endif
- let idx = s:get_idx_list_markers(a:item)
- if idx == -1
- return markers[-1]
- else
- return markers[(idx - 1 + len(markers)) % len(markers)]
- endif
-endfunction
-
-
-function! s:set_new_mrkr(item, new_mrkr)
- if a:item.type == 0
- call s:substitute_rx_in_line(a:item.lnum, '^\s*\zs\ze', a:new_mrkr.' ')
- if indent(a:item.lnum) == 0 && !vimwiki#vars#get_syntaxlocal('recurring_bullets')
- call s:set_indent(a:item.lnum, vimwiki#lst#get_list_margin())
- endif
- else
- call s:substitute_string_in_line(a:item.lnum, a:item.mrkr, a:new_mrkr)
- endif
-endfunction
-
-
-function! vimwiki#lst#change_marker(from_line, to_line, new_mrkr, mode)
- let cur_col_from_eol = col("$") - (a:mode ==# "i" ? col("'^") : col('.'))
- let new_mrkr = a:new_mrkr
- let cur_ln = a:from_line
- while 1
- let cur_item = s:get_item(cur_ln)
-
- if new_mrkr ==# "next"
- let new_mrkr = s:get_next_mrkr(cur_item)
- elseif new_mrkr ==# "prev"
- let new_mrkr = s:get_prev_mrkr(cur_item)
- endif
-
- "handle markers like ***
- if index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'), s:first_char(new_mrkr)) > -1
- "use *** if the item above has *** too
- let item_above = s:get_prev_list_item(cur_item, 1)
- if item_above.type == 1 && s:first_char(item_above.mrkr) ==# s:first_char(new_mrkr)
- let new_mrkr = item_above.mrkr
- else
- "use *** if the item below has *** too
- let item_below = s:get_next_list_item(cur_item, 1)
- if item_below.type == 1 && s:first_char(item_below.mrkr) ==# s:first_char(new_mrkr)
- let new_mrkr = item_below.mrkr
- else
- "if the old is ### and the new is * use ***
- if cur_item.type == 1 &&
- \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
- \ s:first_char(cur_item.mrkr))>-1
- let new_mrkr = repeat(new_mrkr, s:string_length(cur_item.mrkr))
- else
- "use *** if the parent item has **
- let parent_item = s:get_parent(cur_item)
- if parent_item.type == 1 && s:first_char(parent_item.mrkr) ==# s:first_char(new_mrkr)
- let new_mrkr = repeat(s:first_char(parent_item.mrkr),
- \ s:string_length(parent_item.mrkr)+1)
- endif
- endif
- endif
- endif
-
- endif
-
- call s:set_new_mrkr(cur_item, new_mrkr)
- call s:adjust_numbered_list(s:get_item(cur_ln), 1, 0)
-
- if cur_ln >= a:to_line | break | endif
- let cur_ln = s:get_next_line(cur_ln, 1)
- endwhile
-
- call cursor('.', col('$') - cur_col_from_eol)
-endfunction
-
-
-function! vimwiki#lst#change_marker_in_list(new_mrkr)
- let cur_item = s:get_corresponding_item(line('.'))
- let first_item = s:get_first_item_in_list(cur_item, 0)
- let last_item = s:get_last_item_in_list(cur_item, 0)
- if first_item.type == 0 || last_item.type == 0 | return | endif
- let first_item_line = first_item.lnum
-
- let cur_item = first_item
- while cur_item.type != 0 && cur_item.lnum <= last_item.lnum
- call s:set_new_mrkr(cur_item, a:new_mrkr)
- let cur_item = s:get_next_list_item(cur_item, 1)
- endwhile
-
- call s:adjust_numbered_list(s:get_item(first_item_line), 0, 0)
-endfunction
-
-
-"sets kind of the item depending on neighbor items and the parent item
-function! s:adjust_mrkr(item)
- if a:item.type == 0 || vimwiki#vars#get_syntaxlocal('recurring_bullets')
- return
- endif
-
- let new_mrkr = a:item.mrkr
- let neighbor_item = s:get_a_neighbor_item(a:item)
- if neighbor_item.type != 0
- let new_mrkr = neighbor_item.mrkr
- endif
-
- "if possible, set e.g. *** if parent has ** as marker
- if neighbor_item.type == 0 && a:item.type == 1 &&
- \ index(vimwiki#vars#get_syntaxlocal('multiple_bullet_chars'),
- \ s:first_char(a:item.mrkr)) > -1
- let parent_item = s:get_parent(a:item)
- if parent_item.type == 1 && s:first_char(parent_item.mrkr) ==# s:first_char(a:item.mrkr)
- let new_mrkr = repeat(s:first_char(parent_item.mrkr), s:string_length(parent_item.mrkr)+1)
- endif
- endif
-
- call s:substitute_string_in_line(a:item.lnum, a:item.mrkr, new_mrkr)
- call s:adjust_numbered_list(a:item, 0, 1)
-endfunction
-
-
-function! s:clone_marker_from_to(from, to)
- let item_from = s:get_item(a:from)
- if item_from.type == 0 | return | endif
- let new_mrkr = item_from.mrkr . ' '
- call s:substitute_rx_in_line(a:to, '^\s*', new_mrkr)
- let new_indent = ( vimwiki#vars#get_syntaxlocal('recurring_bullets') ? 0 : indent(a:from) )
- call s:set_indent(a:to, new_indent)
- if item_from.cb != ''
- call s:create_cb(s:get_item(a:to))
- call s:update_state(s:get_parent(s:get_item(a:to)))
- endif
- if item_from.type == 2
- let adjust_from = ( a:from < a:to ? a:from : a:to )
- call s:adjust_numbered_list_below(s:get_item(adjust_from), 0)
- endif
-endfunction
-
-
-function! s:remove_mrkr(item)
- let item = a:item
- if item.cb != ''
- let item = s:remove_cb(item)
- let parent_item = s:get_parent(item)
- else
- let parent_item = s:empty_item()
- endif
- call s:substitute_rx_in_line(item.lnum, vimwiki#u#escape(item.mrkr).'\s*', '')
- call remove(item, 'mrkr')
- call remove(item, 'cb')
- let item.type = 0
- call s:update_state(parent_item)
- return item
-endfunction
-
-
-function! s:create_marker(lnum)
- let new_sibling = s:get_corresponding_item(a:lnum)
- if new_sibling.type == 0
- let new_sibling = s:get_a_neighbor_item_in_column(a:lnum, virtcol('.'))
- endif
- if new_sibling.type != 0
- call s:clone_marker_from_to(new_sibling.lnum, a:lnum)
- else
- let cur_item = s:get_item(a:lnum)
- call s:set_new_mrkr(cur_item, vimwiki#vars#get_syntaxlocal('list_markers')[0])
- call s:adjust_numbered_list(cur_item, 0, 0)
- endif
-endfunction
-
-
-" ---------------------------------------------------------
-" handle keys
-" ---------------------------------------------------------
-
-function! vimwiki#lst#kbd_o()
- let fold_end = foldclosedend('.')
- let lnum = (fold_end == -1) ? line('.') : fold_end
- let cur_item = s:get_item(lnum)
- "inserting and deleting the x is necessary
- "because otherwise the indent is lost
- normal! ox
- if cur_item.lnum < s:get_last_line_of_item(cur_item)
- call s:indent_multiline(cur_item, cur_item.lnum+1)
- else
- call s:clone_marker_from_to(cur_item.lnum, cur_item.lnum+1)
- endif
- startinsert!
-endfunction
-
-
-function! vimwiki#lst#kbd_O()
- normal! Ox
- let cur_ln = line('.')
- if getline(cur_ln+1) !~# '^\s*$'
- call s:clone_marker_from_to(cur_ln+1, cur_ln)
- else
- call s:clone_marker_from_to(cur_ln-1, cur_ln)
- endif
- startinsert!
-endfunction
-
-
-function! s:cr_on_empty_list_item(lnum, behavior)
- if a:behavior == 1
- "just make a new list item
- normal! gi 
- call s:clone_marker_from_to(a:lnum, a:lnum+1)
- startinsert!
- return
- elseif a:behavior == 2
- "insert new marker but remove marker in old line
- call append(a:lnum-1, '')
- startinsert!
- return
- elseif a:behavior == 3
- "list is finished, but cursor stays in current line
- let item = s:get_item(a:lnum)
- let neighbor_item = s:get_a_neighbor_item(item)
- let child_item = s:get_first_child(item)
- let parent_item = (item.cb != '') ? s:get_parent(item) : s:empty_item()
- normal! "_cc
- call s:adjust_numbered_list(neighbor_item, 0, 0)
- call s:adjust_numbered_list(child_item, 0, 0)
- call s:update_state(parent_item)
- startinsert
- return
- elseif a:behavior == 4
- "list is finished, but cursor goes to next line
- let item = s:get_item(a:lnum)
- let neighbor_item = s:get_a_neighbor_item(item)
- let child_item = s:get_first_child(item)
- let parent_item = (item.cb != '') ? s:get_parent(item) : s:empty_item()
- normal! "_cc
- call s:adjust_numbered_list(neighbor_item, 0, 0)
- call s:adjust_numbered_list(child_item, 0, 0)
- call s:update_state(parent_item)
- startinsert
- return
- elseif a:behavior == 5
- "successively decrease level
- if s:get_level(a:lnum) > 0
- call s:change_level(a:lnum, a:lnum, 'decrease', 0)
- startinsert!
- else
- let item = s:get_item(a:lnum)
- let neighbor_item = s:get_a_neighbor_item(item)
- let child_item = s:get_first_child(item)
- let parent_item = (item.cb != '') ? s:get_parent(item) : s:empty_item()
- normal! "_cc
- call s:adjust_numbered_list(neighbor_item, 0, 0)
- call s:adjust_numbered_list(child_item, 0, 0)
- call s:update_state(parent_item)
- startinsert
- endif
- return
- endif
-endfunction
-
-
-function! s:cr_on_empty_line(lnum, behavior)
- "inserting and deleting the x is necessary
- "because otherwise the indent is lost
- normal! gi x
- if a:behavior == 2 || a:behavior == 3
- call s:create_marker(a:lnum+1)
- endif
-endfunction
-
-
-function! s:cr_on_list_item(lnum, insert_new_marker, not_at_eol)
- if a:insert_new_marker
- "the ultimate feature of this script: make new marker on <CR>
- normal! gi 
- call s:clone_marker_from_to(a:lnum, a:lnum+1)
- "tiny sweet extra feature: indent next line if current line ends with :
- if !a:not_at_eol && getline(a:lnum) =~# ':$'
- call s:change_level(a:lnum+1, a:lnum+1, 'increase', 0)
- endif
- else
- " || (cur_item.lnum < s:get_last_line_of_item(cur_item))
- "indent this line so that it becomes the continuation of the line above
- normal! gi 
- let prev_line = s:get_corresponding_item(s:get_prev_line(a:lnum+1))
- call s:indent_multiline(prev_line, a:lnum+1)
- endif
-endfunction
-
-
-function! vimwiki#lst#kbd_cr(normal, just_mrkr)
- let lnum = line('.')
- let has_bp = s:line_has_marker(lnum)
-
- if has_bp != 0 && virtcol('.') < s:text_begin(lnum)
- call append(lnum-1, '')
- startinsert!
- return
- endif
-
- if has_bp == 1
- call s:cr_on_empty_list_item(lnum, a:just_mrkr)
- return
- endif
-
- let insert_new_marker = (a:normal == 1 || a:normal == 3)
- if getline('.')[col("'^")-1:] =~# '^\s\+$'
- let cur_col = 0
- else
- let cur_col = col("$") - col("'^")
- if getline('.')[col("'^")-1] =~# '\s' && exists("*strdisplaywidth")
- let ws_behind_cursor =
- \ strdisplaywidth(matchstr(getline('.')[col("'^")-1:], '\s\+'),
- \ virtcol("'^")-1)
- let cur_col -= ws_behind_cursor
- endif
- if insert_new_marker && cur_col == 0 && getline(lnum) =~# '\s$'
- let insert_new_marker = 0
- endif
- endif
-
- if has_bp == 0
- call s:cr_on_empty_line(lnum, a:normal)
- endif
-
- if has_bp == 2
- call s:cr_on_list_item(lnum, insert_new_marker, cur_col)
- endif
-
- call cursor(lnum+1, col("$") - cur_col)
- if cur_col == 0
- startinsert!
- else
- startinsert
- endif
-
-endfunction
-
-
-"creates a list item in the current line or removes it
-function! vimwiki#lst#toggle_list_item()
- let cur_col_from_eol = col("$") - col("'^")
- let cur_item = s:get_item(line('.'))
-
- if cur_item.type == 0
- call s:create_marker(cur_item.lnum)
- else
- let prev_item = s:get_prev_list_item(cur_item, 1)
- if prev_item.type == 0
- let prev_item = s:get_corresponding_item(s:get_prev_line(cur_item.lnum))
- endif
- let cur_item = s:remove_mrkr(cur_item)
- let adjust_prev_item = (prev_item.type == 2 &&
- \ s:get_level(cur_item.lnum) <= s:get_level(prev_item.lnum)) ? 1 : 0
- call s:indent_multiline(prev_item, cur_item.lnum)
- if adjust_prev_item
- call s:adjust_numbered_list_below(prev_item, 0)
- endif
- endif
-
- "set cursor position s.t. it's on the same char as before
- let new_cur_col = col("$") - cur_col_from_eol
- call cursor(cur_item.lnum, new_cur_col >= 1 ? new_cur_col : 1)
-
- if cur_col_from_eol == 0 || getline(cur_item.lnum) =~# '^\s*$'
- startinsert!
- else
- startinsert
- endif
-endfunction
-
-
-" ---------------------------------------------------------
-" misc stuff
-" ---------------------------------------------------------
-
-function! vimwiki#lst#TO_list_item(inner, visual)
- let lnum = prevnonblank('.')
- let item = s:get_corresponding_item(lnum)
- if item.type == 0
- return
- endif
- let from_line = item.lnum
- if a:inner
- let to_line = s:get_last_line_of_item(item)
- else
- let to_line = s:get_last_line_of_item_incl_children(item)
- endif
- normal! V
- call cursor(to_line, 0)
- normal! o
- call cursor(from_line, 0)
-endfunction
-
-
-function! vimwiki#lst#fold_level(lnum)
- let cur_item = s:get_item(a:lnum)
- if cur_item.type != 0
- let parent_item = s:get_parent(cur_item)
- let child_item = s:get_first_child(cur_item)
- let next_item = s:get_next_child_item(parent_item, cur_item)
- if child_item.type != 0
- return 'a1'
- elseif next_item.type == 0
- return 's1'
- endif
- endif
- return '='
-endfunction
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/markdown_base.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/markdown_base.vim
deleted file mode 100644
index f1ce091..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/markdown_base.vim
+++ /dev/null
@@ -1,150 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Description: Link functions for markdown syntax
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-function! s:safesubstitute(text, search, replace, mode)
- " Substitute regexp but do not interpret replace
- let escaped = escape(a:replace, '\&')
- return substitute(a:text, a:search, escaped, a:mode)
-endfunction
-
-
-function! vimwiki#markdown_base#scan_reflinks()
- let mkd_refs = {}
- " construct list of references using vimgrep
- try
- " Why noautocmd? Because https://github.com/vimwiki/vimwiki/issues/121
- noautocmd execute 'vimgrep #'.vimwiki#vars#get_syntaxlocal('rxMkdRef').'#j %'
- catch /^Vim\%((\a\+)\)\=:E480/ " No Match
- "Ignore it, and move on to the next file
- endtry
-
- for d in getqflist()
- let matchline = join(getline(d.lnum, min([d.lnum+1, line('$')])), ' ')
- let descr = matchstr(matchline, vimwiki#vars#get_syntaxlocal('rxMkdRefMatchDescr'))
- let url = matchstr(matchline, vimwiki#vars#get_syntaxlocal('rxMkdRefMatchUrl'))
- if descr != '' && url != ''
- let mkd_refs[descr] = url
- endif
- endfor
- call vimwiki#vars#set_bufferlocal('markdown_refs', mkd_refs)
- return mkd_refs
-endfunction
-
-
-" try markdown reference links
-function! vimwiki#markdown_base#open_reflink(link)
- " echom "vimwiki#markdown_base#open_reflink"
- let link = a:link
- let mkd_refs = vimwiki#vars#get_bufferlocal('markdown_refs')
- if has_key(mkd_refs, link)
- let url = mkd_refs[link]
- call vimwiki#base#system_open_link(url)
- return 1
- else
- return 0
- endif
-endfunction
-
-
-function! s:normalize_link_syntax_n()
- let lnum = line('.')
-
- " try WikiIncl
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_global('rxWikiIncl'))
- if !empty(lnk)
- " NO-OP !!
- return
- endif
-
- " try WikiLink0: replace with WikiLink1
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink0'))
- if !empty(lnk)
- let sub = vimwiki#base#normalize_link_helper(lnk,
- \ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'),
- \ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchDescr'),
- \ vimwiki#vars#get_syntaxlocal('WikiLink1Template2'))
- call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink0'), sub)
- return
- endif
-
- " try WikiLink1: replace with WikiLink0
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink1'))
- if !empty(lnk)
- let sub = vimwiki#base#normalize_link_helper(lnk,
- \ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'),
- \ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchDescr'),
- \ vimwiki#vars#get_global('WikiLinkTemplate2'))
- call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), sub)
- return
- endif
-
- " try Weblink
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink'))
- if !empty(lnk)
- let sub = vimwiki#base#normalize_link_helper(lnk,
- \ vimwiki#vars#get_syntaxlocal('rxWeblinkMatchUrl'),
- \ vimwiki#vars#get_syntaxlocal('rxWeblinkMatchDescr'),
- \ vimwiki#vars#get_syntaxlocal('Weblink1Template'))
- call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink'), sub)
- return
- endif
-
- " try Word (any characters except separators)
- " rxWord is less permissive than rxWikiLinkUrl which is used in
- " normalize_link_syntax_v
- let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_global('rxWord'))
- if !empty(lnk)
- let sub = vimwiki#base#normalize_link_helper(lnk,
- \ vimwiki#vars#get_global('rxWord'), '',
- \ vimwiki#vars#get_syntaxlocal('Weblink1Template'))
- call vimwiki#base#replacestr_at_cursor('\V'.lnk, sub)
- return
- endif
-
-endfunction
-
-
-function! s:normalize_link_syntax_v()
- let lnum = line('.')
- let sel_save = &selection
- let &selection = "old"
- let rv = @"
- let rt = getregtype('"')
- let done = 0
-
- try
- norm! gvy
- let visual_selection = @"
- let link = s:safesubstitute(vimwiki#vars#get_syntaxlocal('Weblink1Template'),
- \ '__LinkUrl__', visual_selection, '')
- let link = s:safesubstitute(link, '__LinkDescription__', visual_selection, '')
-
- call setreg('"', substitute(link, '\n', '', ''), visualmode())
-
- " paste result
- norm! `>""pgvd
-
- finally
- call setreg('"', rv, rt)
- let &selection = sel_save
- endtry
-
-endfunction
-
-
-function! vimwiki#markdown_base#normalize_link(is_visual_mode)
- if 0
- " Syntax-specific links
- else
- if !a:is_visual_mode
- call s:normalize_link_syntax_n()
- elseif line("'<") == line("'>")
- " action undefined for multi-line visual mode selections
- call s:normalize_link_syntax_v()
- endif
- endif
-endfunction
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/path.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/path.vim
deleted file mode 100644
index 367b1d7..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/path.vim
+++ /dev/null
@@ -1,183 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Description: Path manipulation functions
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-function! vimwiki#path#chomp_slash(str)
- return substitute(a:str, '[/\\]\+$', '', '')
-endfunction
-
-
-" Define path-compare function, either case-sensitive or not, depending on OS.
-if vimwiki#u#is_windows()
- function! vimwiki#path#is_equal(p1, p2)
- return a:p1 ==? a:p2
- endfunction
-else
- function! vimwiki#path#is_equal(p1, p2)
- return a:p1 ==# a:p2
- endfunction
-endif
-
-
-" collapse sections like /a/b/../c to /a/c
-function! vimwiki#path#normalize(path)
- let path = a:path
- while 1
- let result = substitute(path, '/[^/]\+/\.\.', '', '')
- if result ==# path
- break
- endif
- let path = result
- endwhile
- return result
-endfunction
-
-
-function! vimwiki#path#path_norm(path)
- " /-slashes
- if a:path !~# '^scp:'
- let path = substitute(a:path, '\', '/', 'g')
- " treat multiple consecutive slashes as one path separator
- let path = substitute(path, '/\+', '/', 'g')
- " ensure that we are not fooled by a symbolic link
- return resolve(path)
- else
- return a:path
- endif
-endfunction
-
-
-function! vimwiki#path#is_link_to_dir(link)
- " Check if link is to a directory.
- " It should be ended with \ or /.
- return a:link =~# '\m[/\\]$'
-endfunction
-
-
-function! vimwiki#path#abs_path_of_link(link)
- return vimwiki#path#normalize(expand("%:p:h").'/'.a:link)
-endfunction
-
-
-" return longest common path prefix of 2 given paths.
-" '~/home/usrname/wiki', '~/home/usrname/wiki/shmiki' => '~/home/usrname/wiki'
-function! vimwiki#path#path_common_pfx(path1, path2)
- let p1 = split(a:path1, '[/\\]', 1)
- let p2 = split(a:path2, '[/\\]', 1)
-
- let idx = 0
- let minlen = min([len(p1), len(p2)])
- while (idx < minlen) && vimwiki#path#is_equal(p1[idx], p2[idx])
- let idx = idx + 1
- endwhile
- if idx == 0
- return ''
- else
- return join(p1[: idx-1], '/')
- endif
-endfunction
-
-
-function! vimwiki#path#wikify_path(path)
- let result = resolve(fnamemodify(a:path, ':p'))
- if vimwiki#u#is_windows()
- let result = substitute(result, '\\', '/', 'g')
- endif
- let result = vimwiki#path#chomp_slash(result)
- return result
-endfunction
-
-
-function! vimwiki#path#current_wiki_file()
- return vimwiki#path#wikify_path(expand('%:p'))
-endfunction
-
-
-" Returns: the relative path from a:dir to a:file
-function! vimwiki#path#relpath(dir, file)
- let result = []
- let dir = split(a:dir, '/')
- let file = split(a:file, '/')
- while (len(dir) > 0 && len(file) > 0) && vimwiki#path#is_equal(dir[0], file[0])
- call remove(dir, 0)
- call remove(file, 0)
- endwhile
- if empty(dir) && empty(file)
- return './'
- endif
- for segment in dir
- let result += ['..']
- endfor
- for segment in file
- let result += [segment]
- endfor
- let result_path = join(result, '/')
- if a:file =~ '\m/$'
- let result_path .= '/'
- endif
- return result_path
-endfunction
-
-
-" If the optional argument provided and nonzero,
-" it will ask before creating a directory
-" Returns: 1 iff directory exists or successfully created
-function! vimwiki#path#mkdir(path, ...)
- let path = expand(a:path)
-
- if path =~# '^scp:'
- " we can not do much, so let's pretend everything is ok
- return 1
- endif
-
- if isdirectory(path)
- return 1
- else
- if !exists("*mkdir")
- return 0
- endif
-
- let path = vimwiki#path#chomp_slash(path)
- if vimwiki#u#is_windows() && !empty(vimwiki#vars#get_global('w32_dir_enc'))
- let path = iconv(path, &enc, vimwiki#vars#get_global('w32_dir_enc'))
- endif
-
- if a:0 && a:1 && input("Vimwiki: Make new directory: ".path."\n [y]es/[N]o? ") !~? '^y'
- return 0
- endif
-
- call mkdir(path, "p")
- return 1
- endif
-endfunction
-
-
-function! vimwiki#path#is_absolute(path)
- if vimwiki#u#is_windows()
- return a:path =~? '\m^\a:'
- else
- return a:path =~# '\m^/\|\~/'
- endif
-endfunction
-
-
-" Combine a directory and a file into one path, doesn't generate duplicate
-" path separator in case the directory is also having an ending / or \. This
-" is because on windows ~\vimwiki//.tags is invalid but ~\vimwiki/.tags is a
-" valid path.
-if vimwiki#u#is_windows()
- function! vimwiki#path#join_path(directory, file)
- let directory = vimwiki#path#chomp_slash(a:directory)
- let file = substitute(a:file, '\m^[\\/]\+', '', '')
- return directory . '/' . file
- endfunction
-else
- function! vimwiki#path#join_path(directory, file)
- let directory = substitute(a:directory, '\m/\+$', '', '')
- let file = substitute(a:file, '\m^/\+', '', '')
- return directory . '/' . file
- endfunction
-endif
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/style.css b/vim/.vim/plugged/vimwiki/autoload/vimwiki/style.css
deleted file mode 100644
index 431d15b..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/style.css
+++ /dev/null
@@ -1,82 +0,0 @@
-body {font-family: Tahoma, Geneva, sans-serif; margin: 1em 2em 1em 2em; font-size: 100%; line-height: 130%;}
-h1, h2, h3, h4, h5, h6 {font-family: Trebuchet MS, Helvetica, sans-serif; font-weight: bold; line-height:100%; margin-top: 1.5em; margin-bottom: 0.5em;}
-h1 {font-size: 2.6em; color: #000000;}
-h2 {font-size: 2.2em; color: #404040;}
-h3 {font-size: 1.8em; color: #707070;}
-h4 {font-size: 1.4em; color: #909090;}
-h5 {font-size: 1.3em; color: #989898;}
-h6 {font-size: 1.2em; color: #9c9c9c;}
-p, pre, blockquote, table, ul, ol, dl {margin-top: 1em; margin-bottom: 1em;}
-ul ul, ul ol, ol ol, ol ul {margin-top: 0.5em; margin-bottom: 0.5em;}
-li {margin: 0.3em auto;}
-ul {margin-left: 2em; padding-left: 0.5em;}
-dt {font-weight: bold;}
-img {border: none;}
-pre {border-left: 1px solid #ccc; margin-left: 2em; padding-left: 0.5em;}
-blockquote {padding: 0.4em; background-color: #f6f5eb;}
-th, td {border: 1px solid #ccc; padding: 0.3em;}
-th {background-color: #f0f0f0;}
-hr {border: none; border-top: 1px solid #ccc; width: 100%;}
-del {text-decoration: line-through; color: #777777;}
-.toc li {list-style-type: none;}
-.todo {font-weight: bold; background-color: #f0ece8; color: #a03020;}
-.justleft {text-align: left;}
-.justright {text-align: right;}
-.justcenter {text-align: center;}
-.center {margin-left: auto; margin-right: auto;}
-.tag {background-color: #eeeeee; font-family: monospace; padding: 2px;}
-
-/* classes for items of todo lists */
-.rejected {
- /* list-style: none; */
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAACXBIWXMAAADFAAAAxQEdzbqoAAAAB3RJTUUH4QgEFhAtuWgv9wAAAPZQTFRFmpqam5iYnJaWnJeXnpSUn5OTopCQpoqKpouLp4iIqIiIrYCAt3V1vW1tv2xsmZmZmpeXnpKS/x4e/x8f/yAg/yIi/yQk/yUl/yYm/ygo/ykp/yws/zAw/zIy/zMz/zQ0/zU1/zY2/zw8/0BA/0ZG/0pK/1FR/1JS/1NT/1RU/1VV/1ZW/1dX/1pa/15e/19f/2Zm/2lp/21t/25u/3R0/3p6/4CA/4GB/4SE/4iI/46O/4+P/52d/6am/6ur/66u/7Oz/7S0/7e3/87O/9fX/9zc/93d/+Dg/+vr/+3t/+/v//Dw//Ly//X1//f3//n5//z8////gzaKowAAAA90Uk5T/Pz8/Pz8/Pz8/Pz8/f39ppQKWQAAAAFiS0dEEnu8bAAAAACuSURBVAhbPY9ZF4FQFEZPSKbIMmWep4gMGTKLkIv6/3/GPbfF97b3w17rA0kQOPgvAeHW6uJ6+5h7HqLdwowgOzejXRXBdx6UdSru216xuOMBHHNU0clTzeSUA6EhF8V8kqroluMiU6HKcuf4phGPr1o2q9kYZWwNq1qfRRmTaXpqsyjj17KkWCxKBUBgXWueHIyiAIg18gsse4KHkLF5IKIY10WQgv7fOy4ST34BRiopZ8WLNrgAAAAASUVORK5CYII=);
- background-repeat: no-repeat;
- background-position: 0 .2em;
- padding-left: 1.5em;
-}
-.done0 {
- /* list-style: none; */
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAA7SURBVCiR7dMxEgAgCANBI3yVRzF5KxNbW6wsuH7LQ2YKQK1mkswBVERYF5Os3UV3gwd/jF2SkXy66gAZkxS6BniubAAAAABJRU5ErkJggg==);
- background-repeat: no-repeat;
- background-position: 0 .2em;
- padding-left: 1.5em;
-}
-.done1 {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABtSURBVCiR1ZO7DYAwDER9BDmTeZQMFXmUbGYpOjrEryA0wOvO8itOslFrJYAug5BMM4BeSkmjsrv3aVTa8p48Xw1JSkSsWVUFwD05IqS1tmYzk5zzae9jnVVVzGyXb8sALjse+euRkEzu/uirFomVIdDGOLjuAAAAAElFTkSuQmCC);
- background-repeat: no-repeat;
- background-position: 0 .15em;
- padding-left: 1.5em;
-}
-.done2 {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAB1SURBVCiRzdO5DcAgDAVQGxjAYgTvxlDIu1FTIRYAp8qlFISkSH7l5kk+ZIwxKiI2mIyqWoeILYRgZ7GINDOLjnmF3VqklKCUMgTee2DmM661Qs55iI3Zm/1u5h9sm4ig9z4ERHTFzLyd4G4+nFlVrYg8+qoF/c0kdpeMsmcAAAAASUVORK5CYII=);
- background-repeat: no-repeat;
- background-position: 0 .15em;
- padding-left: 1.5em;
-}
-.done3 {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABoSURBVCiR7dOxDcAgDATA/0DtUdiKoZC3YhLkHjkVKF3idJHiztKfvrHZWnOSE8Fx95RJzlprimJVnXktvXeY2S0SEZRSAAAbmxnGGKH2I5T+8VfxPhIReQSuuY3XyYWa3T2p6quvOgGrvSFGlewuUAAAAABJRU5ErkJggg==);
- background-repeat: no-repeat;
- background-position: 0 .15em;
- padding-left: 1.5em;
-}
-.done4 {
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAQCAYAAAAbBi9cAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAzgAAAM4BlP6ToAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIISURBVDiNnZQ9SFtRFMd/773kpTaGJoQk1im4VDpWQcTNODhkFBcVTCNCF0NWyeDiIIiCm82QoIMIUkHUxcFBg1SEQoZszSat6cdTn1qNue92CMbEr9Sey+XC/Z/zu+f8h6ukUil3sVg0+M+4cFxk42/jH2wAqqqKSCSiPQdwcHHAnDHH9s/tN1h8V28ETdP+eU8fT9Nt62ancYdIPvJNtsu87bmjrJlrTDVM4RROJs1JrHPrD4Bar7A6cpc54iKOaTdJXCUI2UMVrQZ0Js7YPN18ECKkYNQcJe/OE/4dZsw7VqNXQMvHy3QZXQypQ6ycrtwDjf8aJ+PNEDSCzLpn7+m2pD8ZKHlKarYhy6XjEoCYGcN95qansQeA3fNdki+SaJZGTMQIOoL3W/Z89rxv+tokubNajlvk/vm+LFpF2XnUKZHI0I+QrI7Dw0OZTqdzUkpsM7mZTyfy5OPGyw1tK7AFSvmB/Ks8w8YwbUYbe6/3QEKv0vugfxWPnMLJun+d/kI/WLdizpNjMbAIKrhMF4OuwadBALqqs+RfInwUvuNi+fBd+wjogfogAFVRmffO02q01mZZ0HHdgXIzdz0QQLPezIQygX6llxNKKgOFARYCC49CqhoHIUTlss/Vx2phlYwjw8j1CAlfAiwQiJpiy7o1VHnsG5FISkoJu7Q/2YmmaV+i0ei7v38L2CBguSi5AAAAAElFTkSuQmCC);
- background-repeat: no-repeat;
- background-position: 0 .15em;
- padding-left: 1.5em;
-}
-
-code {
- font-family: Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
- -webkit-border-radius: 1px;
- -moz-border-radius: 1px;
- border-radius: 1px;
- -moz-background-clip: padding;
- -webkit-background-clip: padding-box;
- background-clip: padding-box;
- padding: 0px 3px;
- display: inline-block;
- color: #52595d;
- border: 1px solid #ccc;
- background-color: #f9f9f9;
-}
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/tags.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/tags.vim
deleted file mode 100644
index e802bce..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/tags.vim
+++ /dev/null
@@ -1,342 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-
-
-let s:TAGS_METADATA_FILE_NAME = '.tags'
-
-
-
-" Tags metadata in-memory format:
-" metadata := { 'pagename': [entries, ...] }
-" entry := { 'tagname':..., 'lineno':..., 'link':... }
-
-" Tags metadata in-file format:
-"
-" Is based on CTags format (see |tags-file-format|).
-"
-" {tagaddress} is set to lineno. We'll let vim search by exact line number; we
-" can afford that, we assume metadata file is always updated before use.
-"
-" Pagename and link are not saved in standard ctags fields, so we'll add
-" an optional field, "vimwiki:". In this field, we encode tab-separated values
-" of missing parameters -- "pagename" and "link".
-
-
-
-" Update tags metadata.
-" a:full_rebuild == 1: re-scan entire wiki
-" a:full_rebuild == 0: only re-scan current page
-" a:all_files == '': only if the file is newer than .tags
-function! vimwiki#tags#update_tags(full_rebuild, all_files)
- let all_files = a:all_files != ''
- if !a:full_rebuild
- " Updating for one page (current)
- let page_name = vimwiki#vars#get_bufferlocal('subdir') . expand('%:t:r')
- " Collect tags in current file
- let tags = s:scan_tags(getline(1, '$'), page_name)
- " Load metadata file
- let metadata = s:load_tags_metadata()
- " Drop old tags
- let metadata = s:remove_page_from_tags(metadata, page_name)
- " Merge in the new ones
- let metadata = s:merge_tags(metadata, page_name, tags)
- " Save
- call s:write_tags_metadata(metadata)
- else " full rebuild
- let files = vimwiki#base#find_files(vimwiki#vars#get_bufferlocal('wiki_nr'), 0)
- let wiki_base_dir = vimwiki#vars#get_wikilocal('path')
- let tags_file_last_modification = getftime(vimwiki#tags#metadata_file_path())
- let metadata = s:load_tags_metadata()
- for file in files
- if all_files || getftime(file) >= tags_file_last_modification
- let subdir = vimwiki#base#subdir(wiki_base_dir, file)
- let page_name = subdir . fnamemodify(file, ':t:r')
- let tags = s:scan_tags(readfile(file), page_name)
- let metadata = s:remove_page_from_tags(metadata, page_name)
- let metadata = s:merge_tags(metadata, page_name, tags)
- endif
- endfor
- call s:write_tags_metadata(metadata)
- endif
-endfunction
-
-
-" Scans the list of text lines (argument) and produces tags metadata as a list of tag entries.
-function! s:scan_tags(lines, page_name)
-
- let entries = []
-
- " Code wireframe to scan for headers -- borrowed from
- " vimwiki#base#get_anchors(), with minor modifications.
-
- let rxheader = vimwiki#vars#get_syntaxlocal('header_search')
- let rxtag = vimwiki#vars#get_syntaxlocal('tag_search')
-
- let anchor_level = ['', '', '', '', '', '', '']
- let current_complete_anchor = ''
-
- let PROXIMITY_LINES_NR = 2
- let header_line_nr = - (2 * PROXIMITY_LINES_NR)
-
- for line_nr in range(1, len(a:lines))
- let line = a:lines[line_nr - 1]
-
- " process headers
- let h_match = matchlist(line, rxheader)
- if !empty(h_match) " got a header
- let header_line_nr = line_nr
- let header = vimwiki#u#trim(h_match[2])
- let level = len(h_match[1])
- let anchor_level[level-1] = header
- for l in range(level, 6)
- let anchor_level[l] = ''
- endfor
- if level == 1
- let current_complete_anchor = header
- else
- let current_complete_anchor = ''
- for l in range(level-1)
- if anchor_level[l] != ''
- let current_complete_anchor .= anchor_level[l].'#'
- endif
- endfor
- let current_complete_anchor .= header
- endif
- continue " tags are not allowed in headers
- endif
-
- " TODO ignore verbatim blocks
-
- " Scan line for tags. There can be many of them.
- let str = line
- while 1
- let tag_group = matchstr(str, rxtag)
- if tag_group == ''
- break
- endif
- let tagend = matchend(str, rxtag)
- let str = str[(tagend):]
- for tag in split(tag_group, ':')
- " Create metadata entry
- let entry = {}
- let entry.tagname = tag
- let entry.lineno = line_nr
- if line_nr <= PROXIMITY_LINES_NR && header_line_nr < 0
- " Tag appeared at the top of the file
- let entry.link = a:page_name
- elseif line_nr <= (header_line_nr + PROXIMITY_LINES_NR)
- " Tag appeared right below a header
- let entry.link = a:page_name . '#' . current_complete_anchor
- else
- " Tag stands on its own
- let entry.link = a:page_name . '#' . tag
- endif
- call add(entries, entry)
- endfor
- endwhile
-
- endfor " loop over lines
- return entries
-endfunction
-
-
-" Returns tags metadata file path
-function! vimwiki#tags#metadata_file_path() abort
- return fnamemodify(vimwiki#path#join_path(vimwiki#vars#get_wikilocal('path'),
- \ s:TAGS_METADATA_FILE_NAME), ':p')
-endfunction
-
-
-" Loads tags metadata from file, returns a dictionary
-function! s:load_tags_metadata() abort
- let metadata_path = vimwiki#tags#metadata_file_path()
- if !filereadable(metadata_path)
- return {}
- endif
- let metadata = {}
- for line in readfile(metadata_path)
- if line =~ '^!_TAG_FILE_'
- continue
- endif
- let parts = matchlist(line, '^\(.\{-}\);"\(.*\)$')
- if parts[0] == '' || parts[1] == '' || parts[2] == ''
- throw 'VimwikiTags1: Metadata file corrupted'
- endif
- let std_fields = split(parts[1], '\t')
- if len(std_fields) != 3
- throw 'VimwikiTags2: Metadata file corrupted'
- endif
- let vw_part = parts[2]
- if vw_part[0] != "\t"
- throw 'VimwikiTags3: Metadata file corrupted'
- endif
- let vw_fields = split(vw_part[1:], "\t")
- if len(vw_fields) != 1 || vw_fields[0] !~ '^vimwiki:'
- throw 'VimwikiTags4: Metadata file corrupted'
- endif
- let vw_data = substitute(vw_fields[0], '^vimwiki:', '', '')
- let vw_data = substitute(vw_data, '\\n', "\n", 'g')
- let vw_data = substitute(vw_data, '\\r', "\r", 'g')
- let vw_data = substitute(vw_data, '\\t', "\t", 'g')
- let vw_data = substitute(vw_data, '\\\\', "\\", 'g')
- let vw_fields = split(vw_data, "\t")
- if len(vw_fields) != 2
- throw 'VimwikiTags5: Metadata file corrupted'
- endif
- let pagename = vw_fields[0]
- let entry = {}
- let entry.tagname = std_fields[0]
- let entry.lineno = std_fields[2]
- let entry.link = vw_fields[1]
- if has_key(metadata, pagename)
- call add(metadata[pagename], entry)
- else
- let metadata[pagename] = [entry]
- endif
- endfor
- return metadata
-endfunction
-
-
-" Removes all entries for given page from metadata in-place. Returns updated
-" metadata (just in case).
-function! s:remove_page_from_tags(metadata, page_name)
- if has_key(a:metadata, a:page_name)
- call remove(a:metadata, a:page_name)
- return a:metadata
- else
- return a:metadata
- endif
-endfunction
-
-
-" Merges metadata of one file into a:metadata
-function! s:merge_tags(metadata, pagename, file_metadata)
- let metadata = a:metadata
- let metadata[a:pagename] = a:file_metadata
- return metadata
-endfunction
-
-
-" Compares two actual lines from tags file. Return value is in strcmp style.
-" See help on sort() -- that's what this function is going to be used for.
-" See also s:write_tags_metadata below -- that's where we compose these tags
-" file lines.
-"
-" This function is needed for tags sorting, since plain sort() compares line
-" numbers as strings, not integers, and so, for example, tag at line 14
-" preceeds the same tag on the same page at line 9. (Because string "14" is
-" alphabetically 'less than' string "9".)
-function! s:tags_entry_cmp(i1, i2)
- let items = []
- for orig_item in [a:i1, a:i2]
- let fields = split(orig_item, "\t")
- let item = {}
- let item.text = fields[0]."\t".fields[1]
- let item.lineno = 0 + matchstr(fields[2], '\m\d\+')
- call add(items, item)
- endfor
- if items[0].text ># items[1].text
- return 1
- elseif items[0].text <# items[1].text
- return -1
- elseif items[0].lineno > items[1].lineno
- return 1
- elseif items[0].lineno < items[1].lineno
- return -1
- else
- return 0
- endif
-endfunction
-
-
-" Saves metadata object into a file. Throws exceptions in case of problems.
-function! s:write_tags_metadata(metadata)
- let metadata_path = vimwiki#tags#metadata_file_path()
- let tags = []
- for pagename in keys(a:metadata)
- for entry in a:metadata[pagename]
- let entry_data = pagename . "\t" . entry.link
- let entry_data = substitute(entry_data, "\\", '\\\\', 'g')
- let entry_data = substitute(entry_data, "\t", '\\t', 'g')
- let entry_data = substitute(entry_data, "\r", '\\r', 'g')
- let entry_data = substitute(entry_data, "\n", '\\n', 'g')
- call add(tags,
- \ entry.tagname . "\t"
- \ . pagename . vimwiki#vars#get_wikilocal('ext') . "\t"
- \ . entry.lineno
- \ . ';"'
- \ . "\t" . "vimwiki:" . entry_data
- \)
- endfor
- endfor
- call sort(tags, "s:tags_entry_cmp")
- call insert(tags, "!_TAG_FILE_SORTED\t1\t")
- call writefile(tags, metadata_path)
-endfunction
-
-
-" Returns list of unique tags found in the .tags file
-function! vimwiki#tags#get_tags()
- let metadata = s:load_tags_metadata()
- let tags = {}
- for entries in values(metadata)
- for entry in entries
- let tags[entry.tagname] = 1
- endfor
- endfor
- return keys(tags)
-endfunction
-
-
-" Similar to vimwiki#base#generate_links. In the current buffer, appends
-" tags and references to all their instances. If no arguments (tags) are
-" specified, outputs all tags.
-function! vimwiki#tags#generate_tags(...) abort
- let need_all_tags = (a:0 == 0)
- let specific_tags = a:000
-
- let metadata = s:load_tags_metadata()
-
- " make a dictionary { tag_name: [tag_links, ...] }
- let tags_entries = {}
- for entries in values(metadata)
- for entry in entries
- if has_key(tags_entries, entry.tagname)
- call add(tags_entries[entry.tagname], entry.link)
- else
- let tags_entries[entry.tagname] = [entry.link]
- endif
- endfor
- endfor
-
- let lines = []
- let bullet = repeat(' ', vimwiki#lst#get_list_margin()).vimwiki#lst#default_symbol().' '
- for tagname in sort(keys(tags_entries))
- if need_all_tags || index(specific_tags, tagname) != -1
- call extend(lines, [
- \ '',
- \ substitute(vimwiki#vars#get_syntaxlocal('rxH2_Template'), '__Header__', tagname, ''),
- \ '' ])
- for taglink in sort(tags_entries[tagname])
- call add(lines, bullet . substitute(vimwiki#vars#get_global('WikiLinkTemplate1'),
- \ '__LinkUrl__', taglink, ''))
- endfor
- endif
- endfor
-
- let links_rx = '\m\%(^\s*$\)\|\%('.vimwiki#vars#get_syntaxlocal('rxH2').'\)\|\%(^\s*'
- \ .vimwiki#u#escape(vimwiki#lst#default_symbol()).' '
- \ .vimwiki#vars#get_syntaxlocal('rxWikiLink').'$\)'
-
- call vimwiki#base#update_listing_in_buffer(lines, 'Generated Tags', links_rx, line('$')+1, 1)
-endfunction
-
-
-function! vimwiki#tags#complete_tags(ArgLead, CmdLine, CursorPos) abort
- " We can safely ignore args if we use -custom=complete option, Vim engine
- " will do the job of filtering.
- let taglist = vimwiki#tags#get_tags()
- return join(taglist, "\n")
-endfunction
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/tbl.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/tbl.vim
deleted file mode 100644
index 1c049ce..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/tbl.vim
+++ /dev/null
@@ -1,703 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Description: Tables
-" | Easily | manageable | text | tables | ! |
-" |--------|------------|-------|--------|---------|
-" | Have | fun! | Drink | tea | Period. |
-"
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-
-if exists("g:loaded_vimwiki_tbl_auto") || &cp
- finish
-endif
-let g:loaded_vimwiki_tbl_auto = 1
-
-
-let s:textwidth = &tw
-
-
-function! s:rxSep()
- return vimwiki#vars#get_syntaxlocal('rxTableSep')
-endfunction
-
-
-function! s:wide_len(str)
- " vim73 has new function that gives correct string width.
- if exists("*strdisplaywidth")
- return strdisplaywidth(a:str)
- endif
-
- " get str display width in vim ver < 7.2
- if !vimwiki#vars#get_global('CJK_length')
- let ret = strlen(substitute(a:str, '.', 'x', 'g'))
- else
- let savemodified = &modified
- let save_cursor = getpos('.')
- exe "norm! o\<esc>"
- call setline(line("."), a:str)
- let ret = virtcol("$") - 1
- d
- call setpos('.', save_cursor)
- let &modified = savemodified
- endif
- return ret
-endfunction
-
-
-function! s:cell_splitter()
- return '\s*'.s:rxSep().'\s*'
-endfunction
-
-
-function! s:sep_splitter()
- return '-'.s:rxSep().'-'
-endfunction
-
-
-function! s:is_table(line)
- return s:is_separator(a:line) ||
- \ (a:line !~# s:rxSep().s:rxSep() && a:line =~# '^\s*'.s:rxSep().'.\+'.s:rxSep().'\s*$')
-endfunction
-
-
-function! s:is_separator(line)
- return a:line =~# '^\s*'.s:rxSep().'\(--\+'.s:rxSep().'\)\+\s*$'
-endfunction
-
-
-function! s:is_separator_tail(line)
- return a:line =~# '^\{-1}\%(\s*\|-*\)\%('.s:rxSep().'-\+\)\+'.s:rxSep().'\s*$'
-endfunction
-
-
-function! s:is_last_column(lnum, cnum)
- let line = strpart(getline(a:lnum), a:cnum - 1)
- return line =~# s:rxSep().'\s*$' && line !~# s:rxSep().'.*'.s:rxSep().'\s*$'
-endfunction
-
-
-function! s:is_first_column(lnum, cnum)
- let line = strpart(getline(a:lnum), 0, a:cnum - 1)
- return line =~# '^\s*$' ||
- \ (line =~# '^\s*'.s:rxSep() && line !~# '^\s*'.s:rxSep().'.*'.s:rxSep())
-endfunction
-
-
-function! s:count_separators_up(lnum)
- let lnum = a:lnum - 1
- while lnum > 1
- if !s:is_separator(getline(lnum))
- break
- endif
- let lnum -= 1
- endwhile
-
- return (a:lnum-lnum)
-endfunction
-
-
-function! s:count_separators_down(lnum)
- let lnum = a:lnum + 1
- while lnum < line('$')
- if !s:is_separator(getline(lnum))
- break
- endif
- let lnum += 1
- endwhile
-
- return (lnum-a:lnum)
-endfunction
-
-
-function! s:create_empty_row(cols)
- let row = s:rxSep()
- let cell = " ".s:rxSep()
-
- for c in range(a:cols)
- let row .= cell
- endfor
-
- return row
-endfunction
-
-
-function! s:create_row_sep(cols)
- let row = s:rxSep()
- let cell = "---".s:rxSep()
-
- for c in range(a:cols)
- let row .= cell
- endfor
-
- return row
-endfunction
-
-
-function! vimwiki#tbl#get_cells(line)
- let result = []
- let cell = ''
- let quote = ''
- let state = 'NONE'
-
- " 'Simple' FSM
- for idx in range(strlen(a:line))
- " The only way I know Vim can do Unicode...
- let ch = a:line[idx]
- if state ==# 'NONE'
- if ch == '|'
- let state = 'CELL'
- endif
- elseif state ==# 'CELL'
- if ch == '[' || ch == '{'
- let state = 'BEFORE_QUOTE_START'
- let quote = ch
- elseif ch == '|'
- call add(result, vimwiki#u#trim(cell))
- let cell = ""
- else
- let cell .= ch
- endif
- elseif state ==# 'BEFORE_QUOTE_START'
- if ch == '[' || ch == '{'
- let state = 'QUOTE'
- let quote .= ch
- else
- let state = 'CELL'
- let cell .= quote.ch
- let quote = ''
- endif
- elseif state ==# 'QUOTE'
- if ch == ']' || ch == '}'
- let state = 'BEFORE_QUOTE_END'
- endif
- let quote .= ch
- elseif state ==# 'BEFORE_QUOTE_END'
- if ch == ']' || ch == '}'
- let state = 'CELL'
- endif
- let cell .= quote.ch
- let quote = ''
- endif
- endfor
-
- if cell.quote != ''
- call add(result, vimwiki#u#trim(cell.quote, '|'))
- endif
- return result
-endfunction
-
-
-function! s:col_count(lnum)
- return len(vimwiki#tbl#get_cells(getline(a:lnum)))
-endfunction
-
-
-function! s:get_indent(lnum)
- if !s:is_table(getline(a:lnum))
- return
- endif
-
- let indent = 0
-
- let lnum = a:lnum - 1
- while lnum > 1
- let line = getline(lnum)
- if !s:is_table(line)
- let indent = indent(lnum+1)
- break
- endif
- let lnum -= 1
- endwhile
-
- return indent
-endfunction
-
-
-function! s:get_rows(lnum)
- if !s:is_table(getline(a:lnum))
- return
- endif
-
- let upper_rows = []
- let lower_rows = []
-
- let lnum = a:lnum - 1
- while lnum >= 1
- let line = getline(lnum)
- if s:is_table(line)
- call add(upper_rows, [lnum, line])
- else
- break
- endif
- let lnum -= 1
- endwhile
- call reverse(upper_rows)
-
- let lnum = a:lnum
- while lnum <= line('$')
- let line = getline(lnum)
- if s:is_table(line)
- call add(lower_rows, [lnum, line])
- else
- break
- endif
- let lnum += 1
- endwhile
-
- return upper_rows + lower_rows
-endfunction
-
-
-function! s:get_cell_max_lens(lnum, ...)
- let max_lens = {}
- for [lnum, row] in s:get_rows(a:lnum)
- if s:is_separator(row)
- continue
- endif
- let cells = a:0 > 1 ? a:1[lnum - a:2] : vimwiki#tbl#get_cells(row)
- for idx in range(len(cells))
- let value = cells[idx]
- if has_key(max_lens, idx)
- let max_lens[idx] = max([s:wide_len(value), max_lens[idx]])
- else
- let max_lens[idx] = s:wide_len(value)
- endif
- endfor
- endfor
- return max_lens
-endfunction
-
-
-function! s:get_aligned_rows(lnum, col1, col2)
- let rows = s:get_rows(a:lnum)
- let startlnum = rows[0][0]
- let cells = []
- for [lnum, row] in rows
- call add(cells, vimwiki#tbl#get_cells(row))
- endfor
- let max_lens = s:get_cell_max_lens(a:lnum, cells, startlnum)
- let result = []
- for [lnum, row] in rows
- if s:is_separator(row)
- let new_row = s:fmt_sep(max_lens, a:col1, a:col2)
- else
- let new_row = s:fmt_row(cells[lnum - startlnum], max_lens, a:col1, a:col2)
- endif
- call add(result, [lnum, new_row])
- endfor
- return result
-endfunction
-
-
-" Number of the current column. Starts from 0.
-function! s:cur_column()
- let line = getline('.')
- if !s:is_table(line)
- return -1
- endif
- " TODO: do we need conditional: if s:is_separator(line)
-
- let curs_pos = col('.')
- let mpos = match(line, s:rxSep(), 0)
- let col = -1
- while mpos < curs_pos && mpos != -1
- let mpos = match(line, s:rxSep(), mpos+1)
- if mpos != -1
- let col += 1
- endif
- endwhile
- return col
-endfunction
-
-
-function! s:fmt_cell(cell, max_len)
- let cell = ' '.a:cell.' '
-
- let diff = a:max_len - s:wide_len(a:cell)
- if diff == 0 && empty(a:cell)
- let diff = 1
- endif
-
- let cell .= repeat(' ', diff)
- return cell
-endfunction
-
-
-function! s:fmt_row(cells, max_lens, col1, col2)
- let new_line = s:rxSep()
- for idx in range(len(a:cells))
- if idx == a:col1
- let idx = a:col2
- elseif idx == a:col2
- let idx = a:col1
- endif
- let value = a:cells[idx]
- let new_line .= s:fmt_cell(value, a:max_lens[idx]).s:rxSep()
- endfor
-
- let idx = len(a:cells)
- while idx < len(a:max_lens)
- let new_line .= s:fmt_cell('', a:max_lens[idx]).s:rxSep()
- let idx += 1
- endwhile
- return new_line
-endfunction
-
-
-function! s:fmt_cell_sep(max_len)
- if a:max_len == 0
- return repeat('-', 3)
- else
- return repeat('-', a:max_len+2)
- endif
-endfunction
-
-
-function! s:fmt_sep(max_lens, col1, col2)
- let new_line = s:rxSep()
- for idx in range(len(a:max_lens))
- if idx == a:col1
- let idx = a:col2
- elseif idx == a:col2
- let idx = a:col1
- endif
- let new_line .= s:fmt_cell_sep(a:max_lens[idx]).s:rxSep()
- endfor
- return new_line
-endfunction
-
-
-function! s:kbd_create_new_row(cols, goto_first)
- let cmd = "\<ESC>o".s:create_empty_row(a:cols)
- let cmd .= "\<ESC>:call vimwiki#tbl#format(line('.'))\<CR>"
- let cmd .= "\<ESC>0"
- if a:goto_first
- let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'c', line('.'))\<CR>"
- else
- let cmd .= (col('.')-1)."l"
- let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'bc', line('.'))\<CR>"
- endif
- let cmd .= "a"
-
- return cmd
-endfunction
-
-
-function! s:kbd_goto_next_row()
- let cmd = "\<ESC>j"
- let cmd .= ":call search('.\\(".s:rxSep()."\\)', 'c', line('.'))\<CR>"
- let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'bc', line('.'))\<CR>"
- let cmd .= "a"
- return cmd
-endfunction
-
-
-function! s:kbd_goto_prev_row()
- let cmd = "\<ESC>k"
- let cmd .= ":call search('.\\(".s:rxSep()."\\)', 'c', line('.'))\<CR>"
- let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'bc', line('.'))\<CR>"
- let cmd .= "a"
- return cmd
-endfunction
-
-
-" Used in s:kbd_goto_next_col
-function! vimwiki#tbl#goto_next_col()
- let curcol = virtcol('.')
- let lnum = line('.')
- let newcol = s:get_indent(lnum)
- let max_lens = s:get_cell_max_lens(lnum)
- for cell_len in values(max_lens)
- if newcol >= curcol-1
- break
- endif
- let newcol += cell_len + 3 " +3 == 2 spaces + 1 separator |<space>...<space>
- endfor
- let newcol += 2 " +2 == 1 separator + 1 space |<space
- call vimwiki#u#cursor(lnum, newcol)
-endfunction
-
-
-function! s:kbd_goto_next_col(jumpdown)
- let cmd = "\<ESC>"
- if a:jumpdown
- let seps = s:count_separators_down(line('.'))
- let cmd .= seps."j0"
- endif
- let cmd .= ":call vimwiki#tbl#goto_next_col()\<CR>a"
- return cmd
-endfunction
-
-
-" Used in s:kbd_goto_prev_col
-function! vimwiki#tbl#goto_prev_col()
- let curcol = virtcol('.')
- let lnum = line('.')
- let newcol = s:get_indent(lnum)
- let max_lens = s:get_cell_max_lens(lnum)
- let prev_cell_len = 0
- for cell_len in values(max_lens)
- let delta = cell_len + 3 " +3 == 2 spaces + 1 separator |<space>...<space>
- if newcol + delta > curcol-1
- let newcol -= (prev_cell_len + 3) " +3 == 2 spaces + 1 separator |<space>...<space>
- break
- elseif newcol + delta == curcol-1
- break
- endif
- let prev_cell_len = cell_len
- let newcol += delta
- endfor
- let newcol += 2 " +2 == 1 separator + 1 space |<space
- call vimwiki#u#cursor(lnum, newcol)
-endfunction
-
-
-function! s:kbd_goto_prev_col(jumpup)
- let cmd = "\<ESC>"
- if a:jumpup
- let seps = s:count_separators_up(line('.'))
- let cmd .= seps."k"
- let cmd .= "$"
- endif
- let cmd .= ":call vimwiki#tbl#goto_prev_col()\<CR>a"
- " let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'b', line('.'))\<CR>"
- " let cmd .= "a"
- "echomsg "DEBUG kbd_goto_prev_col> ".cmd
- return cmd
-endfunction
-
-
-function! vimwiki#tbl#kbd_cr()
- let lnum = line('.')
- if !s:is_table(getline(lnum))
- return ""
- endif
-
- if s:is_separator(getline(lnum+1)) || !s:is_table(getline(lnum+1))
- let cols = len(vimwiki#tbl#get_cells(getline(lnum)))
- return s:kbd_create_new_row(cols, 0)
- else
- return s:kbd_goto_next_row()
- endif
-endfunction
-
-
-function! vimwiki#tbl#kbd_tab()
- let lnum = line('.')
- if !s:is_table(getline(lnum))
- return "\<Tab>"
- endif
-
- let last = s:is_last_column(lnum, col('.'))
- let is_sep = s:is_separator_tail(getline(lnum))
- "echomsg "DEBUG kbd_tab> last=".last.", is_sep=".is_sep
- if (is_sep || last) && !s:is_table(getline(lnum+1))
- let cols = len(vimwiki#tbl#get_cells(getline(lnum)))
- return s:kbd_create_new_row(cols, 1)
- endif
- return s:kbd_goto_next_col(is_sep || last)
-endfunction
-
-
-function! vimwiki#tbl#kbd_shift_tab()
- let lnum = line('.')
- if !s:is_table(getline(lnum))
- return "\<S-Tab>"
- endif
-
- let first = s:is_first_column(lnum, col('.'))
- let is_sep = s:is_separator_tail(getline(lnum))
- "echomsg "DEBUG kbd_tab> ".first
- if (is_sep || first) && !s:is_table(getline(lnum-1))
- return ""
- endif
- return s:kbd_goto_prev_col(is_sep || first)
-endfunction
-
-
-function! vimwiki#tbl#format(lnum, ...)
- if !(&filetype ==? 'vimwiki')
- return
- endif
- let line = getline(a:lnum)
- if !s:is_table(line)
- return
- endif
-
- if a:0 == 2
- let col1 = a:1
- let col2 = a:2
- else
- let col1 = 0
- let col2 = 0
- endif
-
- let indent = s:get_indent(a:lnum)
- if &expandtab
- let indentstring = repeat(' ', indent)
- else
- let indentstring = repeat(' ', indent / &tabstop) . repeat(' ', indent % &tabstop)
- endif
-
- for [lnum, row] in s:get_aligned_rows(a:lnum, col1, col2)
- let row = indentstring.row
- call setline(lnum, row)
- endfor
-
- let &tw = s:textwidth
-endfunction
-
-
-function! vimwiki#tbl#create(...)
- if a:0 > 1
- let cols = a:1
- let rows = a:2
- elseif a:0 == 1
- let cols = a:1
- let rows = 2
- elseif a:0 == 0
- let cols = 5
- let rows = 2
- endif
-
- if cols < 1
- let cols = 5
- endif
-
- if rows < 1
- let rows = 2
- endif
-
- let lines = []
- let row = s:create_empty_row(cols)
-
- call add(lines, row)
- if rows > 1
- call add(lines, s:create_row_sep(cols))
- endif
-
- for r in range(rows - 1)
- call add(lines, row)
- endfor
-
- call append(line('.'), lines)
-endfunction
-
-
-function! vimwiki#tbl#align_or_cmd(cmd)
- if s:is_table(getline('.'))
- call vimwiki#tbl#format(line('.'))
- else
- exe 'normal! '.a:cmd
- endif
-endfunction
-
-
-function! vimwiki#tbl#reset_tw(lnum)
- if !(&filetype ==? 'vimwiki')
- return
- endif
- let line = getline(a:lnum)
- if !s:is_table(line)
- return
- endif
-
- let s:textwidth = &tw
- let &tw = 0
-endfunction
-
-
-" TODO: move_column_left and move_column_right are good candidates to be refactored.
-function! vimwiki#tbl#move_column_left()
-
- "echomsg "DEBUG move_column_left: "
-
- let line = getline('.')
-
- if !s:is_table(line)
- return
- endif
-
- let cur_col = s:cur_column()
- if cur_col == -1
- return
- endif
-
- if cur_col > 0
- call vimwiki#tbl#format(line('.'), cur_col-1, cur_col)
- call cursor(line('.'), 1)
-
- let sep = '\('.s:rxSep().'\).\zs'
- let mpos = -1
- let col = -1
- while col < cur_col-1
- let mpos = match(line, sep, mpos+1)
- if mpos != -1
- let col += 1
- else
- break
- endif
- endwhile
-
- endif
-endfunction
-
-
-function! vimwiki#tbl#move_column_right()
-
- let line = getline('.')
-
- if !s:is_table(line)
- return
- endif
-
- let cur_col = s:cur_column()
- if cur_col == -1
- return
- endif
-
- if cur_col < s:col_count(line('.'))-1
- call vimwiki#tbl#format(line('.'), cur_col, cur_col+1)
- call cursor(line('.'), 1)
-
- let sep = '\('.s:rxSep().'\).\zs'
- let mpos = -1
- let col = -1
- while col < cur_col+1
- let mpos = match(line, sep, mpos+1)
- if mpos != -1
- let col += 1
- else
- break
- endif
- endwhile
- endif
-endfunction
-
-
-function! vimwiki#tbl#get_rows(lnum)
- return s:get_rows(a:lnum)
-endfunction
-
-
-function! vimwiki#tbl#is_table(line)
- return s:is_table(a:line)
-endfunction
-
-
-function! vimwiki#tbl#is_separator(line)
- return s:is_separator(a:line)
-endfunction
-
-
-function! vimwiki#tbl#cell_splitter()
- return s:cell_splitter()
-endfunction
-
-
-function! vimwiki#tbl#sep_splitter()
- return s:sep_splitter()
-endfunction
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/u.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/u.vim
deleted file mode 100644
index c8f62ee..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/u.vim
+++ /dev/null
@@ -1,72 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Description: Utility functions
-" Home: https://github.com/vimwiki/vimwiki/
-
-function! vimwiki#u#trim(string, ...)
- let chars = ''
- if a:0 > 0
- let chars = a:1
- endif
- let res = substitute(a:string, '^[[:space:]'.chars.']\+', '', '')
- let res = substitute(res, '[[:space:]'.chars.']\+$', '', '')
- return res
-endfunction
-
-
-" Builtin cursor doesn't work right with unicode characters.
-function! vimwiki#u#cursor(lnum, cnum)
- exe a:lnum
- exe 'normal! 0'.a:cnum.'|'
-endfunction
-
-
-function! vimwiki#u#is_windows()
- return has("win32") || has("win64") || has("win95") || has("win16")
-endfunction
-
-
-function! vimwiki#u#is_macos()
- if has("mac") || has("macunix") || has("gui_mac")
- return 1
- endif
- " that still doesn't mean we are not on Mac OS
- let os = substitute(system('uname'), '\n', '', '')
- return os == 'Darwin' || os == 'Mac'
-endfunction
-
-
-function! vimwiki#u#count_first_sym(line)
- let first_sym = matchstr(a:line, '\S')
- return len(matchstr(a:line, first_sym.'\+'))
-endfunction
-
-
-function! vimwiki#u#escape(string)
- return escape(a:string, '~.*[]\^$')
-endfunction
-
-
-" Load concrete Wiki syntax: sets regexes and templates for headers and links
-function vimwiki#u#reload_regexes()
- execute 'runtime! syntax/vimwiki_'.vimwiki#vars#get_wikilocal('syntax').'.vim'
-endfunction
-
-
-" Load syntax-specific functionality
-function vimwiki#u#reload_regexes_custom()
- execute 'runtime! syntax/vimwiki_'.vimwiki#vars#get_wikilocal('syntax').'_custom.vim'
-endfunction
-
-
-" Backward compatible version of the built-in function shiftwidth()
-if exists('*shiftwidth')
- func vimwiki#u#sw()
- return shiftwidth()
- endfunc
-else
- func vimwiki#u#sw()
- return &sw
- endfunc
-endif
-
diff --git a/vim/.vim/plugged/vimwiki/autoload/vimwiki/vars.vim b/vim/.vim/plugged/vimwiki/autoload/vimwiki/vars.vim
deleted file mode 100644
index 2f1ab50..0000000
--- a/vim/.vim/plugged/vimwiki/autoload/vimwiki/vars.vim
+++ /dev/null
@@ -1,711 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki autoload plugin file
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-
-" ------------------------------------------------------------------------------------------------
-" This file provides functions to manage the various state variables which are needed during a
-" Vimwiki session.
-" They consist of:
-"
-" - global variables. These are stored in the dict g:vimwiki_global_vars. They consist mainly of
-" global user variables and syntax stuff which is the same for every syntax.
-"
-" - wiki-local variables. They are stored in g:vimwiki_wikilocal_vars which is a list of
-" dictionaries. One dict for every registered wiki. The last dictionary contains default values
-" (used for temporary wikis).
-"
-" - syntax variables. Stored in the dict g:vimwiki_syntax_variables which holds all the regexes and
-" other stuff which is needed for highlighting.
-"
-" - buffer-local variables. They are stored as buffer variables directly (b:foo)
-
-" As a developer, you should, if possible, only use the get_ and set_ functions for these types of
-" variables, not the underlying dicts!
-" ------------------------------------------------------------------------------------------------
-
-
-function! s:populate_global_variables()
-
- let g:vimwiki_global_vars = {
- \ 'CJK_length': 0,
- \ 'auto_chdir': 0,
- \ 'autowriteall': 1,
- \ 'conceallevel': 2,
- \ 'diary_months':
- \ {
- \ 1: 'January', 2: 'February', 3: 'March',
- \ 4: 'April', 5: 'May', 6: 'June',
- \ 7: 'July', 8: 'August', 9: 'September',
- \ 10: 'October', 11: 'November', 12: 'December'
- \ },
- \ 'dir_link': '',
- \ 'ext2syntax': {},
- \ 'folding': '',
- \ 'global_ext': 1,
- \ 'hl_cb_checked': 0,
- \ 'hl_headers': 0,
- \ 'html_header_numbering': 0,
- \ 'html_header_numbering_sym': '',
- \ 'list_ignore_newline': 1,
- \ 'text_ignore_newline': 1,
- \ 'listsyms': ' .oOX',
- \ 'listsym_rejected': '-',
- \ 'map_prefix': '<Leader>w',
- \ 'menu': 'Vimwiki',
- \ 'table_auto_fmt': 1,
- \ 'table_mappings': 1,
- \ 'toc_header': 'Contents',
- \ 'url_maxsave': 15,
- \ 'use_calendar': 1,
- \ 'use_mouse': 0,
- \ 'user_htmls': '',
- \ 'valid_html_tags': 'b,i,s,u,sub,sup,kbd,br,hr,div,center,strong,em',
- \ 'w32_dir_enc': '',
- \ }
-
- " copy the user's settings from variables of the form g:vimwiki_<option> into the dict
- " g:vimwiki_global_vars (or set a default value)
- for key in keys(g:vimwiki_global_vars)
- if exists('g:vimwiki_'.key)
- let g:vimwiki_global_vars[key] = g:vimwiki_{key}
- endif
- endfor
-
- " non-configurable global variables:
-
- " Scheme regexes must be defined even if syntax file is not loaded yet cause users should be
- " able to <leader>w<leader>w without opening any vimwiki file first
- let g:vimwiki_global_vars.schemes = join(['wiki\d\+', 'diary', 'local'], '\|')
- let g:vimwiki_global_vars.web_schemes1 = join(['http', 'https', 'file', 'ftp', 'gopher',
- \ 'telnet', 'nntp', 'ldap', 'rsync', 'imap', 'pop', 'irc', 'ircs', 'cvs', 'svn', 'svn+ssh',
- \ 'git', 'ssh', 'fish', 'sftp'], '\|')
- let web_schemes2 =
- \ join(['mailto', 'news', 'xmpp', 'sip', 'sips', 'doi', 'urn', 'tel', 'data'], '\|')
-
- let g:vimwiki_global_vars.rxSchemes = '\%('.
- \ g:vimwiki_global_vars.schemes . '\|'.
- \ g:vimwiki_global_vars.web_schemes1 . '\|'.
- \ web_schemes2 .
- \ '\)'
-
- " match URL for common protocols; see http://en.wikipedia.org/wiki/URI_scheme
- " http://tools.ietf.org/html/rfc3986
- let rxWebProtocols =
- \ '\%('.
- \ '\%('.
- \ '\%('.g:vimwiki_global_vars.web_schemes1 . '\):'.
- \ '\%(//\)'.
- \ '\)'.
- \ '\|'.
- \ '\%('.web_schemes2.'\):'.
- \ '\)'
-
- let g:vimwiki_global_vars.rxWeblinkUrl = rxWebProtocols . '\S\{-1,}'. '\%(([^ \t()]*)\)\='
-
- let wikilink_prefix = '[['
- let wikilink_suffix = ']]'
- let wikilink_separator = '|'
- let g:vimwiki_global_vars.rx_wikilink_prefix = vimwiki#u#escape(wikilink_prefix)
- let g:vimwiki_global_vars.rx_wikilink_suffix = vimwiki#u#escape(wikilink_suffix)
- let g:vimwiki_global_vars.rx_wikilink_separator = vimwiki#u#escape(wikilink_separator)
-
- " templates for the creation of wiki links
- " [[URL]]
- let g:vimwiki_global_vars.WikiLinkTemplate1 = wikilink_prefix . '__LinkUrl__'. wikilink_suffix
- " [[URL|DESCRIPTION]]
- let g:vimwiki_global_vars.WikiLinkTemplate2 = wikilink_prefix . '__LinkUrl__'. wikilink_separator
- \ . '__LinkDescription__' . wikilink_suffix
-
- let valid_chars = '[^\\\]]'
- let g:vimwiki_global_vars.rxWikiLinkUrl = valid_chars.'\{-}'
- let g:vimwiki_global_vars.rxWikiLinkDescr = valid_chars.'\{-}'
-
- " this regexp defines what can form a link when the user presses <CR> in the
- " buffer (and not on a link) to create a link
- " basically, it's Ascii alphanumeric characters plus #|./@-_~ plus all
- " non-Ascii characters, except that . is not accepted as the last character
- let g:vimwiki_global_vars.rxWord = '[^[:blank:]!"$%&''()*+,:;<=>?\[\]\\^`{}]*[^[:blank:]!"$%&''()*+.,:;<=>?\[\]\\^`{}]'
-
- let g:vimwiki_global_vars.rx_wikilink_prefix1 = g:vimwiki_global_vars.rx_wikilink_prefix .
- \ g:vimwiki_global_vars.rxWikiLinkUrl . g:vimwiki_global_vars.rx_wikilink_separator
- let g:vimwiki_global_vars.rx_wikilink_suffix1 = g:vimwiki_global_vars.rx_wikilink_suffix
-
- let g:vimwiki_global_vars.rxWikiInclPrefix = '{{'
- let g:vimwiki_global_vars.rxWikiInclSuffix = '}}'
- let g:vimwiki_global_vars.rxWikiInclSeparator = '|'
- " '{{__LinkUrl__}}'
- let g:vimwiki_global_vars.WikiInclTemplate1 = g:vimwiki_global_vars.rxWikiInclPrefix
- \ .'__LinkUrl__'. g:vimwiki_global_vars.rxWikiInclSuffix
- " '{{__LinkUrl____LinkDescription__}}'
- let g:vimwiki_global_vars.WikiInclTemplate2 = g:vimwiki_global_vars.rxWikiInclPrefix
- \ . '__LinkUrl__' . g:vimwiki_global_vars.rxWikiInclSeparator . '__LinkDescription__'
- \ . g:vimwiki_global_vars.rxWikiInclSuffix
-
- let valid_chars = '[^\\\}]'
- let g:vimwiki_global_vars.rxWikiInclUrl = valid_chars.'\{-}'
- let g:vimwiki_global_vars.rxWikiInclArg = valid_chars.'\{-}'
- let g:vimwiki_global_vars.rxWikiInclArgs = '\%('. g:vimwiki_global_vars.rxWikiInclSeparator.
- \ g:vimwiki_global_vars.rxWikiInclArg. '\)'.'\{-}'
-
- " *. {{URL}[{...}]} - i.e. {{URL}}, {{URL|ARG1}}, {{URL|ARG1|ARG2}}, etc.
- " *a) match {{URL}[{...}]}
- let g:vimwiki_global_vars.rxWikiIncl = g:vimwiki_global_vars.rxWikiInclPrefix.
- \ g:vimwiki_global_vars.rxWikiInclUrl.
- \ g:vimwiki_global_vars.rxWikiInclArgs. g:vimwiki_global_vars.rxWikiInclSuffix
- " *b) match URL within {{URL}[{...}]}
- let g:vimwiki_global_vars.rxWikiInclMatchUrl = g:vimwiki_global_vars.rxWikiInclPrefix.
- \ '\zs'. g:vimwiki_global_vars.rxWikiInclUrl . '\ze'.
- \ g:vimwiki_global_vars.rxWikiInclArgs . g:vimwiki_global_vars.rxWikiInclSuffix
-
- let g:vimwiki_global_vars.rxWikiInclPrefix1 = g:vimwiki_global_vars.rxWikiInclPrefix.
- \ g:vimwiki_global_vars.rxWikiInclUrl . g:vimwiki_global_vars.rxWikiInclSeparator
- let g:vimwiki_global_vars.rxWikiInclSuffix1 = g:vimwiki_global_vars.rxWikiInclArgs.
- \ g:vimwiki_global_vars.rxWikiInclSuffix
-
- let g:vimwiki_global_vars.rxTodo = '\C\<\%(TODO\|DONE\|STARTED\|FIXME\|FIXED\|XXX\)\>'
-
- " default colors when headers of different levels are highlighted differently
- " not making it yet another option; needed by ColorScheme autocommand
- let g:vimwiki_global_vars.hcolor_guifg_light = ['#aa5858', '#507030', '#1030a0', '#103040'
- \ , '#505050', '#636363']
- let g:vimwiki_global_vars.hcolor_ctermfg_light = ['DarkRed', 'DarkGreen', 'DarkBlue', 'Black'
- \ , 'Black', 'Black']
- let g:vimwiki_global_vars.hcolor_guifg_dark = ['#e08090', '#80e090', '#6090e0', '#c0c0f0'
- \ , '#e0e0f0', '#f0f0f0']
- let g:vimwiki_global_vars.hcolor_ctermfg_dark = ['Red', 'Green', 'Blue', 'White', 'White'
- \ , 'White']
-endfunction
-
-
-function! s:populate_wikilocal_options()
- let default_values = {
- \ 'auto_export': 0,
- \ 'auto_tags': 0,
- \ 'auto_toc': 0,
- \ 'automatic_nested_syntaxes': 1,
- \ 'css_name': 'style.css',
- \ 'custom_wiki2html': '',
- \ 'custom_wiki2html_args': '',
- \ 'diary_header': 'Diary',
- \ 'diary_index': 'diary',
- \ 'diary_rel_path': 'diary/',
- \ 'diary_sort': 'desc',
- \ 'ext': '.wiki',
- \ 'index': 'index',
- \ 'list_margin': -1,
- \ 'maxhi': 0,
- \ 'nested_syntaxes': {},
- \ 'path': '~/vimwiki/',
- \ 'path_html': '',
- \ 'syntax': 'default',
- \ 'template_default': 'default',
- \ 'template_ext': '.tpl',
- \ 'template_path': '~/vimwiki/templates/',
- \ }
-
- let g:vimwiki_wikilocal_vars = []
-
- let default_wiki_settings = {}
- for key in keys(default_values)
- if exists('g:vimwiki_'.key)
- let default_wiki_settings[key] = g:vimwiki_{key}
- else
- let default_wiki_settings[key] = default_values[key]
- endif
- endfor
-
- " set the wiki-local variables according to g:vimwiki_list (or the default settings)
- if exists('g:vimwiki_list')
- for users_wiki_settings in g:vimwiki_list
- let new_wiki_settings = {}
- for key in keys(default_values)
- if has_key(users_wiki_settings, key)
- let new_wiki_settings[key] = users_wiki_settings[key]
- elseif exists('g:vimwiki_'.key)
- let new_wiki_settings[key] = g:vimwiki_{key}
- else
- let new_wiki_settings[key] = default_values[key]
- endif
- endfor
-
- let new_wiki_settings.is_temporary_wiki = 0
-
- call add(g:vimwiki_wikilocal_vars, new_wiki_settings)
- endfor
- else
- " if the user hasn't registered any wiki, we register one wiki using the default values
- let new_wiki_settings = deepcopy(default_wiki_settings)
- let new_wiki_settings.is_temporary_wiki = 0
- call add(g:vimwiki_wikilocal_vars, new_wiki_settings)
- endif
-
- " default values for temporary wikis
- let temporary_wiki_settings = deepcopy(default_wiki_settings)
- let temporary_wiki_settings.is_temporary_wiki = 1
- call add(g:vimwiki_wikilocal_vars, temporary_wiki_settings)
-
- call s:validate_settings()
-endfunction
-
-
-function! s:validate_settings()
- for wiki_settings in g:vimwiki_wikilocal_vars
- let wiki_settings['path'] = s:normalize_path(wiki_settings['path'])
-
- let path_html = wiki_settings['path_html']
- if !empty(path_html)
- let wiki_settings['path_html'] = s:normalize_path(path_html)
- else
- let wiki_settings['path_html'] = s:normalize_path(
- \ substitute(wiki_settings['path'], '[/\\]\+$', '', '').'_html/')
- endif
-
- let wiki_settings['template_path'] = s:normalize_path(wiki_settings['template_path'])
- let wiki_settings['diary_rel_path'] = s:normalize_path(wiki_settings['diary_rel_path'])
- endfor
-endfunction
-
-
-function! s:normalize_path(path)
- " trim trailing / and \ because otherwise resolve() doesn't work quite right
- let path = substitute(a:path, '[/\\]\+$', '', '')
- if path !~# '^scp:'
- return resolve(expand(path)).'/'
- else
- return path.'/'
- endif
-endfunction
-
-
-function! vimwiki#vars#populate_syntax_vars(syntax)
- if !exists('g:vimwiki_syntax_variables')
- let g:vimwiki_syntax_variables = {}
- endif
-
- if has_key(g:vimwiki_syntax_variables, a:syntax)
- return
- endif
-
- let g:vimwiki_syntax_variables[a:syntax] = {}
-
- execute 'runtime! syntax/vimwiki_'.a:syntax.'.vim'
-
- " generic stuff
- let header_symbol = g:vimwiki_syntax_variables[a:syntax].rxH
- if g:vimwiki_syntax_variables[a:syntax].symH
- " symmetric headers
- for i in range(1,6)
- let g:vimwiki_syntax_variables[a:syntax]['rxH'.i.'_Template'] =
- \ repeat(header_symbol, i).' __Header__ '.repeat(header_symbol, i)
- let g:vimwiki_syntax_variables[a:syntax]['rxH'.i] =
- \ '^\s*'.header_symbol.'\{'.i.'}[^'.header_symbol.'].*[^'.header_symbol.']'
- \ .header_symbol.'\{'.i.'}\s*$'
- let g:vimwiki_syntax_variables[a:syntax]['rxH'.i.'_Start'] =
- \ '^\s*'.header_symbol.'\{'.i.'}[^'.header_symbol.'].*[^'.header_symbol.']'
- \ .header_symbol.'\{'.i.'}\s*$'
- let g:vimwiki_syntax_variables[a:syntax]['rxH'.i.'_End'] =
- \ '^\s*'.header_symbol.'\{1,'.i.'}[^'.header_symbol.'].*[^'.header_symbol.']'
- \ .header_symbol.'\{1,'.i.'}\s*$'
- endfor
- let g:vimwiki_syntax_variables[a:syntax].rxHeader =
- \ '^\s*\('.header_symbol.'\{1,6}\)\zs[^'.header_symbol.'].*[^'.header_symbol.']\ze\1\s*$'
- else
- " asymmetric
- for i in range(1,6)
- let g:vimwiki_syntax_variables[a:syntax]['rxH'.i.'_Template'] =
- \ repeat(header_symbol, i).' __Header__'
- let g:vimwiki_syntax_variables[a:syntax]['rxH'.i] =
- \ '^\s*'.header_symbol.'\{'.i.'}[^'.header_symbol.'].*$'
- let g:vimwiki_syntax_variables[a:syntax]['rxH'.i.'_Start'] =
- \ '^\s*'.header_symbol.'\{'.i.'}[^'.header_symbol.'].*$'
- let g:vimwiki_syntax_variables[a:syntax]['rxH'.i.'_End'] =
- \ '^\s*'.header_symbol.'\{1,'.i.'}[^'.header_symbol.'].*$'
- endfor
- let g:vimwiki_syntax_variables[a:syntax].rxHeader =
- \ '^\s*\('.header_symbol.'\{1,6}\)\zs[^'.header_symbol.'].*\ze$'
- endif
-
- let g:vimwiki_syntax_variables[a:syntax].rxPreStart =
- \ '^\s*'.g:vimwiki_syntax_variables[a:syntax].rxPreStart
- let g:vimwiki_syntax_variables[a:syntax].rxPreEnd =
- \ '^\s*'.g:vimwiki_syntax_variables[a:syntax].rxPreEnd.'\s*$'
-
- let g:vimwiki_syntax_variables[a:syntax].rxMathStart =
- \ '^\s*'.g:vimwiki_syntax_variables[a:syntax].rxMathStart
- let g:vimwiki_syntax_variables[a:syntax].rxMathEnd =
- \ '^\s*'.g:vimwiki_syntax_variables[a:syntax].rxMathEnd.'\s*$'
-
- " list stuff
- let g:vimwiki_syntax_variables[a:syntax].rx_bullet_chars =
- \ '['.join(g:vimwiki_syntax_variables[a:syntax].bullet_types, '').']\+'
-
- let g:vimwiki_syntax_variables[a:syntax].multiple_bullet_chars =
- \ g:vimwiki_syntax_variables[a:syntax].recurring_bullets
- \ ? g:vimwiki_syntax_variables[a:syntax].bullet_types : []
-
- let g:vimwiki_syntax_variables[a:syntax].number_kinds = []
- let g:vimwiki_syntax_variables[a:syntax].number_divisors = ''
- for i in g:vimwiki_syntax_variables[a:syntax].number_types
- call add(g:vimwiki_syntax_variables[a:syntax].number_kinds, i[0])
- let g:vimwiki_syntax_variables[a:syntax].number_divisors .= vimwiki#u#escape(i[1])
- endfor
-
- let char_to_rx = {'1': '\d\+', 'i': '[ivxlcdm]\+', 'I': '[IVXLCDM]\+',
- \ 'a': '\l\{1,2}', 'A': '\u\{1,2}'}
-
- "create regexp for bulleted list items
- if !empty(g:vimwiki_syntax_variables[a:syntax].bullet_types)
- let g:vimwiki_syntax_variables[a:syntax].rxListBullet =
- \ join( map(g:vimwiki_syntax_variables[a:syntax].bullet_types,
- \'vimwiki#u#escape(v:val).'
- \ .'repeat("\\+", g:vimwiki_syntax_variables[a:syntax].recurring_bullets)'
- \ ) , '\|')
- else
- "regex that matches nothing
- let g:vimwiki_syntax_variables[a:syntax].rxListBullet = '$^'
- endif
-
- "create regex for numbered list items
- if !empty(g:vimwiki_syntax_variables[a:syntax].number_types)
- let g:vimwiki_syntax_variables[a:syntax].rxListNumber = '\C\%('
- for type in g:vimwiki_syntax_variables[a:syntax].number_types[:-2]
- let g:vimwiki_syntax_variables[a:syntax].rxListNumber .= char_to_rx[type[0]] .
- \ vimwiki#u#escape(type[1]) . '\|'
- endfor
- let g:vimwiki_syntax_variables[a:syntax].rxListNumber .=
- \ char_to_rx[g:vimwiki_syntax_variables[a:syntax].number_types[-1][0]].
- \ vimwiki#u#escape(g:vimwiki_syntax_variables[a:syntax].number_types[-1][1]) . '\)'
- else
- "regex that matches nothing
- let g:vimwiki_syntax_variables[a:syntax].rxListNumber = '$^'
- endif
-
- "the user can set the listsyms as string, but vimwiki needs a list
- let g:vimwiki_syntax_variables[a:syntax].listsyms_list =
- \ split(vimwiki#vars#get_global('listsyms'), '\zs')
- if match(vimwiki#vars#get_global('listsyms'), vimwiki#vars#get_global('listsym_rejected')) != -1
- echomsg 'Vimwiki Warning: the value of g:vimwiki_listsym_rejected ('''
- \ . vimwiki#vars#get_global('listsym_rejected')
- \ . ''') must not be a part of g:vimwiki_listsyms (''' .
- \ . vimwiki#vars#get_global('listsyms') . ''')'
- endif
- let g:vimwiki_syntax_variables[a:syntax].rxListItemWithoutCB =
- \ '^\s*\%(\('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\)\|\('
- \ .g:vimwiki_syntax_variables[a:syntax].rxListNumber.'\)\)\s'
- let g:vimwiki_syntax_variables[a:syntax].rxListItem =
- \ g:vimwiki_syntax_variables[a:syntax].rxListItemWithoutCB
- \ . '\+\%(\[\(['.vimwiki#vars#get_global('listsyms')
- \ . vimwiki#vars#get_global('listsym_rejected').']\)\]\s\)\?'
- if g:vimwiki_syntax_variables[a:syntax].recurring_bullets
- let g:vimwiki_syntax_variables[a:syntax].rxListItemAndChildren =
- \ '^\('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\)\s\+\[['
- \ . g:vimwiki_syntax_variables[a:syntax].listsyms_list[-1]
- \ . vimwiki#vars#get_global('listsym_rejected') . ']\]\s.*\%(\n\%(\1\%('
- \ .g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\).*\|^$\|\s.*\)\)*'
- else
- let g:vimwiki_syntax_variables[a:syntax].rxListItemAndChildren =
- \ '^\(\s*\)\%('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\|'
- \ . g:vimwiki_syntax_variables[a:syntax].rxListNumber.'\)\s\+\[['
- \ . g:vimwiki_syntax_variables[a:syntax].listsyms_list[-1]
- \ . vimwiki#vars#get_global('listsym_rejected') . ']\]\s.*\%(\n\%(\1\s.*\|^$\)\)*'
- endif
-
- " 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L))
- " let g:vimwiki_rxWeblink = '[\["(|]\@<!'. g:vimwiki_rxWeblinkUrl .
- " \ '\%([),:;.!?]\=\%([ \t]\|$\)\)\@='
- let g:vimwiki_syntax_variables[a:syntax].rxWeblink =
- \ '\<'. g:vimwiki_global_vars.rxWeblinkUrl . '\S*'
- " 0a) match URL within URL
- let g:vimwiki_syntax_variables[a:syntax].rxWeblinkMatchUrl =
- \ g:vimwiki_syntax_variables[a:syntax].rxWeblink
- " 0b) match DESCRIPTION within URL
- let g:vimwiki_syntax_variables[a:syntax].rxWeblinkMatchDescr = ''
-
- " template for matching all wiki links with a given target file
- let g:vimwiki_syntax_variables[a:syntax].WikiLinkMatchUrlTemplate =
- \ g:vimwiki_global_vars.rx_wikilink_prefix .
- \ '\zs__LinkUrl__\ze\%(#.*\)\?' .
- \ g:vimwiki_global_vars.rx_wikilink_suffix .
- \ '\|' .
- \ g:vimwiki_global_vars.rx_wikilink_prefix .
- \ '\zs__LinkUrl__\ze\%(#.*\)\?' .
- \ g:vimwiki_global_vars.rx_wikilink_separator .
- \ '.*' .
- \ g:vimwiki_global_vars.rx_wikilink_suffix
-
- " a) match [[URL|DESCRIPTION]]
- let g:vimwiki_syntax_variables[a:syntax].rxWikiLink = g:vimwiki_global_vars.rx_wikilink_prefix.
- \ g:vimwiki_global_vars.rxWikiLinkUrl.'\%('.g:vimwiki_global_vars.rx_wikilink_separator.
- \ g:vimwiki_global_vars.rxWikiLinkDescr.'\)\?'.g:vimwiki_global_vars.rx_wikilink_suffix
- let g:vimwiki_syntax_variables[a:syntax].rxAnyLink =
- \ g:vimwiki_syntax_variables[a:syntax].rxWikiLink.'\|'.
- \ g:vimwiki_global_vars.rxWikiIncl.'\|'.g:vimwiki_syntax_variables[a:syntax].rxWeblink
- " b) match URL within [[URL|DESCRIPTION]]
- let g:vimwiki_syntax_variables[a:syntax].rxWikiLinkMatchUrl =
- \ g:vimwiki_global_vars.rx_wikilink_prefix . '\zs'. g:vimwiki_global_vars.rxWikiLinkUrl
- \ .'\ze\%('. g:vimwiki_global_vars.rx_wikilink_separator
- \ . g:vimwiki_global_vars.rxWikiLinkDescr.'\)\?'.g:vimwiki_global_vars.rx_wikilink_suffix
- " c) match DESCRIPTION within [[URL|DESCRIPTION]]
- let g:vimwiki_syntax_variables[a:syntax].rxWikiLinkMatchDescr =
- \ g:vimwiki_global_vars.rx_wikilink_prefix . g:vimwiki_global_vars.rxWikiLinkUrl
- \ . g:vimwiki_global_vars.rx_wikilink_separator.'\%(\zs'
- \ . g:vimwiki_global_vars.rxWikiLinkDescr. '\ze\)\?'
- \ . g:vimwiki_global_vars.rx_wikilink_suffix
-
- if a:syntax ==# 'markdown'
- call s:populate_extra_markdown_vars()
- endif
-endfunction
-
-
-function! s:populate_extra_markdown_vars()
- let mkd_syntax = g:vimwiki_syntax_variables['markdown']
-
- " 0a) match [[URL|DESCRIPTION]]
- let mkd_syntax.rxWikiLink0 = mkd_syntax.rxWikiLink
- " 0b) match URL within [[URL|DESCRIPTION]]
- let mkd_syntax.rxWikiLink0MatchUrl = mkd_syntax.rxWikiLinkMatchUrl
- " 0c) match DESCRIPTION within [[URL|DESCRIPTION]]
- let mkd_syntax.rxWikiLink0MatchDescr = mkd_syntax.rxWikiLinkMatchDescr
-
- let wikilink_md_prefix = '['
- let wikilink_md_suffix = ']'
- let wikilink_md_separator = ']['
- let rx_wikilink_md_separator = vimwiki#u#escape(wikilink_md_separator)
- let mkd_syntax.rx_wikilink_md_prefix = vimwiki#u#escape(wikilink_md_prefix)
- let mkd_syntax.rx_wikilink_md_suffix = vimwiki#u#escape(wikilink_md_suffix)
-
- " [URL][]
- let mkd_syntax.WikiLink1Template1 = wikilink_md_prefix . '__LinkUrl__'.
- \ wikilink_md_separator. wikilink_md_suffix
- " [DESCRIPTION][URL]
- let mkd_syntax.WikiLink1Template2 = wikilink_md_prefix. '__LinkDescription__'.
- \ wikilink_md_separator. '__LinkUrl__'. wikilink_md_suffix
- let mkd_syntax.WikiLinkMatchUrlTemplate .=
- \ '\|' .
- \ mkd_syntax.rx_wikilink_md_prefix .
- \ '.*' .
- \ rx_wikilink_md_separator .
- \ '\zs__LinkUrl__\ze\%(#.*\)\?' .
- \ mkd_syntax.rx_wikilink_md_suffix .
- \ '\|' .
- \ mkd_syntax.rx_wikilink_md_prefix .
- \ '\zs__LinkUrl__\ze\%(#.*\)\?' .
- \ rx_wikilink_md_separator .
- \ mkd_syntax.rx_wikilink_md_suffix
-
- let valid_chars = '[^\\\[\]]'
- let mkd_syntax.rxWikiLink1Url = valid_chars.'\{-}'
- let mkd_syntax.rxWikiLink1Descr = valid_chars.'\{-}'
- let mkd_syntax.rxWikiLink1InvalidPrefix = '[\]\[]\@<!'
- let mkd_syntax.rxWikiLink1InvalidSuffix = '[\]\[]\@!'
- let mkd_syntax.rx_wikilink_md_prefix = mkd_syntax.rxWikiLink1InvalidPrefix.
- \ mkd_syntax.rx_wikilink_md_prefix
- let mkd_syntax.rx_wikilink_md_suffix = mkd_syntax.rx_wikilink_md_suffix.
- \ mkd_syntax.rxWikiLink1InvalidSuffix
-
- " 1. match [URL][], [DESCRIPTION][URL]
- let mkd_syntax.rxWikiLink1 = mkd_syntax.rx_wikilink_md_prefix.
- \ mkd_syntax.rxWikiLink1Url. rx_wikilink_md_separator.
- \ mkd_syntax.rx_wikilink_md_suffix.
- \ '\|'. mkd_syntax.rx_wikilink_md_prefix.
- \ mkd_syntax.rxWikiLink1Descr . rx_wikilink_md_separator.
- \ mkd_syntax.rxWikiLink1Url . mkd_syntax.rx_wikilink_md_suffix
- " 2. match URL within [URL][], [DESCRIPTION][URL]
- let mkd_syntax.rxWikiLink1MatchUrl = mkd_syntax.rx_wikilink_md_prefix.
- \ '\zs'. mkd_syntax.rxWikiLink1Url. '\ze'. rx_wikilink_md_separator.
- \ mkd_syntax.rx_wikilink_md_suffix.
- \ '\|'. mkd_syntax.rx_wikilink_md_prefix.
- \ mkd_syntax.rxWikiLink1Descr. rx_wikilink_md_separator.
- \ '\zs'. mkd_syntax.rxWikiLink1Url. '\ze'. mkd_syntax.rx_wikilink_md_suffix
- " 3. match DESCRIPTION within [DESCRIPTION][URL]
- let mkd_syntax.rxWikiLink1MatchDescr = mkd_syntax.rx_wikilink_md_prefix.
- \ '\zs'. mkd_syntax.rxWikiLink1Descr.'\ze'. rx_wikilink_md_separator.
- \ mkd_syntax.rxWikiLink1Url . mkd_syntax.rx_wikilink_md_suffix
-
- let mkd_syntax.rxWikiLink1Prefix1 = mkd_syntax.rx_wikilink_md_prefix
- let mkd_syntax.rxWikiLink1Suffix1 = rx_wikilink_md_separator.
- \ mkd_syntax.rxWikiLink1Url . mkd_syntax.rx_wikilink_md_suffix
-
- " 1. match ANY wikilink
- let mkd_syntax.rxWikiLink = mkd_syntax.rxWikiLink0 . '\|' . mkd_syntax.rxWikiLink1
- " 2. match URL within ANY wikilink
- let mkd_syntax.rxWikiLinkMatchUrl = mkd_syntax.rxWikiLink0MatchUrl . '\|' .
- \ mkd_syntax.rxWikiLink1MatchUrl
- " 3. match DESCRIPTION within ANY wikilink
- let mkd_syntax.rxWikiLinkMatchDescr = mkd_syntax.rxWikiLink0MatchDescr . '\|' .
- \ mkd_syntax.rxWikiLink1MatchDescr
-
- " 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L))
- let mkd_syntax.rxWeblink0 = mkd_syntax.rxWeblink
- " 0a) match URL within URL
- let mkd_syntax.rxWeblinkMatchUrl0 = mkd_syntax.rxWeblinkMatchUrl
- " 0b) match DESCRIPTION within URL
- let mkd_syntax.rxWeblinkMatchDescr0 = mkd_syntax.rxWeblinkMatchDescr
-
- let mkd_syntax.rxWeblink1Prefix = '['
- let mkd_syntax.rxWeblink1Suffix = ')'
- let mkd_syntax.rxWeblink1Separator = ']('
- " [DESCRIPTION](URL)
- let mkd_syntax.Weblink1Template = mkd_syntax.rxWeblink1Prefix . '__LinkDescription__'.
- \ mkd_syntax.rxWeblink1Separator. '__LinkUrl__'.
- \ mkd_syntax.rxWeblink1Suffix
-
- let valid_chars = '[^\\]'
-
- let mkd_syntax.rxWeblink1Prefix = vimwiki#u#escape(mkd_syntax.rxWeblink1Prefix)
- let mkd_syntax.rxWeblink1Suffix = vimwiki#u#escape(mkd_syntax.rxWeblink1Suffix)
- let mkd_syntax.rxWeblink1Separator = vimwiki#u#escape(mkd_syntax.rxWeblink1Separator)
- let mkd_syntax.rxWeblink1Url = valid_chars.'\{-}'
- let mkd_syntax.rxWeblink1Descr = valid_chars.'\{-}'
-
- " 1. [DESCRIPTION](URL)
- " 1a) match [DESCRIPTION](URL)
- let mkd_syntax.rxWeblink1 = mkd_syntax.rxWeblink1Prefix.
- \ mkd_syntax.rxWeblink1Url . mkd_syntax.rxWeblink1Separator.
- \ mkd_syntax.rxWeblink1Descr . mkd_syntax.rxWeblink1Suffix
- " 1b) match URL within [DESCRIPTION](URL)
- let mkd_syntax.rxWeblink1MatchUrl = mkd_syntax.rxWeblink1Prefix.
- \ mkd_syntax.rxWeblink1Descr. mkd_syntax.rxWeblink1Separator.
- \ '\zs' . mkd_syntax.rxWeblink1Url . '\ze' . mkd_syntax.rxWeblink1Suffix
- " 1c) match DESCRIPTION within [DESCRIPTION](URL)
- let mkd_syntax.rxWeblink1MatchDescr = mkd_syntax.rxWeblink1Prefix.
- \ '\zs'.mkd_syntax.rxWeblink1Descr.'\ze'. mkd_syntax.rxWeblink1Separator.
- \ mkd_syntax.rxWeblink1Url. mkd_syntax.rxWeblink1Suffix
-
- " TODO: image links too !!
- let mkd_syntax.rxWeblink1Prefix1 = mkd_syntax.rxWeblink1Prefix
- let mkd_syntax.rxWeblink1Suffix1 = mkd_syntax.rxWeblink1Separator.
- \ mkd_syntax.rxWeblink1Url . mkd_syntax.rxWeblink1Suffix
-
- " *a) match ANY weblink
- let mkd_syntax.rxWeblink = ''.
- \ mkd_syntax.rxWeblink1.'\|'.
- \ mkd_syntax.rxWeblink0
- " *b) match URL within ANY weblink
- let mkd_syntax.rxWeblinkMatchUrl = ''.
- \ mkd_syntax.rxWeblink1MatchUrl.'\|'.
- \ mkd_syntax.rxWeblinkMatchUrl0
- " *c) match DESCRIPTION within ANY weblink
- let mkd_syntax.rxWeblinkMatchDescr = ''.
- \ mkd_syntax.rxWeblink1MatchDescr.'\|'.
- \ mkd_syntax.rxWeblinkMatchDescr0
-
- let mkd_syntax.rxAnyLink = mkd_syntax.rxWikiLink.'\|'.
- \ g:vimwiki_global_vars.rxWikiIncl.'\|'.mkd_syntax.rxWeblink
-
- let mkd_syntax.rxMkdRef = '\['.g:vimwiki_global_vars.rxWikiLinkDescr.']:\%(\s\+\|\n\)'.
- \ mkd_syntax.rxWeblink0
- let mkd_syntax.rxMkdRefMatchDescr =
- \ '\[\zs'.g:vimwiki_global_vars.rxWikiLinkDescr.'\ze]:\%(\s\+\|\n\)'. mkd_syntax.rxWeblink0
- let mkd_syntax.rxMkdRefMatchUrl =
- \ '\['.g:vimwiki_global_vars.rxWikiLinkDescr.']:\%(\s\+\|\n\)\zs'.
- \ mkd_syntax.rxWeblink0.'\ze'
-endfunction
-
-
-function! vimwiki#vars#init()
- call s:populate_global_variables()
- call s:populate_wikilocal_options()
-endfunction
-
-
-function! vimwiki#vars#get_syntaxlocal(key, ...)
- if a:0
- let syntax = a:1
- else
- let syntax = vimwiki#vars#get_wikilocal('syntax')
- endif
- if !exists('g:vimwiki_syntax_variables') || !has_key(g:vimwiki_syntax_variables, syntax)
- call vimwiki#vars#populate_syntax_vars(syntax)
- endif
-
- return g:vimwiki_syntax_variables[syntax][a:key]
-endfunction
-
-
-" Get a variable for the buffer we are currently in or for the given buffer (number or name).
-" Populate the variable, if it doesn't exist.
-function! vimwiki#vars#get_bufferlocal(key, ...)
- let buffer = a:0 ? a:1 : '%'
-
- let value = getbufvar(buffer, 'vimwiki_'.a:key, '/\/\')
- if type(value) != 1 || value !=# '/\/\'
- return value
- elseif a:key ==# 'wiki_nr'
- call setbufvar(buffer, 'vimwiki_wiki_nr', vimwiki#base#find_wiki(expand('%:p')))
- elseif a:key ==# 'subdir'
- call setbufvar(buffer, 'vimwiki_subdir', vimwiki#base#current_subdir())
- elseif a:key ==# 'invsubdir'
- let subdir = vimwiki#vars#get_bufferlocal('subdir')
- call setbufvar(buffer, 'vimwiki_invsubdir', vimwiki#base#invsubdir(subdir))
- elseif a:key ==# 'existing_wikifiles'
- call setbufvar(buffer, 'vimwiki_existing_wikifiles',
- \ vimwiki#base#get_wikilinks(vimwiki#vars#get_bufferlocal('wiki_nr'), 1))
- elseif a:key ==# 'existing_wikidirs'
- call setbufvar(buffer, 'vimwiki_existing_wikidirs',
- \ vimwiki#base#get_wiki_directories(vimwiki#vars#get_bufferlocal('wiki_nr')))
- elseif a:key ==# 'prev_link'
- call setbufvar(buffer, 'vimwiki_prev_link', [])
- elseif a:key ==# 'markdown_refs'
- call setbufvar(buffer, 'vimwiki_markdown_refs', vimwiki#markdown_base#scan_reflinks())
- else
- echoerr 'Vimwiki Error: unknown buffer variable ' . string(a:key)
- endif
-
- return getbufvar(buffer, 'vimwiki_'.a:key)
-endfunction
-
-
-function! vimwiki#vars#set_bufferlocal(key, value, ...)
- let buffer = a:0 ? a:1 : '%'
- call setbufvar(buffer, 'vimwiki_' . a:key, a:value)
-endfunction
-
-
-function! vimwiki#vars#get_global(key)
- return g:vimwiki_global_vars[a:key]
-endfunction
-
-
-" the second argument can be a wiki number. When absent, the wiki of the currently active buffer is
-" used
-function! vimwiki#vars#get_wikilocal(key, ...)
- if a:0
- return g:vimwiki_wikilocal_vars[a:1][a:key]
- else
- return g:vimwiki_wikilocal_vars[vimwiki#vars#get_bufferlocal('wiki_nr')][a:key]
- endif
-endfunction
-
-
-function! vimwiki#vars#get_wikilocal_default(key)
- return g:vimwiki_wikilocal_vars[-1][a:key]
-endfunction
-
-
-function! vimwiki#vars#set_wikilocal(key, value, wiki_nr)
- if a:wiki_nr == len(g:vimwiki_wikilocal_vars) - 1
- call insert(g:vimwiki_wikilocal_vars, {}, -1)
- endif
- let g:vimwiki_wikilocal_vars[a:wiki_nr][a:key] = a:value
-endfunction
-
-
-function! vimwiki#vars#add_temporary_wiki(settings)
- let new_temp_wiki_settings = copy(g:vimwiki_wikilocal_vars[-1])
- for [key, value] in items(a:settings)
- let new_temp_wiki_settings[key] = value
- endfor
- call insert(g:vimwiki_wikilocal_vars, new_temp_wiki_settings, -1)
- call s:validate_settings()
-endfunction
-
-
-" number of registered wikis + temporary
-function! vimwiki#vars#number_of_wikis()
- return len(g:vimwiki_wikilocal_vars) - 1
-endfunction
-
diff --git a/vim/.vim/plugged/vimwiki/doc/screenshot_1.png b/vim/.vim/plugged/vimwiki/doc/screenshot_1.png
deleted file mode 100644
index 8c875c2..0000000
--- a/vim/.vim/plugged/vimwiki/doc/screenshot_1.png
+++ /dev/null
Binary files differ
diff --git a/vim/.vim/plugged/vimwiki/doc/screenshot_2.png b/vim/.vim/plugged/vimwiki/doc/screenshot_2.png
deleted file mode 100644
index a4a1fc2..0000000
--- a/vim/.vim/plugged/vimwiki/doc/screenshot_2.png
+++ /dev/null
Binary files differ
diff --git a/vim/.vim/plugged/vimwiki/doc/tags b/vim/.vim/plugged/vimwiki/doc/tags
deleted file mode 100644
index 612b3a1..0000000
--- a/vim/.vim/plugged/vimwiki/doc/tags
+++ /dev/null
@@ -1,214 +0,0 @@
-:VWB vimwiki.txt /*:VWB*
-:VWS vimwiki.txt /*:VWS*
-:Vimwiki2HTML vimwiki.txt /*:Vimwiki2HTML*
-:Vimwiki2HTMLBrowse vimwiki.txt /*:Vimwiki2HTMLBrowse*
-:VimwikiAll2HTML vimwiki.txt /*:VimwikiAll2HTML*
-:VimwikiBacklinks vimwiki.txt /*:VimwikiBacklinks*
-:VimwikiCheckLinks vimwiki.txt /*:VimwikiCheckLinks*
-:VimwikiDeleteLink vimwiki.txt /*:VimwikiDeleteLink*
-:VimwikiDiaryGenerateLinks vimwiki.txt /*:VimwikiDiaryGenerateLinks*
-:VimwikiDiaryIndex vimwiki.txt /*:VimwikiDiaryIndex*
-:VimwikiDiaryNextDay vimwiki.txt /*:VimwikiDiaryNextDay*
-:VimwikiDiaryPrevDay vimwiki.txt /*:VimwikiDiaryPrevDay*
-:VimwikiFollowLink vimwiki.txt /*:VimwikiFollowLink*
-:VimwikiGenerateLinks vimwiki.txt /*:VimwikiGenerateLinks*
-:VimwikiGenerateTags vimwiki.txt /*:VimwikiGenerateTags*
-:VimwikiGoBackLink vimwiki.txt /*:VimwikiGoBackLink*
-:VimwikiGoto vimwiki.txt /*:VimwikiGoto*
-:VimwikiIndex vimwiki.txt /*:VimwikiIndex*
-:VimwikiListChangeLevel vimwiki.txt /*:VimwikiListChangeLevel*
-:VimwikiMakeDiaryNote vimwiki.txt /*:VimwikiMakeDiaryNote*
-:VimwikiMakeTomorrowDiaryNote vimwiki.txt /*:VimwikiMakeTomorrowDiaryNote*
-:VimwikiMakeYesterdayDiaryNote vimwiki.txt /*:VimwikiMakeYesterdayDiaryNote*
-:VimwikiNextLink vimwiki.txt /*:VimwikiNextLink*
-:VimwikiPrevLink vimwiki.txt /*:VimwikiPrevLink*
-:VimwikiRebuildTags vimwiki.txt /*:VimwikiRebuildTags*
-:VimwikiRenameLink vimwiki.txt /*:VimwikiRenameLink*
-:VimwikiSearch vimwiki.txt /*:VimwikiSearch*
-:VimwikiSearchTags vimwiki.txt /*:VimwikiSearchTags*
-:VimwikiSplitLink vimwiki.txt /*:VimwikiSplitLink*
-:VimwikiTOC vimwiki.txt /*:VimwikiTOC*
-:VimwikiTabIndex vimwiki.txt /*:VimwikiTabIndex*
-:VimwikiTabMakeDiaryNote vimwiki.txt /*:VimwikiTabMakeDiaryNote*
-:VimwikiTable vimwiki.txt /*:VimwikiTable*
-:VimwikiTableMoveColumnLeft vimwiki.txt /*:VimwikiTableMoveColumnLeft*
-:VimwikiTableMoveColumnRight vimwiki.txt /*:VimwikiTableMoveColumnRight*
-:VimwikiTabnewLink vimwiki.txt /*:VimwikiTabnewLink*
-:VimwikiToggleListItem vimwiki.txt /*:VimwikiToggleListItem*
-:VimwikiToggleRejectedListItem vimwiki.txt /*:VimwikiToggleRejectedListItem*
-:VimwikiUISelect vimwiki.txt /*:VimwikiUISelect*
-:VimwikiVSplitLink vimwiki.txt /*:VimwikiVSplitLink*
-VimwikiLinkConverter vimwiki.txt /*VimwikiLinkConverter*
-VimwikiLinkHandler vimwiki.txt /*VimwikiLinkHandler*
-VimwikiWikiIncludeHandler vimwiki.txt /*VimwikiWikiIncludeHandler*
-g:vimwiki_CJK_length vimwiki.txt /*g:vimwiki_CJK_length*
-g:vimwiki_auto_chdir vimwiki.txt /*g:vimwiki_auto_chdir*
-g:vimwiki_autowriteall vimwiki.txt /*g:vimwiki_autowriteall*
-g:vimwiki_conceallevel vimwiki.txt /*g:vimwiki_conceallevel*
-g:vimwiki_diary_months vimwiki.txt /*g:vimwiki_diary_months*
-g:vimwiki_dir_link vimwiki.txt /*g:vimwiki_dir_link*
-g:vimwiki_ext2syntax vimwiki.txt /*g:vimwiki_ext2syntax*
-g:vimwiki_folding vimwiki.txt /*g:vimwiki_folding*
-g:vimwiki_global_ext vimwiki.txt /*g:vimwiki_global_ext*
-g:vimwiki_hl_cb_checked vimwiki.txt /*g:vimwiki_hl_cb_checked*
-g:vimwiki_hl_headers vimwiki.txt /*g:vimwiki_hl_headers*
-g:vimwiki_html_header_numbering vimwiki.txt /*g:vimwiki_html_header_numbering*
-g:vimwiki_html_header_numbering_sym vimwiki.txt /*g:vimwiki_html_header_numbering_sym*
-g:vimwiki_list vimwiki.txt /*g:vimwiki_list*
-g:vimwiki_list_ignore_newline vimwiki.txt /*g:vimwiki_list_ignore_newline*
-g:vimwiki_listsym_rejected vimwiki.txt /*g:vimwiki_listsym_rejected*
-g:vimwiki_listsyms vimwiki.txt /*g:vimwiki_listsyms*
-g:vimwiki_map_prefix vimwiki.txt /*g:vimwiki_map_prefix*
-g:vimwiki_menu vimwiki.txt /*g:vimwiki_menu*
-g:vimwiki_table_auto_fmt vimwiki.txt /*g:vimwiki_table_auto_fmt*
-g:vimwiki_table_mappings vimwiki.txt /*g:vimwiki_table_mappings*
-g:vimwiki_text_ignore_newline vimwiki.txt /*g:vimwiki_text_ignore_newline*
-g:vimwiki_toc_header vimwiki.txt /*g:vimwiki_toc_header*
-g:vimwiki_url_maxsave vimwiki.txt /*g:vimwiki_url_maxsave*
-g:vimwiki_use_calendar vimwiki.txt /*g:vimwiki_use_calendar*
-g:vimwiki_use_mouse vimwiki.txt /*g:vimwiki_use_mouse*
-g:vimwiki_user_htmls vimwiki.txt /*g:vimwiki_user_htmls*
-g:vimwiki_valid_html_tags vimwiki.txt /*g:vimwiki_valid_html_tags*
-g:vimwiki_w32_dir_enc vimwiki.txt /*g:vimwiki_w32_dir_enc*
-vimwiki vimwiki.txt /*vimwiki*
-vimwiki-anchors vimwiki.txt /*vimwiki-anchors*
-vimwiki-build-tags vimwiki.txt /*vimwiki-build-tags*
-vimwiki-calendar vimwiki.txt /*vimwiki-calendar*
-vimwiki-changelog vimwiki.txt /*vimwiki-changelog*
-vimwiki-commands vimwiki.txt /*vimwiki-commands*
-vimwiki-contributing vimwiki.txt /*vimwiki-contributing*
-vimwiki-date vimwiki.txt /*vimwiki-date*
-vimwiki-development vimwiki.txt /*vimwiki-development*
-vimwiki-diary vimwiki.txt /*vimwiki-diary*
-vimwiki-folding vimwiki.txt /*vimwiki-folding*
-vimwiki-follow_link vimwiki.txt /*vimwiki-follow_link*
-vimwiki-functions vimwiki.txt /*vimwiki-functions*
-vimwiki-global-commands vimwiki.txt /*vimwiki-global-commands*
-vimwiki-global-mappings vimwiki.txt /*vimwiki-global-mappings*
-vimwiki-global-options vimwiki.txt /*vimwiki-global-options*
-vimwiki-help vimwiki.txt /*vimwiki-help*
-vimwiki-intro vimwiki.txt /*vimwiki-intro*
-vimwiki-license vimwiki.txt /*vimwiki-license*
-vimwiki-list-manipulation vimwiki.txt /*vimwiki-list-manipulation*
-vimwiki-list-mappings vimwiki.txt /*vimwiki-list-mappings*
-vimwiki-lists vimwiki.txt /*vimwiki-lists*
-vimwiki-local-commands vimwiki.txt /*vimwiki-local-commands*
-vimwiki-local-mappings vimwiki.txt /*vimwiki-local-mappings*
-vimwiki-local-options vimwiki.txt /*vimwiki-local-options*
-vimwiki-mappings vimwiki.txt /*vimwiki-mappings*
-vimwiki-nohtml vimwiki.txt /*vimwiki-nohtml*
-vimwiki-option-auto_export vimwiki.txt /*vimwiki-option-auto_export*
-vimwiki-option-auto_tags vimwiki.txt /*vimwiki-option-auto_tags*
-vimwiki-option-auto_toc vimwiki.txt /*vimwiki-option-auto_toc*
-vimwiki-option-automatic_nested_syntaxes vimwiki.txt /*vimwiki-option-automatic_nested_syntaxes*
-vimwiki-option-css_name vimwiki.txt /*vimwiki-option-css_name*
-vimwiki-option-custom_wiki2html vimwiki.txt /*vimwiki-option-custom_wiki2html*
-vimwiki-option-diary_header vimwiki.txt /*vimwiki-option-diary_header*
-vimwiki-option-diary_index vimwiki.txt /*vimwiki-option-diary_index*
-vimwiki-option-diary_rel_path vimwiki.txt /*vimwiki-option-diary_rel_path*
-vimwiki-option-diary_sort vimwiki.txt /*vimwiki-option-diary_sort*
-vimwiki-option-ext vimwiki.txt /*vimwiki-option-ext*
-vimwiki-option-index vimwiki.txt /*vimwiki-option-index*
-vimwiki-option-list_margin vimwiki.txt /*vimwiki-option-list_margin*
-vimwiki-option-maxhi vimwiki.txt /*vimwiki-option-maxhi*
-vimwiki-option-nested_syntaxes vimwiki.txt /*vimwiki-option-nested_syntaxes*
-vimwiki-option-path vimwiki.txt /*vimwiki-option-path*
-vimwiki-option-path_html vimwiki.txt /*vimwiki-option-path_html*
-vimwiki-option-syntax vimwiki.txt /*vimwiki-option-syntax*
-vimwiki-option-template_default vimwiki.txt /*vimwiki-option-template_default*
-vimwiki-option-template_ext vimwiki.txt /*vimwiki-option-template_ext*
-vimwiki-option-template_path vimwiki.txt /*vimwiki-option-template_path*
-vimwiki-options vimwiki.txt /*vimwiki-options*
-vimwiki-placeholders vimwiki.txt /*vimwiki-placeholders*
-vimwiki-prerequisites vimwiki.txt /*vimwiki-prerequisites*
-vimwiki-register-extension vimwiki.txt /*vimwiki-register-extension*
-vimwiki-register-wiki vimwiki.txt /*vimwiki-register-wiki*
-vimwiki-syntax vimwiki.txt /*vimwiki-syntax*
-vimwiki-syntax-blockquotes vimwiki.txt /*vimwiki-syntax-blockquotes*
-vimwiki-syntax-comments vimwiki.txt /*vimwiki-syntax-comments*
-vimwiki-syntax-headers vimwiki.txt /*vimwiki-syntax-headers*
-vimwiki-syntax-hr vimwiki.txt /*vimwiki-syntax-hr*
-vimwiki-syntax-links vimwiki.txt /*vimwiki-syntax-links*
-vimwiki-syntax-lists vimwiki.txt /*vimwiki-syntax-lists*
-vimwiki-syntax-math vimwiki.txt /*vimwiki-syntax-math*
-vimwiki-syntax-paragraphs vimwiki.txt /*vimwiki-syntax-paragraphs*
-vimwiki-syntax-preformatted vimwiki.txt /*vimwiki-syntax-preformatted*
-vimwiki-syntax-tables vimwiki.txt /*vimwiki-syntax-tables*
-vimwiki-syntax-tags vimwiki.txt /*vimwiki-syntax-tags*
-vimwiki-syntax-typefaces vimwiki.txt /*vimwiki-syntax-typefaces*
-vimwiki-table-mappings vimwiki.txt /*vimwiki-table-mappings*
-vimwiki-table-of-contents vimwiki.txt /*vimwiki-table-of-contents*
-vimwiki-tables vimwiki.txt /*vimwiki-tables*
-vimwiki-tagbar vimwiki.txt /*vimwiki-tagbar*
-vimwiki-template vimwiki.txt /*vimwiki-template*
-vimwiki-temporary-wiki vimwiki.txt /*vimwiki-temporary-wiki*
-vimwiki-text-objects vimwiki.txt /*vimwiki-text-objects*
-vimwiki-title vimwiki.txt /*vimwiki-title*
-vimwiki-toc vimwiki.txt /*vimwiki-toc*
-vimwiki-todo-lists vimwiki.txt /*vimwiki-todo-lists*
-vimwiki.txt vimwiki.txt /*vimwiki.txt*
-vimwiki_+ vimwiki.txt /*vimwiki_+*
-vimwiki_- vimwiki.txt /*vimwiki_-*
-vimwiki_<A-Left> vimwiki.txt /*vimwiki_<A-Left>*
-vimwiki_<A-Right> vimwiki.txt /*vimwiki_<A-Right>*
-vimwiki_<Backspace> vimwiki.txt /*vimwiki_<Backspace>*
-vimwiki_<C-CR> vimwiki.txt /*vimwiki_<C-CR>*
-vimwiki_<C-Down> vimwiki.txt /*vimwiki_<C-Down>*
-vimwiki_<C-S-CR> vimwiki.txt /*vimwiki_<C-S-CR>*
-vimwiki_<C-Space> vimwiki.txt /*vimwiki_<C-Space>*
-vimwiki_<C-Up> vimwiki.txt /*vimwiki_<C-Up>*
-vimwiki_<CR> vimwiki.txt /*vimwiki_<CR>*
-vimwiki_<D-CR> vimwiki.txt /*vimwiki_<D-CR>*
-vimwiki_<Leader>w<Leader>i vimwiki.txt /*vimwiki_<Leader>w<Leader>i*
-vimwiki_<Leader>wd vimwiki.txt /*vimwiki_<Leader>wd*
-vimwiki_<Leader>wh vimwiki.txt /*vimwiki_<Leader>wh*
-vimwiki_<Leader>whh vimwiki.txt /*vimwiki_<Leader>whh*
-vimwiki_<Leader>wr vimwiki.txt /*vimwiki_<Leader>wr*
-vimwiki_<S-CR> vimwiki.txt /*vimwiki_<S-CR>*
-vimwiki_<S-Tab> vimwiki.txt /*vimwiki_<S-Tab>*
-vimwiki_<Tab> vimwiki.txt /*vimwiki_<Tab>*
-vimwiki_= vimwiki.txt /*vimwiki_=*
-vimwiki_[= vimwiki.txt /*vimwiki_[=*
-vimwiki_[[ vimwiki.txt /*vimwiki_[[*
-vimwiki_[u vimwiki.txt /*vimwiki_[u*
-vimwiki_]= vimwiki.txt /*vimwiki_]=*
-vimwiki_]] vimwiki.txt /*vimwiki_]]*
-vimwiki_]u vimwiki.txt /*vimwiki_]u*
-vimwiki_gL# vimwiki.txt /*vimwiki_gL#*
-vimwiki_gL- vimwiki.txt /*vimwiki_gL-*
-vimwiki_gL1 vimwiki.txt /*vimwiki_gL1*
-vimwiki_gL<Space> vimwiki.txt /*vimwiki_gL<Space>*
-vimwiki_gLA vimwiki.txt /*vimwiki_gLA*
-vimwiki_gLI vimwiki.txt /*vimwiki_gLI*
-vimwiki_gLa vimwiki.txt /*vimwiki_gLa*
-vimwiki_gLh vimwiki.txt /*vimwiki_gLh*
-vimwiki_gLi vimwiki.txt /*vimwiki_gLi*
-vimwiki_gLl vimwiki.txt /*vimwiki_gLl*
-vimwiki_gLr vimwiki.txt /*vimwiki_gLr*
-vimwiki_gLstar vimwiki.txt /*vimwiki_gLstar*
-vimwiki_gl# vimwiki.txt /*vimwiki_gl#*
-vimwiki_gl- vimwiki.txt /*vimwiki_gl-*
-vimwiki_gl1 vimwiki.txt /*vimwiki_gl1*
-vimwiki_gl<Space> vimwiki.txt /*vimwiki_gl<Space>*
-vimwiki_glA vimwiki.txt /*vimwiki_glA*
-vimwiki_glI vimwiki.txt /*vimwiki_glI*
-vimwiki_gla vimwiki.txt /*vimwiki_gla*
-vimwiki_glh vimwiki.txt /*vimwiki_glh*
-vimwiki_gli vimwiki.txt /*vimwiki_gli*
-vimwiki_gll vimwiki.txt /*vimwiki_gll*
-vimwiki_gln vimwiki.txt /*vimwiki_gln*
-vimwiki_glp vimwiki.txt /*vimwiki_glp*
-vimwiki_glr vimwiki.txt /*vimwiki_glr*
-vimwiki_glstar vimwiki.txt /*vimwiki_glstar*
-vimwiki_glx vimwiki.txt /*vimwiki_glx*
-vimwiki_gqq vimwiki.txt /*vimwiki_gqq*
-vimwiki_gww vimwiki.txt /*vimwiki_gww*
-vimwiki_i_<C-D> vimwiki.txt /*vimwiki_i_<C-D>*
-vimwiki_i_<C-L>_<C-J> vimwiki.txt /*vimwiki_i_<C-L>_<C-J>*
-vimwiki_i_<C-L>_<C-K> vimwiki.txt /*vimwiki_i_<C-L>_<C-K>*
-vimwiki_i_<C-L>_<C-M> vimwiki.txt /*vimwiki_i_<C-L>_<C-M>*
-vimwiki_i_<C-T> vimwiki.txt /*vimwiki_i_<C-T>*
-vimwiki_i_<CR> vimwiki.txt /*vimwiki_i_<CR>*
-vimwiki_i_<CR>_table vimwiki.txt /*vimwiki_i_<CR>_table*
-vimwiki_i_<S-CR> vimwiki.txt /*vimwiki_i_<S-CR>*
-vimwiki_i_<Tab>_table vimwiki.txt /*vimwiki_i_<Tab>_table*
diff --git a/vim/.vim/plugged/vimwiki/doc/vimwiki.txt b/vim/.vim/plugged/vimwiki/doc/vimwiki.txt
deleted file mode 100644
index 835036e..0000000
--- a/vim/.vim/plugged/vimwiki/doc/vimwiki.txt
+++ /dev/null
@@ -1,3238 +0,0 @@
-*vimwiki.txt* A Personal Wiki for Vim
-
- __ __ ___ __ __ _ _ ___ ___ _ ___ ~
- | | | || | | |_| || | _ | || | | | | || | ~
- | |_| || | | || || || || | | |_| || | ~
- | || | | || || | | _|| | ~
- | || | | || || | | |_ | | ~
- | | | | | ||_|| || _ || | | _ || | ~
- |___| |___| |_| |_||__| |__||___| |___| |_||___| ~
-
-
- Version: 2.3
-
-==============================================================================
-CONTENTS *vimwiki*
-
- 1. Intro |vimwiki-intro|
- 2. Prerequisites |vimwiki-prerequisites|
- 3. Mappings |vimwiki-mappings|
- 3.1. Global mappings |vimwiki-global-mappings|
- 3.2. Local mappings |vimwiki-local-mappings|
- 3.3. Text objects |vimwiki-text-objects|
- 4. Commands |vimwiki-commands|
- 4.1. Global commands |vimwiki-global-commands|
- 4.2. Local commands |vimwiki-local-commands|
- 5. Wiki syntax |vimwiki-syntax|
- 5.1. Typefaces |vimwiki-syntax-typefaces|
- 5.2. Links |vimwiki-syntax-links|
- 5.3. Headers |vimwiki-syntax-headers|
- 5.4. Paragraphs |vimwiki-syntax-paragraphs|
- 5.5. Lists |vimwiki-syntax-lists|
- 5.6. Tables |vimwiki-syntax-tables|
- 5.7. Preformatted text |vimwiki-syntax-preformatted|
- 5.8. Mathematical formulae |vimwiki-syntax-math|
- 5.9. Blockquotes |vimwiki-syntax-blockquotes|
- 5.10. Comments |vimwiki-syntax-comments|
- 5.11. Horizontal line |vimwiki-syntax-hr|
- 5.12. Tags |vimwiki-syntax-tags|
- 6. Folding/Outline |vimwiki-folding|
- 7. Placeholders |vimwiki-placeholders|
- 8. Lists |vimwiki-lists|
- 9. Tables |vimwiki-tables|
- 10. Diary |vimwiki-diary|
- 11. Anchors |vimwiki-anchors|
- 12. Options |vimwiki-options|
- 12.1. Registered Wiki |vimwiki-register-wiki|
- 12.2. Temporary Wiki |vimwiki-temporary-wiki|
- 12.3. Per-Wiki Options |vimwiki-local-options|
- 12.4. Global Options |vimwiki-global-options|
- 13. Getting help |vimwiki-help|
- 14. Contributing & Bug reports |vimwiki-contributing|
- 15. Development |vimwiki-development|
- 16. Changelog |vimwiki-changelog|
- 17. License |vimwiki-license|
-
-
-==============================================================================
-1. Intro *vimwiki-intro*
-
-Vimwiki is a personal wiki for Vim -- a number of linked text files that have
-their own syntax highlighting.
-
-With Vimwiki you can:
- - organize notes and ideas
- - manage todo-lists
- - write documentation
- - maintain a diary
- - export everything to HTML
-
-To do a quick start press <Leader>ww (this is usually \ww) to go to your index
-wiki file. By default it is located in ~/vimwiki/index.wiki
-
-Feed it with the following example:
-
-= My knowledge base =
- * Tasks -- things to be done _yesterday_!!!
- * Project Gutenberg -- good books are power.
- * Scratchpad -- various temporary stuff.
-
-Place your cursor on 'Tasks' and press Enter to create a link. Once pressed,
-'Tasks' will become '[[Tasks]]' -- a Vimwiki link. Press Enter again to
-open it. Edit the file, save it, and then press Backspace to jump back to
-your index.
-
-A Vimwiki link can be constructed from more than one word. Just visually
-select the words to be linked and press Enter. Try it with 'Project
-Gutenberg'. The result should look something like:
-
-= My knowledge base =
- * [[Tasks]] -- things to be done _yesterday_!!!
- * [[Project Gutenberg]] -- good books are power.
- * Scratchpad -- various temporary stuff.
-
-==============================================================================
-2. Prerequisites *vimwiki-prerequisites*
-
-Make sure you have these settings in your vimrc file: >
- set nocompatible
- filetype plugin on
- syntax on
-
-Without them Vimwiki will not work properly.
-
-
-==============================================================================
-3. Mappings *vimwiki-mappings*
-
-There are global and local mappings in Vimwiki.
-
-------------------------------------------------------------------------------
-3.1. Global mappings *vimwiki-global-mappings*
-
-[count]<Leader>ww or <Plug>VimwikiIndex
- Open index file of the [count]'s wiki.
-
- <Leader>ww opens the first wiki from |g:vimwiki_list|.
- 1<Leader>ww as above, opens the first wiki from |g:vimwiki_list|.
- 2<Leader>ww opens the second wiki from |g:vimwiki_list|.
- 3<Leader>ww opens the third wiki from |g:vimwiki_list|.
- etc.
- To remap: >
- :nmap <Leader>w <Plug>VimwikiIndex
-<
-See also |:VimwikiIndex|
-
-
-[count]<Leader>wt or <Plug>VimwikiTabIndex
- Open index file of the [count]'s wiki in a new tab.
-
- <Leader>wt tabopens the first wiki from |g:vimwiki_list|.
- 1<Leader>wt as above tabopens the first wiki from |g:vimwiki_list|.
- 2<Leader>wt tabopens the second wiki from |g:vimwiki_list|.
- 3<Leader>wt tabopens the third wiki from |g:vimwiki_list|.
- etc.
- To remap: >
- :nmap <Leader>t <Plug>VimwikiTabIndex
-<
-See also |:VimwikiTabIndex|
-
-
-<Leader>ws or <Plug>VimwikiUISelect
- List and select available wikis.
- To remap: >
- :nmap <Leader>wq <Plug>VimwikiUISelect
-<
-See also |:VimwikiUISelect|
-
-
-[count]<Leader>wi or <Plug>VimwikiDiaryIndex
- Open diary index file of the [count]'s wiki.
-
- <Leader>wi opens diary index file of the first wiki from
- |g:vimwiki_list|.
- 1<Leader>wi the same as above.
- 2<Leader>wi opens diary index file of the second wiki from
- |g:vimwiki_list|.
- etc.
- To remap: >
- :nmap <Leader>i <Plug>VimwikiDiaryIndex
-
-See also |:VimwikiDiaryIndex|
-
-
-[count]<Leader>w<Leader>w or <Plug>VimwikiMakeDiaryNote
- Open diary wiki-file for today of the [count]'s wiki.
-
- <Leader>w<Leader>w opens diary wiki-file for today in the first wiki
- from |g:vimwiki_list|.
- 1<Leader>w<Leader>w as above opens diary wiki-file for today in the
- first wiki from |g:vimwiki_list|.
- 2<Leader>w<Leader>w opens diary wiki-file for today in the second wiki
- from |g:vimwiki_list|.
- 3<Leader>w<Leader>w opens diary wiki-file for today in the third wiki
- from |g:vimwiki_list|.
- etc.
- To remap: >
- :nmap <Leader>d <Plug>VimwikiMakeDiaryNote
-<
-See also |:VimwikiMakeDiaryNote|
-
-
-[count]<Leader>w<Leader>t or <Plug>VimwikiTabMakeDiaryNote
- Open diary wiki-file for today of the [count]'s wiki in a new tab.
-
- <Leader>w<Leader>t tabopens diary wiki-file for today in the first
- wiki from |g:vimwiki_list|.
- 1<Leader>w<Leader>t as above tabopens diary wiki-file for today in the
- first wiki from |g:vimwiki_list|.
- 2<Leader>w<Leader>t tabopens diary wiki-file for today in the second
- wiki from |g:vimwiki_list|.
- 3<Leader>w<Leader>t tabopens diary wiki-file for today in the third
- wiki from |g:vimwiki_list|.
- etc.
- To remap: >
- :nmap <Leader>dt <Plug>VimwikiTabMakeDiaryNote
-<
-See also |:VimwikiTabMakeDiaryNote|
-
-
-[count]<Leader>w<Leader>y or <Plug>VimwikiMakeYesterdayDiaryNote
- Open diary wiki-file for yesterday of the [count]'s wiki.
-
- <Leader>w<Leader>y opens diary wiki-file for yesterday in the first
- wiki from |g:vimwiki_list|.
- 1<Leader>w<Leader>y as above opens diary wiki-file for yesterday in
- the first wiki from |g:vimwiki_list|.
- 2<Leader>w<Leader>y opens diary wiki-file for yesterday in the second
- wiki from |g:vimwiki_list|.
- 3<Leader>w<Leader>y opens diary wiki-file for yesterday in the third
- wiki from |g:vimwiki_list|.
- etc.
- To remap: >
- :nmap <Leader>dy <Plug>VimwikiMakeYesterdayDiaryNote
-<
-See also |:VimwikiMakeYesterdayDiaryNote|
-
-[count]<Leader>w<Leader>m or <Plug>VimwikiMakeTomorrowDiaryNote
- Open diary wiki-file for tomorrow of the [count]'s wiki.
-
- <Leader>w<Leader>m opens diary wiki-file for tomorrow in the first
- wiki from |g:vimwiki_list|.
- 1<Leader>w<Leader>m as above opens diary wiki-file for tomorrow in
- the first wiki from |g:vimwiki_list|.
- 2<Leader>w<Leader>m opens diary wiki-file for tomorrow in the second
- wiki from |g:vimwiki_list|.
- 3<Leader>w<Leader>m opens diary wiki-file for tomorrow in the third
- wiki from |g:vimwiki_list|.
- etc.
- To remap: >
- :nmap <Leader>dm <Plug>VimwikiMakeTomorrowDiaryNote
-<
-See also |:VimwikiMakeTomorrowDiaryNote|
-
-------------------------------------------------------------------------------
-3.2. Local mappings
-
-To remap one of these keys, either put it in your .vimrc like this >
- :nmap <Leader>wc <Plug>Vimwiki2HTML
-or, the better way, put it in a file .vim/ftplugin/vimwiki.vim like this >
- :nmap <silent><buffer> <Leader>wc <Plug>Vimwiki2HTML
-
-The latter has the advantage that the mapping is local to Vimwiki buffers in
-every case.
-
-Also note that some keys work in normal mode as well as in visual mode. If you
-remap them using :map, they will also run in operator-pending mode. If you
-don't want that, use >
- :nmap <Leader>tt <Plug>VimwikiToggleListItem
- :vmap <Leader>tt <Plug>VimwikiToggleListItem
-
-
-NORMAL MODE *vimwiki-local-mappings*
- *vimwiki_<Leader>wh*
-<Leader>wh Convert current wiki page to HTML.
- Maps to |:Vimwiki2HTML|
- To remap: >
- :nmap <Leader>wc <Plug>Vimwiki2HTML
-<
- *vimwiki_<Leader>whh*
-<Leader>whh Convert current wiki page to HTML and open it in the
- webbrowser.
- Maps to |:Vimwiki2HTMLBrowse|
- To remap: >
- :nmap <Leader>wcc <Plug>Vimwiki2HTMLBrowse
-<
- *vimwiki_<Leader>w<Leader>i*
-<Leader>w<Leader>i Update diary section (delete old, insert new)
- Only works from the diary index.
- Maps to |:VimwikiDiaryGenerateLinks|
- To remap: >
- :nmap <Leader>wcr <Plug>VimwikiDiaryGenerateLinks
-<
- *vimwiki_<CR>*
-<CR> Follow/create wiki link (create target wiki page if
- needed).
- Maps to |:VimwikiFollowLink|.
- To remap: >
- :nmap <Leader>wf <Plug>VimwikiFollowLink
-<
- *vimwiki_<S-CR>*
-<S-CR> Split and follow (create target wiki page if needed).
- May not work in some terminals. Remapping could help.
- Maps to |:VimwikiSplitLink|.
- To remap: >
- :nmap <Leader>we <Plug>VimwikiSplitLink
-<
- *vimwiki_<C-CR>*
-<C-CR> Vertical split and follow (create target wiki page if
- needed).
- May not work in some terminals. Remapping could help.
- Maps to |:VimwikiVSplitLink|.
- To remap: >
- :nmap <Leader>wq <Plug>VimwikiVSplitLink
-<
- *vimwiki_<C-S-CR>* *vimwiki_<D-CR>*
-<C-S-CR>, <D-CR> Follow wiki link (create target wiki page if needed),
- opening in a new tab.
- May not work in some terminals. Remapping could help.
- Maps to |:VimwikiTabnewLink|.
- To remap: >
- :nmap <Leader>wt <Plug>VimwikiTabnewLink
-<
- *vimwiki_<Backspace>*
-<Backspace> Go back to previously visited wiki page.
- Maps to |:VimwikiGoBackLink|.
- To remap: >
- :nmap <Leader>wb <Plug>VimwikiGoBackLink
-<
- *vimwiki_<Tab>*
-<Tab> Find next link in the current page.
- Maps to |:VimwikiNextLink|.
- To remap: >
- :nmap <Leader>wn <Plug>VimwikiNextLink
-<
- *vimwiki_<S-Tab>*
-<S-Tab> Find previous link in the current page.
- Maps to |:VimwikiPrevLink|.
- To remap: >
- :nmap <Leader>wp <Plug>VimwikiPrevLink
-<
- *vimwiki_<Leader>wd*
-<Leader>wd Delete wiki page you are in.
- Maps to |:VimwikiDeleteLink|.
- To remap: >
- :nmap <Leader>dd <Plug>VimwikiDeleteLink
-<
- *vimwiki_<Leader>wr*
-<Leader>wr Rename wiki page you are in.
- Maps to |:VimwikiRenameLink|.
- To remap: >
- :nmap <Leader>rr <Plug>VimwikiRenameLink
-<
- *vimwiki_=*
-= Add header level. Create if needed.
- There is nothing to indent with '==' command in
- Vimwiki, so it should be ok to use '=' here.
- To remap: >
- :nmap == <Plug>VimwikiAddHeaderLevel
-<
- *vimwiki_-*
-- Remove header level.
- To remap: >
- :nmap -- <Plug>VimwikiRemoveHeaderLevel
-<
- *vimwiki_[[*
-[[ Go to the previous header in the buffer.
- To remap: >
- :nmap <- <Plug>VimwikiGoToPrevHeader
-<
- *vimwiki_]]*
-]] Go to the next header in the buffer.
- To remap: >
- :nmap -> <Plug>VimwikiGoToNextHeader
-<
- *vimwiki_[=*
-[= Go to the previous header which has the same level as
- the header the cursor is currently under.
- To remap: >
- :nmap <= <Plug>VimwikiGoToPrevSiblingHeader
-<
- *vimwiki_]=*
-]= Go to the next header which has the same level as the
- header the cursor is currently under.
- To remap: >
- :nmap => <Plug>VimwikiGoToNextSiblingHeader
-<
- *vimwiki_]u* *vimwiki_[u*
-]u [u Go one level up -- that is, to the parent header of
- the header the cursor is currently under.
- To remap: >
- :nmap -^ <Plug>VimwikiGoToParentHeader
-<
- *vimwiki_+*
-+ Create and/or decorate links. Depending on the
- context, this command will: convert words into
- wikilinks; convert raw URLs into wikilinks; and add
- placeholder description text to wiki- or weblinks that
- are missing descriptions. Can be activated in normal
- mode with the cursor over a word or link, or in visual
- mode with the selected text.
- To remap: >
- :nmap ++ <Plug>VimwikiNormalizeLink
- :vmap ++ <Plug>VimwikiNormalizeLinkVisual
-<
- *vimwiki_<C-Space>*
-<C-Space> Toggle checkbox of a list item on/off.
- Maps to |:VimwikiToggleListItem|.
- See |vimwiki-todo-lists|.
- To remap: >
- :map <Leader>tt <Plug>VimwikiToggleListItem
-<
- *vimwiki_gl<Space>* *vimwiki_gL<Space>*
-gl<Space> Remove checkbox from list item.
-gL<Space> Remove checkboxes from all sibling list items.
- To remap: >
- :map <Leader><Space> <Plug>VimwikiRemoveSingleCB
- :map <Leader><Space> <Plug>VimwikiRemoveCBInList
-<
- *vimwiki_gln* *vimwiki_glp*
-gln Increase the "done" status of a list checkbox, i.e.
- from [ ] to [.] to [o] etc. See |vimwiki-todo-lists|.
-glp Decrease the "done" status.
- To remap: >
- :nmap <M-+> <Plug>VimwikiIncrementListItem
- :vmap <M-+> <Plug>VimwikiIncrementListItem
- :nmap <M--> <Plug>VimwikiDecrementListItem
- :vmap <M--> <Plug>VimwikiDecrementListItem
-
- *vimwiki_gll* *vimwiki_gLl*
-gll Increase the level of a list item.
-gLl Increase the level of a list item and all child items.
- To remap: >
- :map >> <Plug>VimwikiIncreaseLvlSingleItem
- :map >>> <Plug>VimwikiIncreaseLvlWholeItem
-<
- *vimwiki_glh* *vimwiki_gLh*
-glh Decrease the level of a list item.
-gLh Decrease the level of a list item and all child items.
- To remap: >
- :map << <Plug>VimwikiDecreaseLvlSingleItem
- :map <<< <Plug>VimwikiDecreaseLvlWholeItem
-<
- *vimwiki_glr* *vimwiki_gLr*
-glr Renumber list items if the cursor is on a numbered
- list item.
-gLr Renumber list items in all numbered lists in the whole
- file.
- Also readjust checkboxes.
- To remap: >
- :nmap <c-r> <Plug>VimwikiRenumberList
- :nmap <c-r> <Plug>VimwikiRenumberAllLists
-<
- *vimwiki_glstar* *vimwiki_gLstar*
-gl* Make a list item out of a normal line or change the
- symbol of the current item to *.
-gL* Change the symbol of the current list to *.
- To remap: >
- noremap glo :VimwikiChangeSymbolTo *<CR>
- noremap glO :VimwikiChangeSymbolInListTo *<CR>
-<
- *vimwiki_gl#* *vimwiki_gL#*
-gl# Make a list item out of a normal line or change the
- symbol of the current item to #.
-gL# Change the symbol of the current list to #.
- To remap: >
- noremap glo :VimwikiChangeSymbolTo #<CR>
- noremap glO :VimwikiChangeSymbolInListTo #<CR>
-<
- *vimwiki_gl-* *vimwiki_gL-*
-gl- Make a list item out of a normal line or change the
- symbol of the current item to -.
-gL- Change the symbol of the current list to -.
- To remap: >
- noremap glo :VimwikiChangeSymbolTo -<CR>
- noremap glO :VimwikiChangeSymbolInListTo -<CR>
-<
- *vimwiki_gl1* *vimwiki_gL1*
-gl1 Make a list item out of a normal line or change the
- symbol of the current item to 1., the numbering is
- adjusted according to the surrounding list items.
-gL1 Change the symbol of the current list to 1. 2. 3. ...
- To remap: >
- noremap glo :VimwikiChangeSymbolTo 1.<CR>
- noremap glO :VimwikiChangeSymbolInListTo 1.<CR>
-<
- *vimwiki_gla* *vimwiki_gLa*
-gla Make a list item out of a normal line or change the
- symbol of the current item to a), the numbering is
- adjusted according to the surrounding list items.
-gLa Change the symbol of the current list to a) b) c) ...
- To remap: >
- noremap glo :VimwikiChangeSymbolTo a)<CR>
- noremap glO :VimwikiChangeSymbolInListTo a)<CR>
-<
- *vimwiki_glA* *vimwiki_gLA*
-glA Make a list item out of a normal line or change the
- symbol of the current item to A), the numbering is
- adjusted according to the surrounding list items.
-gLA Change the symbol of the current list to A) B) C) ...
- To remap: >
- noremap glo :VimwikiChangeSymbolTo A)<CR>
- noremap glO :VimwikiChangeSymbolInListTo A)<CR>
-<
- *vimwiki_gli* *vimwiki_gLi*
-gli Make a list item out of a normal line or change the
- symbol of the current item to i), the numbering is
- adjusted according to the surrounding list items.
-gLi Change the symbol of the current list to
- i) ii) iii) ...
- To remap: >
- noremap glo :VimwikiChangeSymbolTo i)<CR>
- noremap glO :VimwikiChangeSymbolInListTo i)<CR>
-<
- *vimwiki_glI* *vimwiki_gLI*
-glI Make a list item out of a normal line or change the
- symbol of the current item to I), the numbering is
- adjusted according to the surrounding list items.
-gLI Change the symbol of the current list to
- I) II) III) ...
- To remap: >
- noremap glo :VimwikiChangeSymbolTo I)<CR>
- noremap glO :VimwikiChangeSymbolInListTo I)<CR>
-<
- *vimwiki_glx*
-glx Toggle checkbox of a list item disabled/off.
- Maps to |:VimwikiToggleRejectedListItem|.
- See |vimwiki-todo-lists|.
- To remap: >
- :map <Leader>tx <Plug>VimwikiToggleRejectedListItem
-<
- *vimwiki_gqq* *vimwiki_gww*
-gqq Format table. If you made some changes to a table
- or without swapping insert/normal modes this command
-gww will reformat it.
-
- *vimwiki_<A-Left>*
-<A-Left> Move current table column to the left.
- See |:VimwikiTableMoveColumnLeft|
- To remap: >
- :nmap <Leader>wtl <Plug>VimwikiTableMoveColumnLeft
-<
- *vimwiki_<A-Right>*
-<A-Right> Move current table column to the right.
- See |:VimwikiTableMoveColumnRight|
- To remap: >
- :nmap <Leader>wtr <Plug>VimwikiTableMoveColumnRight
-<
- *vimwiki_<C-Up>*
-<C-Up> Open the previous day's diary link if available.
- See |:VimwikiDiaryPrevDay|
- To remap: >
- :nmap <Leader>k <Plug>VimwikiDiaryPrevDay
-<
- *vimwiki_<C-Down>*
-<C-Down> Open the next day's diary link if available.
- See |:VimwikiDiaryNextDay|
- To remap: >
- :nmap <Leader>j <Plug>VimwikiDiaryNextDay
-<
-
-Works only if |g:vimwiki_use_mouse| is set to 1.
-<2-LeftMouse> Follow wiki link (create target wiki page if needed).
-
-<S-2-LeftMouse> Split and follow wiki link (create target wiki page if
- needed).
-
-<C-2-LeftMouse> Vertical split and follow wiki link (create target
- wiki page if needed).
-
-<RightMouse><LeftMouse> Go back to previous wiki page.
-
-Note: <2-LeftMouse> is just left double click.
-
-
-
-INSERT MODE *vimwiki-table-mappings*
- *vimwiki_i_<CR>_table*
-<CR> Go to the table cell beneath the current one, create
- a new row if on the last one.
-
- *vimwiki_i_<Tab>_table*
-<Tab> Go to the next table cell, create a new row if on the
- last cell.
-See |g:vimwiki_table_mappings| to turn them off.
-
-INSERT MODE *vimwiki-list-mappings*
- *vimwiki_i_<CR>*
-<CR> In a list item, insert a new bullet or number in the
- next line, numbers are incremented.
- In an empty list item, delete the item symbol. This is
- useful to end a list, simply press <CR> twice.
- See |vimwiki-lists| for details and for how to
- configure the behavior.
-
- *vimwiki_i_<S-CR>*
-<S-CR> Does not insert a new list item, useful to create
- multilined list items.
- See |vimwiki-lists| for details and for how to
- configure the behavior.
-
- *vimwiki_i_<C-T>*
-<C-T> Increase the level of a list item.
- To remap: >
- :imap <C-E> <Plug>VimwikiIncreaseLvlSingleItem
-<
- *vimwiki_i_<C-D>*
-<C-D> Decrease the level of a list item.
- To remap: >
- :imap <C-E> <Plug>VimwikiDecreaseLvlSingleItem
-<
- *vimwiki_i_<C-L>_<C-J>*
-<C-L><C-J> Change the symbol of the current list item to the next
- available. From - to 1. to * to I) to a).
- To remap: >
- :imap <C-A> <Plug>VimwikiListNextSymbol
-<
- *vimwiki_i_<C-L>_<C-K>*
-<C-L><C-K> Change the symbol of the current list item to the prev
- available. From - to a) to I) to * to 1.
- To remap: >
- :imap <C-S> <Plug>VimwikiListPrevSymbol
-<
- *vimwiki_i_<C-L>_<C-M>*
-<C-L><C-M> Create/remove a symbol from a list item.
- To remap: >
- :imap <C-K> <Plug>VimwikiListToggle
-<
-
-------------------------------------------------------------------------------
-3.3. Text objects *vimwiki-text-objects*
-
-ah A header including its content up to the next header.
-ih The content under a header (like 'ah', but excluding
- the header itself and trailing empty lines).
-
-aH A header including all of its subheaders. When [count]
- is 2, include the parent header, when [count] is 3,
- the grandparent and so on.
-iH Like 'aH', but excluding the header itself and
- trailing empty lines.
-
-Examples:
-- type 'cih' to change the content under the current header
-- 'daH' deletes an entire header plus its content including the content of all
- of its subheaders
-- 'v2aH' selects the parent header of the header the cursor is under plus all
- of the content of all of its subheaders
-
-a\ A cell in a table.
-i\ An inner cell in a table.
-ac A column in a table.
-ic An inner column in a table.
-
-al A list item plus its children.
-il A single list item.
-
-
-==============================================================================
-4. Commands *vimwiki-commands*
-
-------------------------------------------------------------------------------
-4.1. Global Commands *vimwiki-global-commands*
-
-*:VimwikiIndex*
- Open index file of the current wiki.
-
-*:VimwikiTabIndex*
- Open index file of the current wiki in a new tab.
-
-*:VimwikiUISelect*
- Open index file of the selected wiki.
-
-*:VimwikiDiaryIndex*
- Open diary index file of the current wiki.
-
-*:VimwikiMakeDiaryNote*
- Open diary wiki-file for today of the current wiki.
-
-*:VimwikiTabMakeDiaryNote*
- Open diary wiki-file for today of the current wiki in a new tab.
-
-*:VimwikiMakeYesterdayDiaryNote*
- Open diary wiki-file for yesterday of the current wiki.
-
-*:VimwikiMakeTomorrowDiaryNote*
- Open diary wiki-file for tomorrow of the current wiki.
-
-------------------------------------------------------------------------------
-4.2. Local commands *vimwiki-local-commands*
-
-These commands are only available (and meaningful) when you are currently in a
-Vimwiki file.
-
-*:VimwikiFollowLink*
- Follow wiki link (or create target wiki page if needed).
-
-*:VimwikiGoBackLink*
- Go back to the wiki page you came from.
-
-*:VimwikiSplitLink*
- Split and follow wiki link (create target wiki page if needed).
-
-*:VimwikiVSplitLink*
- Vertical split and follow wiki link (create target wiki page if needed).
-
-*:VimwikiTabnewLink*
- Follow wiki link in a new tab (create target wiki page if needed).
-
-*:VimwikiNextLink*
- Find next link on the current page.
-
-*:VimwikiPrevLink*
- Find previous link on the current page.
-
-*:VimwikiGoto*
- Goto link provided by an argument. For example: >
- :VimwikiGoto HelloWorld
-< opens/creates HelloWorld wiki page.
-
- Supports |cmdline-completion| for link name.
-
-*:VimwikiDeleteLink*
- Delete the wiki page you are in.
-
-*:VimwikiRenameLink*
- Rename the wiki page you are in.
-
-*:Vimwiki2HTML*
- Convert current wiki page to HTML using Vimwiki's own converter or a
- user-supplied script (see |vimwiki-option-custom_wiki2html|).
-
-*:Vimwiki2HTMLBrowse*
- Convert current wiki page to HTML and open it in the webbrowser.
-
-*:VimwikiAll2HTML*
- Convert all wiki pages to HTML.
- Default CSS file (style.css) is created if there is no one.
-
-*:VimwikiToggleListItem*
- Toggle checkbox of a list item on/off.
- See |vimwiki-todo-lists|.
-
-*:VimwikiToggleRejectedListItem*
- Toggle checkbox of a list item disabled/off.
- See |vimwiki-todo-lists|.
-
-*:VimwikiListChangeLevel* CMD
- Change the nesting level, or symbol, for a single-line list item.
- CMD may be ">>" or "<<" to change the indentation of the item, or
- one of the syntax-specific bullets: "*", "#", "1.", "-".
- See |vimwiki-todo-lists|.
-
-*:VimwikiSearch* /pattern/
-*:VWS* /pattern/
- Search for /pattern/ in all files of current wiki.
- To display all matches use |:lopen| command.
- To display next match use |:lnext| command.
- To display previous match use |:lprevious| command.
-
- Hint: this feature is simply a wrapper around |:lvimgrep|. For a
- description of how the pattern can look like, see |:vimgrep|. For example,
- to do a case insensitive search, use >
- :VWS /\cpattern/
-
-*:VimwikiBacklinks*
-*:VWB*
- Search for wikilinks to the current wiki page in all files of current
- wiki.
- To display all matches use |:lopen| command.
- To display next match use |:lnext| command.
- To display previous match use |:lprevious| command.
-
-
-*:VimwikiTable*
- Create a table with 5 cols and 2 rows.
-
- :VimwikiTable cols rows
- Create a table with the given cols and rows
-
- :VimwikiTable cols
- Create a table with the given cols and 2 rows
-
-
-*:VimwikiTableMoveColumnLeft* , *:VimwikiTableMoveColumnRight*
- Move current column to the left or to the right:
- Example: >
-
- | head1 | head2 | head3 | head4 | head5 |
- |--------|--------|--------|--------|--------|
- | value1 | value2 | value3 | value4 | value5 |
-
-
- Cursor is on 'head1'.
- :VimwikiTableMoveColumnRight
-
- | head2 | head1 | head3 | head4 | head5 |
- |--------|--------|--------|--------|--------|
- | value2 | value1 | value3 | value4 | value5 |
-
- Cursor is on 'head3'.
- :VimwikiTableMoveColumnLeft
-
- | head2 | head3 | head1 | head4 | head5 |
- |--------|--------|--------|--------|--------|
- | value2 | value3 | value1 | value4 | value5 |
-<
-
- Commands are mapped to <A-Left> and <A-Right> respectively.
-
-
-*:VimwikiGenerateLinks*
- Insert the links of all available wiki files into the current buffer.
-
-*:VimwikiDiaryGenerateLinks*
- Delete old, insert new diary section into diary index file.
-
-*:VimwikiDiaryNextDay*
- Open next day diary link if available.
- Mapped to <C-Down>.
-
-*:VimwikiDiaryPrevDay*
- Open previous day diary link if available.
- Mapped to <C-Up>.
-
-*:VimwikiTOC*
- Create or update the Table of Contents for the current wiki file.
- See |vimwiki-toc|.
-
-*:VimwikiCheckLinks*
- Search through all wiki files and check if the targets of all wiki links
- and links to external files actually exist. Check also if all wiki files
- are reachable from the index file. The results are shown in the quickfix
- window.
-
-*:VimwikiRebuildTags*
- Rebuilds the tags metadata file for all wiki files newer than the metadata
- file.
- Necessary for all tags related commands: |vimwiki-syntax-tags|.
-
- :VimwikiRebuildTags! does the same for all files.
-
-*:VimwikiSearchTags*
- Searches over the pages in current wiki and finds all locations of a given
- tag. Supports |cmdline-completion|.
-
-*:VimwikiGenerateTags* tagname1 tagname2 ...
- Creates or updates an overview on all tags of the wiki with links to all
- their instances. Supports |cmdline-completion|. If no arguments (tags)
- are specified, outputs all tags. To make this command work properly, make
- sure the tags have been built (see |vimwiki-build-tags|).
-
-------------------------------------------------------------------------------
-4.3. Functions *vimwiki-functions*
-
-Functions to interact with Vimwiki. (It's intended that most commands will be
-replaced with corresponding function calls in the future.)
-Warning: this is currently unstable and likely to change.
-
-
-To map them to a key, use >
- nnoremap <C-K> :call vimwiki#base#function_name(arg1, arg2)<CR>
-<
-
- *vimwiki-follow_link*
-vimwiki#base#follow_link({split}, {reuse}, {move_cursor})
- Open the link under the cursor. {split} can have the following values:
- 'nosplit' open the link in the current window
- 'vsplit' open in a vertically split window
- 'hsplit' open in a horizontally split window
- 'tab' open in a new tab
-
- If {reuse} is 1 and {split} one of 'vsplit' or 'hsplit', open the link in
- a possibly existing split window instead of making a new split.
-
- If {move_cursor} is 1 the cursor moves to the window or tab with the
- opened link, otherwise, it stays in the window or tab with the link.
-
- For example, <CR> is per default mapped to
- vimwiki#base#follow_link('nosplit', 0, 1)
-
-
-==============================================================================
-5. Wiki syntax *vimwiki-syntax*
-
-
-There are a lot of different wikis out there. Most of them have their own
-syntax and Vimwiki is not an exception here.
-
-Vimwiki has evolved its own syntax that closely resembles Google's wiki
-markup. This syntax is described in detail below.
-
-Vimwiki also supports alternative syntaxes, like Markdown and MediaWiki, to
-varying degrees; see |vimwiki-option-syntax|. Static elements like headers,
-quotations, and lists are customized in syntax/vimwiki_xxx.vim, where xxx
-stands for the chosen syntax.
-
-Interactive elements such as links and Vimwiki commands are supported by
-definitions and routines in syntax/vimwiki_xxx_custom.vim and
-autoload/vimwiki/xxx_base.vim. Currently, only Markdown includes this level
-of support.
-
-Vimwiki2HTML is currently functional only for the default syntax.
-
-------------------------------------------------------------------------------
-5.1. Typefaces *vimwiki-syntax-typefaces*
-
-There are a few typefaces that give you a bit of control over how your text
-is decorated: >
-
- *bold text*
- _italic text_
- ~~strikeout text~~
- `code (no syntax) text`
- super^script^
- sub,,script,,
-
-
-------------------------------------------------------------------------------
-5.2. Links *vimwiki-syntax-links*
-
-Wikilinks~
-
-Plain link: >
- [[This is a link]]
-With description: >
- [[This is a link source|Description of the link]]
-
-Wiki files don't need to be in the root directory of your wiki, you can put
-them in subdirectories as well: >
- [[projects/Important Project 1]]
-To jump from that file back to the index file, use this link: >
- [[../index]]
-or: >
- [[/index]]
-The latter works because wiki links starting with "/" are considered to be
-absolute to the wiki root directory, that is, the link [[/index]] always opens
-the file /path/to/your/wiki/index.wiki, no matter in which subdirectory you
-are currently in.
-
-Links to subdirectories inside the wiki directory are also supported. They
-end with a "/": >
- [[a subdirectory/|Other files]]
-Use |g:vimwiki_dir_link| to control the behavior when opening directories.
-
-Typing wikilinks can be simplified by using Vim's omni completion (see
-|compl-omni|) like so: >
- [[ind<C-X><C-O>
-which opens up a popup menu with all the wiki files starting with "ind".
-
-When |vimwiki-option-maxhi| equals 1, a distinct highlighting style is used to
-identify wikilinks whose targets are not found.
-
-Interwiki~
-
-If you maintain more than one wiki, you can create interwiki links between
-them by adding a numbered prefix "wikiX:" in front of a link: >
- [[wiki1:This is a link]]
-or: >
- [[wiki1:This is a link source|Description of the link]]
-
-The number behind "wiki" is in the range 0..N-1 and identifies the destination
-wiki in |g:vimwiki_list|.
-
-Diary~
-
-The "diary:" scheme is used to link to diary entries: >
- [[diary:2012-03-05]]
-
-Anchors~
-
-A wikilink, interwiki link or diary link can be followed by a '#' and the name
-of an anchor. When opening a link, the cursor jumps to the anchor. >
- [[Todo List#Tomorrow|Tasks for tomorrow]]
-
-To jump inside the current wiki file you can omit the file: >
- [[#Tomorrow]]
-
-See |vimwiki-anchors| for how to set an anchor.
-
-Raw URLs~
-
-Raw URLs are also supported: >
- https://github.com/vimwiki/vimwiki.git
- mailto:habamax@gmail.com
- ftp://vim.org
-
-External files~
-
-The "file:" and "local:" schemes allow you to directly link to arbitrary
-resources using absolute or relative paths: >
- [[file:/home/somebody/a/b/c/music.mp3]]
- [[file:C:/Users/somebody/d/e/f/music.mp3]]
- [[file:~/a/b/c/music.mp3]]
- [[file:../assets/data.csv|Important Data]]
- [[local:C:/Users/somebody/d/e/f/music.mp3]]
- [[file:/home/user/documents/|Link to a directory]]
-
-These links are opened with the system command, i.e. !xdg-open (Linux), !open
-(Mac), or !start (Windows). To customize this behavior, see
-|VimwikiLinkHandler|.
-
-In Vim, "file:" and "local:" behave the same, i.e. you can use them with both
-relative and absolute links. When converted to HTML, however, "file:" links
-will become absolute links, while "local:" links become relative to the HTML
-output directory. The latter can be useful if you copy your HTML files to
-another computer.
-To customize the HTML conversion of links, see |VimwikiLinkConverter|.
-
-Transclusion (Wiki-Include) Links~
-
-Links that use "{{" and "}}" delimiters signify content that is to be
-included into the HTML output, rather than referenced via hyperlink.
-
-Wiki-include URLs may use any of the supported schemes, may be absolute or
-relative, and need not end with an extension.
-
-The primary purpose for wiki-include links is to include images.
-
-Transclude from a local URL: >
- {{file:../../images/vimwiki_logo.png}}
-or from a universal URL: >
- {{http://vimwiki.googlecode.com/hg/images/vimwiki_logo.png}}
-
-Transclude image with alternate text: >
- {{http://vimwiki.googlecode.com/hg/images/vimwiki_logo.png|Vimwiki}}
-in HTML: >
- <img src="http://vimwiki.googlecode.com/hg/images/vimwiki_logo.png"
- alt="Vimwiki"/>
-
-Transclude image with alternate text and some style: >
- {{http://.../vimwiki_logo.png|cool stuff|style="width:150px;height:120px;"}}
-in HTML: >
- <img src="http://vimwiki.googlecode.com/hg/images/vimwiki_logo.png"
- alt="cool stuff" style="width:150px; height:120px"/>
-
-Transclude image _without_ alternate text and with a CSS class: >
- {{http://.../vimwiki_logo.png||class="center flow blabla"}}
-in HTML: >
- <img src="http://vimwiki.googlecode.com/hg/images/vimwiki_logo.png"
- alt="" class="center flow blabla"/>
-
-A trial feature allows you to supply your own handler for wiki-include links.
-See |VimwikiWikiIncludeHandler|.
-
-Thumbnail links~
->
-Thumbnail links are constructed like this: >
- [[http://someaddr.com/bigpicture.jpg|{{http://someaddr.com/thumbnail.jpg}}]]
-
-in HTML: >
- <a href="http://someaddr.com/ ... /.jpg">
- <img src="http://../thumbnail.jpg /></a>
-
-Markdown Links~
-
-These links are only available for Markdown syntax. See
-http://daringfireball.net/projects/markdown/syntax#link.
-
-Inline link: >
- [Looks like this](URL)
-
-Image link: >
- ![Looks like this](URL)
-
-The URL can be anything recognized by Vimwiki as a raw URL.
-
-
-Reference-style links: >
- a) [Link Name][Id]
- b) [Id][], using the "implicit link name" shortcut
-
-Reference style links must always include two consecutive pairs of
-[-brackets, and field entries can not use "[" or "]".
-
-
-NOTE: (in Vimwiki's current implementation) Reference-style links are a hybrid
-of Vimwiki's default "Wikilink" and the tradition reference-style link.
-
-If the Id is defined elsewhere in the source, as per the Markdown standard: >
- [Id]: URL
-
-then the URL is opened with the system default handler. Otherwise, Vimwiki
-treats the reference-style link as a Wikilink, interpreting the Id field as a
-wiki page name.
-
-Highlighting of existing links when |vimwiki-option-maxhi| is activated
-identifies links whose Id field is not defined, either as a reference-link or
-as a wiki page.
-
-To scan the page for new or changed definitions for reference-links, simply
-re-open the page ":e<CR>".
-
-------------------------------------------------------------------------------
-5.3. Headers *vimwiki-syntax-headers*
-
-= Header level 1 =~
-By default all headers are highlighted using |hl-Title| highlight group.
-
-== Header level 2 ==~
-You can set up different colors for each header level: >
- :hi VimwikiHeader1 guifg=#FF0000
- :hi VimwikiHeader2 guifg=#00FF00
- :hi VimwikiHeader3 guifg=#0000FF
- :hi VimwikiHeader4 guifg=#FF00FF
- :hi VimwikiHeader5 guifg=#00FFFF
- :hi VimwikiHeader6 guifg=#FFFF00
-Set up colors for all 6 header levels or none at all.
-
-=== Header level 3 ===~
-==== Header level 4 ====~
-===== Header level 5 =====~
-====== Header level 6 ======~
-
-
-You can center your headers in HTML by placing spaces before the first '=':
- = Centered Header L1 =~
-
-
-------------------------------------------------------------------------------
-5.4. Paragraphs *vimwiki-syntax-paragraphs*
-
-A paragraph is a group of lines starting in column 1 (no indentation).
-Paragraphs are separated by a blank line:
-
-This is first paragraph
-with two lines.
-
-This is a second paragraph with
-two lines.
-
-
-------------------------------------------------------------------------------
-5.5. Lists *vimwiki-syntax-lists*
-
-Unordered lists: >
- - Bulleted list item 1
- - Bulleted list item 2
-or: >
- * Bulleted list item 1
- * Bulleted list item 2
-
-
-Ordered lists: >
- 1. Numbered list item 1
- 2. Numbered list item 2
- 3. Numbered list item 3
-or: >
- 1) Numbered list item 1
- 2) Numbered list item 2
- 3) Numbered list item 3
-or: >
- a) Numbered list item 1
- b) Numbered list item 2
- c) Numbered list item 3
-or: >
- A) Numbered list item 1
- B) Numbered list item 2
- C) Numbered list item 3
-or: >
- i) Numbered list item 1
- ii) Numbered list item 2
- iii) Numbered list item 3
-or: >
- I) Numbered list item 1
- II) Numbered list item 2
- III) Numbered list item 3
-or: >
- # Bulleted list item 1
- # the # become numbers when converted to HTML
-
-Note that a space after the list item symbols (-, *, 1. etc.) is essential.
-
-You can nest and mix the various types: >
- - Bulleted list item 1
- - Bulleted list item 2
- a) Numbered list sub item 1
- b) more ...
- * and more ...
- * ...
- c) Numbered list sub item 3
- 1. Numbered list sub sub item 1
- 2. Numbered list sub sub item 2
- d) etc.
- - Bulleted list item 3
-
-List items can span multiple lines: >
- * Item 1
- Item 1 continued line.
- Item 1 next continued line.
- * Item 2
- - Sub item 1
- Sub item 1 continued line.
- Sub item 1 next continued line.
- - Sub item 2
- - etc.
- Continuation of Item 2
- Next continuation of Item 2
-
-
-Definition lists: >
- Term 1:: Definition 1
- Term 2::
- :: Definition 2
- :: Definition 3
-
-
-------------------------------------------------------------------------------
-5.6. Tables *vimwiki-syntax-tables*
-
-Tables are created by entering the content of each cell separated by |
-delimiters. You can insert other inline wiki syntax in table cells, including
-typeface formatting and links.
-For example: >
-
- | Year | Temperature (low) | Temperature (high) |
- |------|-------------------|--------------------|
- | 1900 | -10 | 25 |
- | 1910 | -15 | 30 |
- | 1920 | -10 | 32 |
- | 1930 | _N/A_ | _N/A_ |
- | 1940 | -2 | 40 |
->
-
-In HTML the following part >
- | Year | Temperature (low) | Temperature (high) |
- |------|-------------------|--------------------|
->
-is highlighted as a table header.
-
-If you indent a table then it will be centered in HTML.
-
-If you put > in a cell, the cell spans the left column.
-If you put \/ in a cell, the cell spans the above row.
-For example: >
-
- | a | b | c | d |
- | \/ | e | > | f |
- | \/ | \/ | > | g |
- | h | > | > | > |
->
-
-See |vimwiki-tables| for more details on how to manage tables.
-
-
-------------------------------------------------------------------------------
-5.7. Preformatted text *vimwiki-syntax-preformatted*
-
-Use {{{ and }}} to define a block of preformatted text:
-{{{ >
- Tyger! Tyger! burning bright
- In the forests of the night,
- What immortal hand or eye
- Could frame thy fearful symmetry?
- In what distant deeps or skies
- Burnt the fire of thine eyes?
- On what wings dare he aspire?
- What the hand dare sieze the fire?
-}}}
-
-
-You can add optional information after the {{{: >
-{{{class="brush: python" >
- def hello(world):
- for x in range(10):
- print("Hello {0} number {1}".format(world, x))
-}}}
-
-Result of HTML export: >
- <pre class="brush: python">
- def hello(world):
- for x in range(10):
- print("Hello {0} number {1}".format(world, x))
- </pre>
-
-This might be useful for coloring program code with external JS tools
-such as Google's syntax highlighter.
-
-You can setup Vimwiki to highlight code snippets in preformatted text.
-See |vimwiki-option-nested_syntaxes| and
-|vimwiki-option-automatic_nested_syntaxes|.
-
-
-------------------------------------------------------------------------------
-5.8. Mathematical formulae *vimwiki-syntax-math*
-
-Mathematical formulae are highlighted, and can be rendered in HTML using the
-powerful open source display engine MathJax (http://www.mathjax.org/).
-
-There are three supported syntaxes, which are inline, block display and
-block environment.
-
-Inline math is for short formulae within text. It is enclosed by single
-dollar signs, e.g.:
- $ \sum_i a_i^2 = 1 $
-
-Block display creates a centered formula with some spacing before and after
-it. It must start with a line including only {{$, then an arbitrary number
-of mathematical text are allowed, and it must end with a line including only
-}}$.
-E.g.:
- {{$
- \sum_i a_i^2
- =
- 1
- }}$
-
-Note: no matter how many lines are used in the text file, the HTML will
-compress it to one line only.
-
-Block environment is similar to block display, but is able to use specific
-LaTeX environments, such as 'align'. The syntax is the same as for block
-display, except for the first line which is {{$%environment%.
-E.g.:
- {{$%align%
- \sum_i a_i^2 &= 1 + 1 \\
- &= 2.
- }}$
-
-Similar compression rules for the HTML page hold (as MathJax interprets the
-LaTeX code).
-
-Note: the highlighting in Vim is automatic. For the rendering in HTML, you
-have two alternative options:
-
-1. installing MathJax locally (Recommended: faster, no internet required).
-Choose a folder on your hard drive and save MathJax in it. Then add to your
-HTML template the following line:
-
-<script type="text/javascript" src="<mathjax_folder>/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
-where <mathjax_folder> is the folder on your HD, as a relative path to the
-template folder. For instance, a sensible folder structure could be:
-
-- wiki
- - text
- - html
- - templates
- - mathjax
-
-In this case, <mathjax_folder> would be "../mathjax" (without quotes).
-
-2. Loading MathJax from a CDN-server (needs internet connection).
-Add to your HTML template the following line:
-
-<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/config/TeX-AMS-MML_HTMLorMML.js"></script>
-
-
-------------------------------------------------------------------------------
-5.9. Blockquotes *vimwiki-syntax-blockquotes*
-
-Text which starts with 4 or more spaces is a blockquote.
-
- This would be a blockquote in Vimwiki. It is not highlighted in Vim but
- could be styled by CSS in HTML. Blockquotes are usually used to quote a
- long piece of text from another source.
-
-
-------------------------------------------------------------------------------
-5.10. Comments *vimwiki-syntax-comments*
-
-A line that starts with %% is a comment.
-E.g.: >
- %% this text would not be in HTML
-<
-
-------------------------------------------------------------------------------
-5.11. Horizontal line *vimwiki-syntax-hr*
-
-4 or more dashes at the start of the line is a horizontal line (<hr />): >
- ----
-<
-
-------------------------------------------------------------------------------
-5.12. Tags *vimwiki-syntax-tags*
-
-You can tag a wiki file, a header or an arbitrary place in a wiki file. Then,
-you can use Vim's built-in tag search functionality (see |tagsrch.txt|) or
-Vimwiki's tag related commands to quickly jump to all occurrences of the tag.
-
-A tag is a sequence of non-space characters between two colons: >
- :tag-example:
-<
-It is allowed to concatenate multiple tags in one line: >
- :tag-one:tag-two:
-<
-If placed in the first two lines of a file, the whole file is tagged. If
-placed under a header, within the 2 lines below it, the header is then tagged
-with this tag, and the tag search commands will jump to this specific header.
-Otherwise, the tag stands of its own and the search command jumps directly to
-it.
-
-Typing tags can be simplified by using Vim's omni completion (see
-|compl-omni|) like so: >
- :ind<C-X><C-O>
-which opens up a popup menu with all tags defined in the wiki starting with
-"ind".
-
-Tags are also treated as |vimwiki-anchors| (similar to bold text).
-
- *vimwiki-build-tags*
-Note that the tag search/jump/completion commands need certain metadata saved
-in the wiki folder. This metadata file can be manually updated by running
-|:VimwikiRebuildTags|. When the option |vimwiki-option-auto_tags| is enabled,
-the tags metadata will be auto-updated on each page save.
-
-
-Tags-related commands and options:
- * |:VimwikiRebuildTags|
- * |:VimwikiGenerateTags|
- * |:VimwikiSearchTags|
- * |vimwiki-option-auto_tags|
-
-
-==============================================================================
-6. Folding/Outline *vimwiki-folding*
-
-Vimwiki can fold or outline sections using headers and preformatted blocks.
-Alternatively, one can fold list subitems instead. Folding is not enabled
-by default, and requires the |g:vimwiki_folding| variable to be set.
-
-Example for list folding with |g:vimwiki_folding| set to 'list':
-
-= My current task =
-* [ ] Do stuff 1
- * [ ] Do substuff 1.1
- * [ ] Do substuff 1.2
- * [ ] Do substuff 1.2.1
- * [ ] Do substuff 1.2.2
- * [ ] Do substuff 1.3
-* [ ] Do stuff 2
-* [ ] Do stuff 3
-
-Hit |zM| :
-= My current task =
-* [ ] Do stuff 1 [6] --------------------------------------~
-* [ ] Do stuff 2
-* [ ] Do stuff 3
-
-Hit |zr| :
-= My current task =
-* [ ] Do stuff 1
- * [ ] Do substuff 1.1
- * [ ] Do substuff 1.2 [3] -------------------------------~
- * [ ] Do substuff 1.3
-* [ ] Do stuff 2
-* [ ] Do stuff 3
-
-Hit |zr| one more time :
-= My current task =
-* [ ] Do stuff 1
- * [ ] Do substuff 1.1
- * [ ] Do substuff 1.2
- * [ ] Do substuff 1.2.1
- * [ ] Do substuff 1.2.2
- * [ ] Do substuff 1.3
-* [ ] Do stuff 2
-* [ ] Do stuff 3
-
-Note: If you use the default Vimwiki syntax, folding on list items will work
-properly only if all of them are indented using the current 'shiftwidth'.
-For Markdown and MediaWiki syntax, * or # should be in the first column.
-
-To turn folding on/off check |g:vimwiki_folding|.
-
-
-==============================================================================
-7. Placeholders *vimwiki-placeholders*
-
-------------------------------------------------------------------------------
-%title Title of the page *vimwiki-title*
-
-When you htmlize your wiki page, the default title is the filename of the
-page. Place >
-
-%title My books
-
-into your wiki page if you want another title.
-
-
-------------------------------------------------------------------------------
-%nohtml *vimwiki-nohtml*
-
-If you do not want a wiki page to be converted to HTML, place:
-
-%nohtml
-
-into it.
-
-
-------------------------------------------------------------------------------
-%template *vimwiki-template*
-
-To apply a concrete HTML template to a wiki page, place:
-
-%template name
-
-into it.
-
-See |vimwiki-option-template_path| for details.
-
-------------------------------------------------------------------------------
-%date *vimwiki-date*
-
-The date of the wiki page. The value can be used in the HTML template, see
-|vimwiki-option-template_path| for details.
-
-%date 2017-07-08
-%date
-
-If you omit the date after the placeholder, the date of the HTML conversion is
-used.
-
-
-==============================================================================
-8. Lists *vimwiki-lists*
-
-While writing lists, the keys <CR>, o and O insert new bullets or numbers as
-you would expect it. A new bullet/number is inserted if and only if the cursor
-is in a list item. To make a list item with more than one line, press <S-CR>
-or press <CR> and <C-L><C-M>.
-Note that the mapping <S-CR> is not available in all terminals.
-
-Furthermore, <CR> and <S-CR> behave differently when the cursor is behind an
-empty list item. See the table below.
-
-You can configure the behavior of <CR> and of <S-CR> like this: >
- inoremap <CR> <Esc>:VimwikiReturn 1 5<CR>
- inoremap <S-CR> <Esc>:VimwikiReturn 2 2<CR>
-
-The first argument of the command :VimwikiReturn is a number that specifies
-when to insert a new bullet/number and when not, depending on whether the
-cursor is in a list item or in a normal line: >
-
- Number │ Before │ After
- ======================================
- 1 │ 1. item| │ 1. item
- │ │ 2. |
- │–––––––––––––––––––––––––––––– ← default for <CR>
- │ 1. item │ 1. item
- │ continue| │ continue
- │ │ |
- ======================================
- 2 │ 1. item| │ 1. item
- │ │ |
- │–––––––––––––––––––––––––––––– ← default for <S-CR>
- │ 1. item │ 1. item
- │ continue| │ continue
- │ │ 2. |
- ======================================
- 3 │ 1. item| │ 1. item
- │ │ 2. |
- │––––––––––––––––––––––––––––––
- │ 1. item │ 1. item
- │ continue| │ continue
- │ │ 2. |
- ======================================
- 4 │ 1. item| │ 1. item
- │ │ |
- │––––––––––––––––––––––––––––––
- │ 1. item │ 1. item
- │ continue| │ continue
- │ │ |
-<
-
-The second argument is a number that specifies what should happen when you
-press <CR> or <S-CR> behind an empty list item. There are no less than five
-possibilities:
->
- Number │ Before │ After
- ======================================
- 1 │ 1. | │ 1.
- │ │ 2. |
- ======================================
- 2 │ 1. | │ ← default for <S-CR>
- │ │ 1. |
- ======================================
- 3 │ 1. | │ |
- │ │
- ======================================
- 4 │ 1. | │
- │ │ |
- ======================================
- 5 │ 1. | │ 1. |
- │ │
- │–––––––––––––––––––––––––––––– ← default for <CR>
- │ 1. | │ |
- │ │
-<
-
-
- *vimwiki-list-manipulation*
-The level of a list item is determined by its indentation (default and
-Markdown syntax) or by the number of list symbols (MediaWiki syntax).
-
-Use gll and glh in normal mode to increase or decrease the level of a list
-item. The symbols are adjusted automatically to the list items around it.
-Use gLl and gLh to increase or decrease the level of a list item plus all
-list items of lower level below it, that is, all child items.
-
-Use <C-T> and <C-D> to change the level of a list item in insert mode.
-
-See |vimwiki_gll|, |vimwiki_gLl|, |vimwiki_glh|, |vimwiki_gLh|,
-|vimwiki_i_<C-T>|, |vimwiki_i_<C-D>|
-
-
-Use gl followed by the desired symbol to change the symbol of a list item or
-create one. Type gL and the symbol to change all items of the current list.
-For default syntax, the following types are available: >
- - hyphen
- * asterisk
- # hash
- 1. number with period
- 1) number with parenthesis
- a) lower-case letter with parenthesis
- A) upper-case letter with parenthesis
- i) lower-case Roman numerals with parenthesis
- I) upper-case Roman numerals with parenthesis
-
-Markdown syntax has the following types: >
- - hyphen
- * asterisk
- + plus
- 1. number with period
-
-MediaWiki syntax only has: >
- * asterisk
- # hash
-
-In insert mode, use the keys <C-L><C-J> and <C-L><C-K> to switch between
-symbols. For convenience, only the commonly used symbols can be reached
-through these keys for default syntax.
-
-Note that such a list: a) b) c) … only goes up to zz), to avoid confusion with
-normal text followed by a parenthesis.
-Roman numerals go up to MMMM) and numbers up to 2147483647. or
-9223372036854775807. depending if your Vim is 32 or 64 bit.
-
-Also note that you can, of course, mix different list symbols in one list, but
-if you have the strange idea of putting a list with Romanian numerals right
-after a list using letters or vice versa, Vimwiki will get confused because
-it cannot distinguish which is which (at least if the types are both upper
-case or both lower case).
-
-See |vimwiki_glstar|, |vimwiki_gl#| |vimwiki_gl-|, |vimwiki_gl-|,
-|vimwiki_gl1|, |vimwiki_gla|, |vimwiki_glA|, |vimwiki_gli|, |vimwiki_glI|
-
-
-Use glr and gLr if the numbers of a numbered list are mixed up. See
-|vimwiki_glr| and |vimwiki_gLr|.
-
-
-------------------------------------------------------------------------------
-Todo lists *vimwiki-todo-lists*
-
-You can have todo lists -- lists of items you can check/uncheck.
-
-Consider the following example: >
- = Toggleable list of todo items =
- * [X] Toggle list item on/off.
- * [X] Simple toggling between [ ] and [X].
- * [X] All list's subitems should be toggled on/off appropriately.
- * [X] Toggle child subitems only if current line is list item
- * [X] Parent list item should be toggled depending on it's child items.
- * [X] Make numbered list items toggleable too
- * [X] Add highlighting to list item boxes
- * [X] Add [ ] to the next list item created with o, O and <CR>.
-
-Pressing <C-Space> on the first list item will toggle it and all of its child
-items: >
- = Toggleable list of todo items =
- * [ ] Toggle list item on/off.
- * [ ] Simple toggling between [ ] and [X].
- * [ ] All of a list's subitems should be toggled on/off appropriately.
- * [ ] Toggle child subitems only if the current line is a list item.
- * [ ] Parent list item should be toggled depending on their child items.
- * [X] Make numbered list items toggleable too.
- * [X] Add highlighting to list item boxes.
- * [X] Add [ ] to the next list item created using o, O or <CR>.
-
-Pressing <C-Space> on the third list item will toggle it and adjust all of its
-parent items: >
- = Toggleable list of todo items =
- * [.] Toggle list item on/off.
- * [ ] Simple toggling between [ ] and [X].
- * [X] All of a list's subitems should be toggled on/off appropriately.
- * [ ] Toggle child subitems only if current line is list item.
- * [ ] Parent list item should be toggled depending on it's child items.
- * [ ] Make numbered list items toggleable too.
- * [ ] Add highlighting to list item boxes.
- * [ ] Add [ ] to the next list item created using o, O or <CR>.
-
-Parent items should change when their child items change. If not, use
-|vimwiki_glr|. The symbol between [ ] depends on the percentage of toggled
-child items (see also |g:vimwiki_listsyms|): >
- [ ] -- 0%
- [.] -- 1-33%
- [o] -- 34-66%
- [O] -- 67-99%
- [X] -- 100%
-
-You can use |vimwiki_gln| and |vimwiki_glp| to change the "done" status of a
-checkbox without a childitem.
-
-It is possible to toggle several list items using visual mode. But note that
-instead of toggling every item individually, all items get checked if the
-first item is unchecked and all items get unchecked if the first item is
-checked.
-
-Use gl<Space> (see |vimwiki_gl<Space>|) to remove a single checkbox and
-gL<Space> (see |vimwiki_gL<Space>|) to remove all checkboxes of the list the
-cursor is in.
-
-You can mark an item as rejected ("won't do") with
-|vimwiki_glx|. A rejected item will not influence the status of its parents.
-
-
-==============================================================================
-9. Tables *vimwiki-tables*
-
-Use the :VimwikiTable command to create a default table with 5 columns and 2
-rows: >
-
- | | | | | |
- |---|---|---|---|---|
- | | | | | |
-<
-
-Tables are auto-formattable. Let's add some text into first cell: >
-
- | First Name | | | | |
- |---|---|---|---|---|
- | | | | | |
-<
-
-Whenever you press <TAB>, <CR> or leave Insert mode, the table is formatted: >
-
- | First Name | | | | |
- |------------|---|---|---|---|
- | | | | | |
-<
-
-You can easily create nice-looking text tables, just press <TAB> and enter new
-values: >
-
- | First Name | Last Name | Age | City | e-mail |
- |------------|------------|-----|----------|----------------------|
- | Vladislav | Pokrishkin | 31 | Moscow | vlad_pok@smail.com |
- | James | Esfandiary | 27 | Istanbul | esfandiary@tmail.com |
-<
-
-To indent table indent the first row. Then format it with 'gqq'.
-
-
-==============================================================================
-10. Diary *vimwiki-diary*
-
-The diary helps you make daily notes. You can easily add information into
-Vimwiki that should be sorted out later. Just hit <Leader>w<Leader>w to create
-a new note for today with a name based on the current date.
-
-To generate the diary section with all available links one can use
-|:VimwikiDiaryGenerateLinks| or <Leader>w<Leader>i .
-
-Note: it works only for diary index file.
-
-Example of diary section: >
- = Diary =
-
- == 2011 ==
-
- === December ===
- * [[2011-12-09]]
- * [[2011-12-08]]
-
-
-See |g:vimwiki_diary_months| if you would like to rename months.
-
-
-------------------------------------------------------------------------------
-Calendar integration *vimwiki-calendar*
-
-If you have Calendar.vim installed you can use it to create diary notes.
-Just open calendar with :Calendar and tap <Enter> on the date. A wiki file
-will be created in the default wiki's diary.
-
-Get it from http://www.vim.org/scripts/script.php?script_id=52
-
-See |g:vimwiki_use_calendar| option to turn it off/on.
-
-
-==============================================================================
-12. Anchors *vimwiki-anchors*
-
-Every header, tag, and bold text can be used as an anchor. To jump to it, use
-a wikilink of the form >
- [[file#anchor]]
-
-For example, consider the following file "Todo.wiki": >
- = My tasks =
- :todo-lists:
- == Home ==
- - [ ] bathe my dog
- == Work ==
- - [ ] beg for *pay rise*
- == Knitting club ==
- === Knitting projects ===
- - [ ] a *funny pig*
- - [ ] a *scary dog*
-
-Then, to jump from your index.wiki directly to your knitting projects, use: >
- [[Todo#Knitting projects]]
-
-Or, to jump to an individual project, use this link: >
- [[Todo#funny pig]]
-
-Or, to jump to a tag, use this link: >
- [[Todo#todo-lists]]
-
-If there are multiple instances of an anchor, you can use the long form which
-consists of the complete header hierarchy, separated by '#': >
- [[Todo#My tasks#Knitting club#Knitting projects#scary dog]]
-
-If you don't feel like typing the whole stuff, type just [[Todo# and then
-|i_CTRL-X_CTRL-O| to start the omni completion of anchors.
-
-For jumping inside a single file, you can omit the file in the link: >
- [[#pay rise]]
-
-
-------------------------------------------------------------------------------
-Table of Contents *vimwiki-toc* *vimwiki-table-of-contents*
-
-You can create a "table of contents" at the top of your wiki file.
-The commando |:VimwikiTOC| creates the magic header >
- = Contents =
-in the current file and below it a list of all the headers in this file as
-links, so you can directly jump to specific parts of the file.
-
-For the indentation of the list, the value of |vimwiki-option-list_margin| is
-used.
-
-If you don't want the TOC to sit in the very first line, e.g. because you have
-a modeline there, put the magic header in the second or third line and run
-:VimwikiTOC to update the TOC.
-
-If English is not your preferred language, set the option
-|g:vimwiki_toc_header| to your favorite translation.
-
-If you want to keep the TOC up to date automatically, use the option
-|vimwiki-option-auto_toc|.
-
-
-------------------------------------------------------------------------------
-Tagbar integration *vimwiki-tagbar*
-
-As an alternative to the Table of Contents, you can use the Tagbar plugin
-(http://majutsushi.github.io/tagbar/) to show the headers of your wiki files
-in a side pane.
-Download the Python script from
-https://raw.githubusercontent.com/vimwiki/utils/master/vwtags.py and follow
-the instructions in it.
-
-
-==============================================================================
-12. Options *vimwiki-options*
-
-There are global options and local (per-wiki) options available to tune
-Vimwiki.
-
-Global options are configured via global variables. For a complete list of
-them, see |vimwiki-global-options|.
-
-Local options for multiple independent wikis are stored in a single global
-variable |g:vimwiki_list|. The per-wiki options can be registered in advance,
-as described in |vimwiki-register-wiki|, or may be registered on the fly as
-described in |vimwiki-temporary-wiki|. For a list of per-wiki options, see
-|vimwiki-local-options|.
-
-
-------------------------------------------------------------------------------
-12.1 Registered Wiki *g:vimwiki_list* *vimwiki-register-wiki*
-
-One or more wikis can be registered using the |g:vimwiki_list| variable.
-
-Each item in |g:vimwiki_list| is a |Dictionary| that holds all customizations
-available for a distinct wiki. The options dictionary has the form: >
- {'option1': 'value1', 'option2': 'value2', ...}
-
-Consider the following: >
- let g:vimwiki_list = [{'path': '~/my_site/', 'path_html': '~/public_html/'}]
-
-This defines one wiki located at ~/my_site/. When converted to HTML, the
-produced HTML files go to ~/public_html/ .
-
-Another example: >
- let g:vimwiki_list = [{'path': '~/my_site/', 'path_html': '~/public_html/'},
- \ {'path': '~/my_docs/', 'ext': '.mdox'}]
-
-defines two wikis: the first as before, and the second one located in
-~/my_docs/, with files that have the .mdox extension.
-
-An empty |Dictionary| in g:vimwiki_list is the wiki with default options: >
- let g:vimwiki_list = [{},
- \ {'path': '~/my_docs/', 'ext': '.mdox'}]
-
-For clarity, in your .vimrc file you can define wiki options using separate
-|Dictionary| variables and subsequently compose them into |g:vimwiki_list|. >
- let wiki_1 = {}
- let wiki_1.path = '~/my_docs/'
- let wiki_1.html_template = '~/public_html/template.tpl'
- let wiki_1.nested_syntaxes = {'python': 'python', 'c++': 'cpp'}
-
- let wiki_2 = {}
- let wiki_2.path = '~/project_docs/'
- let wiki_2.index = 'main'
-
- let g:vimwiki_list = [wiki_1, wiki_2]
-<
-
-
-------------------------------------------------------------------------------
-12.2 Temporary Wiki *vimwiki-temporary-wiki*
-
-
-The creation of temporary wikis allows you to create a wiki on the fly.
-
-If a file with a registered wiki extension (see |vimwiki-register-extension|)
-is opened in a directory that: 1) is not listed in |g:vimwiki_list|, and 2) is
-not a subdirectory of any such directory, then a temporary wiki is created and
-appended to the list of configured wikis in |g:vimwiki_list|.
-
-In addition to Vimwiki's editing functionality, the temporary wiki enables: 1)
-wiki-linking to other files in the same subtree, 2) highlighting of existing
-wiki pages when |vimwiki-option-maxhi| is activated, and 3) HTML generation to
-|vimwiki-option-path_html|.
-
-Temporary wikis are configured using default |vimwiki-local-options|, except
-for the path, extension, and syntax options. The path and extension are set
-using the file's location and extension. The syntax is set to Vimwiki's
-default unless another syntax is registered via |vimwiki-register-extension|.
-
-Use |g:vimwiki_global_ext| to turn off creation of temporary wikis.
-
-NOTE: Vimwiki assumes that the locations of distinct wikis do not overlap.
-
-
-------------------------------------------------------------------------------
-12.3 Per-Wiki Options *vimwiki-local-options*
-
-
-*vimwiki-option-path*
-------------------------------------------------------------------------------
-Key Default value~
-path ~/vimwiki/
-
-Description~
-Wiki files location: >
- let g:vimwiki_list = [{'path': '~/my_site/'}]
-<
-
-*vimwiki-option-path_html*
-------------------------------------------------------------------------------
-Key Default value~
-path_html ''
-
-Description~
-Location of HTML files converted from wiki files: >
- let g:vimwiki_list = [{'path': '~/my_site/',
- \ 'path_html': '~/html_site/'}]
-
-If path_html is an empty string, the location is derived from
-|vimwiki-option-path| by adding '_html'; i.e. for: >
- let g:vimwiki_list = [{'path': '~/okidoki/'}]
-
-path_html will be set to '~/okidoki_html/'.
-
-
-*vimwiki-option-auto_export*
-------------------------------------------------------------------------------
-Key Default value Values~
-auto_export 0 0, 1
-
-Description~
-Set this option to 1 to automatically generate the HTML file when the
-corresponding wiki page is saved: >
- let g:vimwiki_list = [{'path': '~/my_site/', 'auto_export': 1}]
-
-This will keep your HTML files up to date.
-
-
-*vimwiki-option-auto_toc*
-------------------------------------------------------------------------------
-Key Default value Values~
-auto_toc 0 0, 1
-
-Description~
-Set this option to 1 to automatically update the table of contents when the
-current wiki page is saved: >
- let g:vimwiki_list = [{'path': '~/my_site/', 'auto_toc': 1}]
-
-
-*vimwiki-option-index*
-------------------------------------------------------------------------------
-Key Default value~
-index index
-
-Description~
-Name of wiki index file: >
- let g:vimwiki_list = [{'path': '~/my_site/', 'index': 'main'}]
-
-NOTE: Do not include the extension.
-
-
-*vimwiki-option-ext*
-------------------------------------------------------------------------------
-Key Default value~
-ext .wiki
-
-Description~
-Extension of wiki files: >
- let g:vimwiki_list = [{'path': '~/my_site/',
- \ 'index': 'main', 'ext': '.document'}]
-
-<
-*vimwiki-option-syntax*
-------------------------------------------------------------------------------
-Key Default value Values~
-syntax default default, markdown, or media
-
-Description~
-Wiki syntax. You can use different markup languages (currently: Vimwiki's
-default, Markdown, and MediaWiki), but only Vimwiki's default markup will be
-converted to HTML at the moment.
-
-To use Markdown's wiki markup: >
- let g:vimwiki_list = [{'path': '~/my_site/',
- \ 'syntax': 'markdown', 'ext': '.md'}]
-<
-
-*vimwiki-option-template_path*
-------------------------------------------------------------------------------
-Key Default value~
-template_path ~/vimwiki/templates/
-
-Description~
-Setup path for HTML templates: >
- let g:vimwiki_list = [{'path': '~/my_site/',
- \ 'template_path': '~/public_html/templates/',
- \ 'template_default': 'def_template',
- \ 'template_ext': '.html'}]
-
-There could be a bunch of templates: >
- def_template.html
- index.html
- bio.html
- person.html
-etc.
-
-Each template could look like: >
- <html>
- <head>
- <link rel="Stylesheet" type="text/css" href="%root_path%style.css" />
- <title>%title%</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- </head>
- <body>
- <div class="content">
- %content%
- </div>
- <p><small>Page created on %date%</small></p>
- </body>
- </html>
-
-where
- %title% is replaced by a wiki page name or by a |vimwiki-title|
- %date% is replaced with the current date or by |vimwiki-date|
- %root_path% is replaced by a count of ../ for pages buried in subdirs:
- if you have wikilink [[dir1/dir2/dir3/my page in a subdir]] then
- %root_path% is replaced by '../../../'.
-
- %content% is replaced by a wiki file content.
-
-
-The default template will be applied to all wiki pages unless a page specifies
-a template. Consider you have wiki page named 'Maxim.wiki' and you want apply
-'person.html' template to it. Just add: >
- %template person
-to that page.
-
-
-*vimwiki-option-template_default*
-------------------------------------------------------------------------------
-Key Default value~
-template_default default
-
-Description~
-Setup default template name (without extension).
-
-See |vimwiki-option-template_path| for details.
-
-
-*vimwiki-option-template_ext*
-------------------------------------------------------------------------------
-Key Default value~
-template_ext .tpl
-
-Description~
-Setup template filename extension.
-
-See |vimwiki-option-template_path| for details.
-
-
-*vimwiki-option-css_name*
-------------------------------------------------------------------------------
-Key Default value~
-css_name style.css
-
-Description~
-Setup CSS file name: >
- let g:vimwiki_list = [{'path': '~/my_pages/',
- \ 'css_name': 'main.css'}]
-<
-or even >
- let g:vimwiki_list = [{'path': '~/my_pages/',
- \ 'css_name': 'css/main.css'}]
-<
-Vimwiki comes with a default CSS file "style.css".
-
-
-*vimwiki-option-maxhi*
-------------------------------------------------------------------------------
-Key Default value Values~
-maxhi 0 0, 1
-
-Description~
-If on, wiki links to non-existent wiki files are highlighted. However, it can
-be quite slow. If you still want it, set maxhi to 1: >
- let g:vimwiki_list = [{'path': '~/my_site/', 'maxhi': 1}]
-
-
-*vimwiki-option-nested_syntaxes*
-------------------------------------------------------------------------------
-Key Default value Values~
-nested_syntaxes {} pairs of highlight keyword and Vim filetype
-
-Description~
-You can configure preformatted text to be highlighted with any syntax
-available for Vim.
-For example the following setup in your vimrc: >
- let wiki = {}
- let wiki.path = '~/my_wiki/'
- let wiki.nested_syntaxes = {'python': 'python', 'c++': 'cpp'}
- let g:vimwiki_list = [wiki]
-
-would give you Python and C++ highlighting in: >
- {{{class="brush: python"
- for i in range(1, 5):
- print(i)
- }}}
-
- {{{class="brush: c++"
- #include "helloworld.h"
- int helloworld()
- {
- printf("hello world");
- }
- }}}
-
-or in: >
- {{{c++
- #include "helloworld.h"
- int helloworld()
- {
- printf("hello world");
- }
- }}}
-
- {{{python
- for i in range(1, 5):
- print(i)
- }}}
-
-
-*vimwiki-option-automatic_nested_syntaxes*
-------------------------------------------------------------------------------
-Key Default value~
-automatic_nested_syntaxes 1
-
-Description~
-If set, the nested syntaxes (|vimwiki-option-nested_syntaxes|) are
-automatically derived when opening a buffer.
-Just write your preformatted text in your file like this >
- {{{xxx
- my preformatted text
- }}}
-
-where xxx is a filetype which is known to Vim. For example, for C++
-highlighting, use "cpp" (not "c++"). For a list of known filetypes, type
-":setf " and hit Ctrl+d.
-
-Note that you may have to reload the file (|:edit|) to see the highlight.
-
-Since every file is scanned for the markers of preformatted text when it is
-opened, it can be slow when you have huge files. In this case, set this option
-to 0.
-
-
-*vimwiki-option-diary_rel_path*
-------------------------------------------------------------------------------
-Key Default value~
-diary_rel_path diary/
-
-Description~
-The path to the diary wiki files, relative to |vimwiki-option-path|.
-
-
-*vimwiki-option-diary_index*
-------------------------------------------------------------------------------
-Key Default value~
-diary_index diary
-
-Description~
-Name of wiki-file that holds all links to dated wiki files.
-
-
-*vimwiki-option-diary_header*
-------------------------------------------------------------------------------
-Key Default value~
-diary_header Diary
-
-Description~
-Name of the header in |vimwiki-option-diary_index| where links to dated
-wiki-files are located.
-
-
-*vimwiki-option-diary_sort*
-------------------------------------------------------------------------------
-Key Default value Values~
-diary_sort desc desc, asc
-
-Description~
-Sort links in a diary index page.
-
-
-*vimwiki-option-custom_wiki2html*
-------------------------------------------------------------------------------
-Key Default value~
-custom_wiki2html ''
-
-Description~
-The full path to an user-provided script that converts a wiki page to HTML.
-Vimwiki calls the provided |vimwiki-option-custom_wiki2html| script from the
-command-line, using |:!| invocation.
-
-The following arguments, in this order, are passed to the script:
-
-1. force : [0/1] overwrite an existing file
-2. syntax : the syntax chosen for this wiki
-3. extension : the file extension for this wiki
-4. output_dir : the full path of the output directory
-5. input_file : the full path of the wiki page
-6. css_file : the full path of the css file for this wiki
-7. template_path : the full path to the wiki's templates
-8. template_default : the default template name
-9. template_ext : the extension of template files
-10. root_path : a count of ../ for pages buried in subdirs
- For example, if you have wikilink [[dir1/dir2/dir3/my page in a subdir]]
- then this argument is '../../../'.
-11. custom_args : custom arguments that will be passed to the conversion
- (can be defined in g:vimwiki_list as 'custom_wiki2html_args' parameter,
- see |vimwiki-option-custom_wiki2html_args|)
- script.
-
-Options 7-11 are experimental and may change in the future. If any of these
-parameters is empty, a hyphen "-" is passed to the script in its place.
-
-For an example and further instructions, refer to the following script:
-
- $VIMHOME/autoload/vimwiki/customwiki2html.sh
-
-An alternative converter was developed by Jason6Anderson, and can
-be located at https://github.com/vimwiki-backup/vimwiki/issues/384
-
-To use the internal wiki2html converter, use an empty string (the default).
-
-
-vimwiki-option-custom_wiki2html_args
------------------------------------------------------------------------------
-Key Default value~
-custom_wiki2html_args ''
-
-Description
-If a custom script is called with |vimwiki-option-custom_wiki2html|, additional
-parameters can be passed by setting them using 'custom_wiki2html_args' in
-|g:vimwiki_list|.
-
-
-*vimwiki-option-list_margin*
-------------------------------------------------------------------------------
-Key Default value~
-list_margin -1
-
-Description~
-Width of left-hand margin for lists. When negative, the current 'shiftwidth'
-is used. This affects the appearance of the generated links (see
-|:VimwikiGenerateLinks|), the Table of contents (|vimwiki-toc|) and the
-behavior of the list manipulation commands |:VimwikiListChangeLevel| and the
-local mappings |vimwiki_glstar|, |vimwiki_gl#| |vimwiki_gl-|, |vimwiki_gl-|,
-|vimwiki_gl1|, |vimwiki_gla|, |vimwiki_glA|, |vimwiki_gli|, |vimwiki_glI| and
-|vimwiki_i_<C-L>_<C-M>|.
-
-Note: if you use Markdown or MediaWiki syntax, you probably would like to set
-this option to 0, because every indented line is considered verbatim text.
-
-
-*vimwiki-option-auto_tags*
-------------------------------------------------------------------------------
-Key Default value Values~
-auto_tags 0 0, 1
-
-Description~
-Set this option to 1 to automatically update the tags metadata when the
-current wiki page is saved: >
- let g:vimwiki_list = [{'path': '~/my_site/', 'auto_tags': 1}]
-
-
-------------------------------------------------------------------------------
-12.4 Global Options *vimwiki-global-options*
-
-
-Global options are configured using the following pattern: >
-
- let g:option_name = option_value
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_hl_headers*
-
-Highlight headers with =Reddish=, ==Greenish==, ===Blueish=== colors.
-
-Value Description~
-1 Use VimwikiHeader1-VimwikiHeader6 group colors to highlight
- different header levels.
-0 Use |hl-Title| color for headers.
-Default: 0
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_hl_cb_checked*
-
-Highlight checked list items with a special color:
-
- * [X] the whole line can be highlighted with the option set to 1.
- * this line is highlighted as well with the option set to 2
- * [ ] this line is never highlighted
-
-Value Description~
-0 Don't highlight anything.
-1 Highlight checked [X] list item with |group-name| "Comment".
-2 Highlight checked [X] list item and all its child items.
-
-Default: 0
-
-Note: Option 2 does not work perfectly. Specifically, it might break if the
-list item contains preformatted text or if you mix tabs and spaces for
-indenting. Also, indented headers can be highlighted erroneously.
-Furthermore, if your list is long, Vim's highlight can break. To solve this,
-consider putting >
- au BufEnter *.wiki :syntax sync fromstart
-in your .vimrc
-
-------------------------------------------------------------------------------
-*g:vimwiki_global_ext*
-
-Control the creation of |vimwiki-temporary-wiki|s.
-
-If a file with a registered extension (see |vimwiki-register-extension|) is
-opened in a directory that is: 1) not listed in |g:vimwiki_list|, and 2) not a
-subdirectory of any such directory, then:
-
-Value Description~
-1 make temporary wiki and append it to |g:vimwiki_list|.
-0 don't make temporary wiki in that dir.
-
-If your preferred wiki extension is .txt then you can >
- let g:vimwiki_global_ext = 0
-to restrict Vimwiki's operation to only those paths listed in g:vimwiki_list.
-Other text files wouldn't be treated as wiki pages.
-
-Default: 1
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_ext2syntax* *vimwiki-register-extension*
-
-A many-to-one mapping between file extensions and syntaxes whose purpose is to
-register the extensions with Vimwiki.
-
-E.g.: >
- let g:vimwiki_ext2syntax = {'.md': 'markdown',
- \ '.mkd': 'markdown',
- \ '.wiki': 'media'}
-
-An extension that is registered with Vimwiki can trigger creation of a
-|vimwiki-temporary-wiki| with the associated syntax. File extensions used in
-|g:vimwiki_list| are automatically registered with Vimwiki using the default
-syntax.
-
-Default: {}
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_menu*
-
-Create a menu in the menu bar of GVim, where you can open the available wikis.
-
-Value Description~
-'' No menu
-'Vimwiki' Top level menu "Vimwiki"
-'Plugin.Vimwiki' "Vimwiki" submenu of top level menu "Plugin"
-etc.
-
-Default: 'Vimwiki'
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_listsyms*
-
-String of at least two symbols to show the progression of todo list items.
-Default value is ' .oOX'.
-
-The first char is for 0% done items.
-The last is for 100% done items.
-
-You can set it to some more fancy symbols like this:
->
- let g:vimwiki_listsyms = '✗○◐●✓'
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_listsym_rejected*
-
-Character that is used to show that an item of a todo list will not be done.
-Default value is '-'.
-
-The character used here must not be part of |g:vimwiki_listsyms|.
-
-You can set it to a more fancy symbol like this:
->
- let g:vimwiki_listsym_rejected = '✗'
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_use_mouse*
-
-Use local mouse mappings from |vimwiki-local-mappings|.
-
-Value Description~
-0 Do not use mouse mappings.
-1 Use mouse mappings.
-
-Default: 0
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_folding*
-
-Enable/disable Vimwiki's folding (outline) functionality. Folding in Vimwiki
-can uses either the 'expr' or the 'syntax' |foldmethod| of Vim.
-
-Value Description~
-'' Disable folding
-'expr' Folding based on expression (folds sections and code blocks)
-'syntax' Folding based on syntax (folds sections; slower than 'expr')
-'list' Folding based on expression (folds list subitems; much slower)
-'custom' Leave the folding settings as they are (e.g. set by another
- plugin)
-
-Default: ''
-
-Limitations:
- - Opening very large files may be slow when folding is enabled.
- - 'list' folding is particularly slow with larger files.
- - 'list' is intended to work with lists nicely indented with 'shiftwidth'.
- - 'syntax' is only available for the default syntax so far.
-
-The options above can be suffixed with ':quick' (e.g.: 'expr:quick') in order
-to use some workarounds to make folds work faster.
-
-------------------------------------------------------------------------------
-*g:vimwiki_list_ignore_newline*
-
-This is HTML related.
-Convert newlines to <br />s in multiline list items.
-
-Value Description~
-0 Newlines in a list item are converted to <br />s.
-1 Ignore newlines.
-
-Default: 1
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_text_ignore_newline*
-
-This is HTML related.
-Convert newlines to <br />s in text.
-
-Value Description~
-0 Newlines in text are converted to <br />s.
-1 Ignore newlines.
-
-Default: 1
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_use_calendar*
-
-Create new or open existing diary wiki-file for the date selected in Calendar.
-See |vimwiki-calendar|.
-
-Value Description~
-0 Do not use calendar.
-1 Use calendar.
-
-Default: 1
-
-
-------------------------------------------------------------------------------
-*VimwikiLinkHandler*
-
-A customizable link handler can be defined to override Vimwiki's behavior when
-opening links. Each recognized link, whether it is a wikilink, wiki-include
-link or a weblink, is first passed to |VimwikiLinkHandler| to see if it can be
-handled. The return value 1 indicates success.
-
-If the link is not handled successfully, the behavior of Vimwiki depends on
-the scheme. "wiki:", "diary:" or schemeless links are opened in Vim. "file:"
-and "local:" links are opened with a system default handler.
-
-You can redefine the VimwikiLinkHandler function in your .vimrc to do
-something else: >
-
- function! VimwikiLinkHandler(link)
- try
- let browser = 'C:\Program Files\Firefox\firefox.exe'
- execute '!start "'.browser.'" ' . a:link
- return 1
- catch
- echo "This can happen for a variety of reasons ..."
- endtry
- return 0
- endfunction
-
-A second example handles a new scheme, "vfile:", which behaves similar to
-"file:", but the files are always opened with Vim in a new tab: >
-
- function! VimwikiLinkHandler(link)
- " Use Vim to open external files with the 'vfile:' scheme. E.g.:
- " 1) [[vfile:~/Code/PythonProject/abc123.py]]
- " 2) [[vfile:./|Wiki Home]]
- let link = a:link
- if link =~# '^vfile:'
- let link = link[1:]
- else
- return 0
- endif
- let link_infos = vimwiki#base#resolve_link(link)
- if link_infos.filename == ''
- echomsg 'Vimwiki Error: Unable to resolve link!'
- return 0
- else
- exe 'tabnew ' . fnameescape(link_infos.filename)
- return 1
- endif
- endfunction
-
-------------------------------------------------------------------------------
-*VimwikiLinkConverter*
-
-This function can be overridden in your .vimrc to specify what a link looks
-like when converted to HTML. The parameters of the function are:
- - the link as a string
- - the full path to the wiki file where the link is in
- - the full path to the output HTML file
-It should return the HTML link if successful or an empty string '' otherwise.
-
-This example changes how relative links to external files using the "local:"
-scheme look like in HTML. Per default, they would become links relative to
-the HTML output directory. This function converts them to links relative to
-the wiki file, i.e. a link [[local:../document.pdf]] becomes
-<a href="../document.pdf">. Also, this function will copy document.pdf to the
-right place. >
-
- function! VimwikiLinkConverter(link, source_wiki_file, target_html_file)
- if a:link =~# '^local:'
- let link_infos = vimwiki#base#resolve_link(a:link)
- let html_link = vimwiki#path#relpath(
- \ fnamemodify(a:source_wiki_file, ':h'), link_infos.filename)
- let relative_link =
- \ fnamemodify(a:target_html_file, ':h') . '/' . html_link
- call system('cp ' . fnameescape(link_infos.filename) .
- \ ' ' . fnameescape(relative_link))
- return html_link
- endif
- return ''
- endfunction
-
-------------------------------------------------------------------------------
-*VimwikiWikiIncludeHandler*
-
-Vimwiki includes the content of a wiki-include URL as an image by default.
-
-A trial feature allows you to supply your own handler for wiki-include links.
-The handler should return the empty string when it does not recognize or
-cannot otherwise convert the link. A customized handler might look like this: >
-
- " Convert {{URL|#|ID}} -> URL#ID
- function! VimwikiWikiIncludeHandler(value)
- let str = a:value
-
- " complete URL
- let url_0 = matchstr(str, g:vimwiki_rxWikiInclMatchUrl)
- " URL parts
- let link_infos = vimwiki#base#resolve_link(url_0)
- let arg1 = matchstr(str, VimwikiWikiInclMatchArg(1))
- let arg2 = matchstr(str, VimwikiWikiInclMatchArg(2))
-
- if arg1 =~ '#'
- return link_infos.filename.'#'.arg2
- endif
-
- " Return the empty string when unable to process link
- return ''
- endfunction
-<
-
-------------------------------------------------------------------------------
-*g:vimwiki_table_mappings*
-
-Enable/disable table mappings for INSERT mode.
-
-Value Description~
-0 Disable table mappings.
-1 Enable table mappings.
-
-Default: 1
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_table_auto_fmt*
-
-Enable/disable table auto formatting after leaving INSERT mode.
-
-Value Description~
-0 Disable table auto formatting.
-1 Enable table auto formatting.
-
-Default: 1
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_w32_dir_enc*
-
-Convert directory name from current 'encoding' into 'g:vimwiki_w32_dir_enc'
-before it is created.
-
-If you have 'enc=utf-8' and set up >
- let g:vimwiki_w32_dir_enc = 'cp1251'
-<
-then following the next link with <CR>: >
- [[привет/мир]]
->
-would convert utf-8 'привет' to cp1251 and create directory with that name.
-
-Default: ''
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_CJK_length*
-
-Use a special method to calculate the correct length of the strings with
-double-wide characters (to align table cells properly).
-
-Value Description~
-0 Do not use it.
-1 Use it.
-
-Default: 0
-
-Note: Vim 7.3 has a new function |strdisplaywidth()|, so for users of an up to
-date Vim, this option is obsolete.
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_dir_link*
-
-This option is about what to do with links to directories, like
-[[directory/]], [[papers/]], etc.
-
-Value Description~
-'' Open 'directory/' using the standard netrw plugin.
-'index' Open 'directory/index.wiki', create if needed.
-'main' Open 'directory/main.wiki', create if needed.
-etc.
-
-Default: '' (empty string)
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_html_header_numbering*
-
-Set this option if you want headers to be auto-numbered in HTML.
-
-E.g.: >
- 1 Header1
- 1.1 Header2
- 1.2 Header2
- 1.2.1 Header3
- 1.2.2 Header3
- 1.3 Header2
- 2 Header1
- 3 Header1
-etc.
-
-Value Description~
-0 Header numbering is off.
-1 Header numbering is on. Headers are numbered starting from
- header level 1.
-2 Header numbering is on. Headers are numbered starting from
- header level 2.
-etc.
-
-Example when g:vimwiki_html_header_numbering = 2: >
- Header1
- 1 Header2
- 2 Header2
- 2.1 Header3
- 2.1.1 Header4
- 2.1.2 Header4
- 2.2 Header3
- 3 Header2
- 4 Header2
-etc.
-
-Default: 0
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_html_header_numbering_sym*
-
-Ending symbol for |g:vimwiki_html_header_numbering|.
-
-Value Description~
-'.' Dot will be added after a header's number.
-')' Closing bracket will be added after a header's number.
-etc.
-
-With
- let g:vimwiki_html_header_numbering_sym = '.'
-headers would look like: >
- 1. Header1
- 1.1. Header2
- 1.2. Header2
- 1.2.1. Header3
- 1.2.2. Header3
- 1.3. Header2
- 2. Header1
- 3. Header1
-
-
-Default: '' (empty)
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_valid_html_tags*
-
-Case-insensitive comma separated list of HTML tags that can be used in
-Vimwiki. When converting to HTML, these tags are left as they are, while
-every other tag is escaped.
-
-Default: 'b,i,s,u,sub,sup,kbd,br,hr'
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_user_htmls*
-
-Comma-separated list of HTML files that have no corresponding wiki files and
-should not be deleted after |:VimwikiAll2HTML|.
-
-Default: ''
-
-Example:
-Consider you have 404.html and search.html in your Vimwiki 'path_html'.
-With: >
- let g:vimwiki_user_htmls = '404.html,search.html'
-they would not be deleted after |:VimwikiAll2HTML|.
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_conceallevel*
-
-In Vim 7.3 'conceallevel' is local to the current window, thus if you open a
-Vimwiki buffer in a new tab or window, it would be set to the default value.
-
-Vimwiki sets 'conceallevel' to g:vimwiki_conceallevel every time a Vimwiki
-buffer is entered.
-
-With default settings, Vimwiki conceals one-character markers, shortens long
-URLs and hides markers and URL for links that have a description.
-
-Default: 2
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_autowriteall*
-
-Automatically save a modified wiki buffer when switching wiki pages. Has the
-same effect like setting the Vim option 'autowriteall', but it works for wiki
-files only, while the Vim option is global.
-Hint: if you're just annoyed that you have to save files manually to switch
-wiki pages, consider setting the Vim option 'hidden' which makes that modified
-files don't need to be saved.
-
-Value Description~
-0 autowriteall is off
-1 autowriteall is on
-
-Default: 1
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_url_maxsave*
-
-Setting the value of |g:vimwiki_url_maxsave| to 0 will prevent any link
-shortening: you will see the full URL in all types of links, with no parts
-being concealed. Concealing of one-character markers is not affected.
-
-When positive, the value determines the maximum number of characters that
-are retained at the end after concealing the middle part of a long URL.
-It could be less: in case one of the characters /,#,? is found near the end,
-the URL will be concealed up to the last occurrence of that character.
-
-Note:
- * The conceal feature works only with Vim >= 7.3.
- * When using the default |wrap| option of Vim, the effect of concealed links
- is not always pleasing, because the visible text on longer lines with
- a lot of concealed parts may appear to be strangely broken across several
- lines. This is a limitation of Vim's |conceal| feature.
- * Many color schemes do not define an unobtrusive color for the Conceal
- highlight group - this might be quite noticeable on shortened URLs.
-
-
-Default: 15
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_diary_months*
-
-It is a |Dictionary| with the numbers of months and corresponding names. Diary
-uses it.
-
-Redefine it in your .vimrc to get localized months in your diary:
-let g:vimwiki_diary_months = {
- \ 1: 'Январь', 2: 'Февраль', 3: 'Март',
- \ 4: 'Апрель', 5: 'Май', 6: 'Июнь',
- \ 7: 'Июль', 8: 'Август', 9: 'Сентябрь',
- \ 10: 'Октябрь', 11: 'Ноябрь', 12: 'Декабрь'
- \ }
-
-Default:
-let g:vimwiki_diary_months = {
- \ 1: 'January', 2: 'February', 3: 'March',
- \ 4: 'April', 5: 'May', 6: 'June',
- \ 7: 'July', 8: 'August', 9: 'September',
- \ 10: 'October', 11: 'November', 12: 'December'
- \ }
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_toc_header*
-
-A string with the magic header that tells Vimwiki where the Table of Contents
-(see |vimwiki-toc|) is located in a file. You can change it to the
-appropriate word in your mother tongue like this: >
- let g:vimwiki_toc_header = 'Inhalt'
-
-The default is 'Contents'.
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_map_prefix*
-
-A string which specifies the prefix for all global mappings (and some local
-ones). Use it to avoid conflicts with other plugins. Note that it must be
-defined before the plugin loads. >
- let g:vimwiki_map_prefix = '<Leader>e'
-
-The default is '<Leader>w'.
-
-
-------------------------------------------------------------------------------
-*g:vimwiki_auto_chdir*
-
-When set to 1, enables auto-cd feature. Whenever Vimwiki page is opened,
-Vimwiki performs an |:lcd| to the Vimwiki folder to where the page belongs.
-
-
-Value Description~
-0 Do not change directory.
-1 Change directory to Vimwiki folder on opening page.
-
-Default: 0
-
-==============================================================================
-13. Getting help *vimwiki-help*
-
-For questions, discussions, praise or rants there is a mailing list:
-https://groups.google.com/forum/#!forum/vimwiki
-
-Also, there is the IRC channel #vimwiki on Freenode which can be accessed via
-webchat: https://webchat.freenode.net/?channels=#vimwiki
-
-==============================================================================
-14. Contributing & Bug reports *vimwiki-contributing*
-
-Your help in making Vimwiki better is really appreciated!
-Any help, whether it is a spelling correction or a code snippet to patch --
-everything is welcomed.
-
-Before filing a bug or starting to write a patch, check the latest development
-version from https://github.com/vimwiki/vimwiki/tree/dev to see if your
-problem is already fixed.
-
-Issues can be filed at https://github.com/vimwiki/vimwiki/issues/.
-
-If you want to provide a pull request on GitHub, please start from the dev
-branch, not from the master branch.
-
-==============================================================================
-15. Development *vimwiki-development*
-
-Homepage: http://vimwiki.github.io/
-Github: https://github.com/vimwiki/vimwiki/
-Vim plugins: http://www.vim.org/scripts/script.php?script_id=2226
-Old homepage: http://code.google.com/p/vimwiki/
-
-Contributors and their Github usernames in roughly chronological order:
-
- - Maxim Kim (@habamax) <habamax@gmail.com> as original author
- - the people here: http://code.google.com/p/vimwiki/people/list
- - Stuart Andrews (@tub78)
- - Tomas Pospichal
- - Daniel Schemala (@EinfachToll) as current maintainer
- - Larry Hynes (@larryhynes)
- - Hector Arciga (@harciga)
- - Alexey Radkov (@lyokha)
- - Aaron Franks (@af)
- - Dan Bernier (@danbernier)
- - Carl Helmertz (@chelmertz)
- - Karl Yngve Lervåg (@lervag)
- - Patrick Davey (@patrickdavey)
- - Ivan Tishchenko (@t7ko)
- - 修昊 (@Svtter)
- - Marcelo D Montu (@mMontu)
- - John Kaul
- - Hongbo Liu (@hiberabyss)
- - @Tomsod
- - @wangzq
- - Jinzhou Zhang (@lotabout)
- - Michael Riley (@optik-aper)
- - Irfan Sharif (@irfansharif)
- - John Conroy (@jconroy77)
- - Christian Rondeau (@christianrondeau)
- - Alex Thorne (@thornecc)
- - Shafqat Bhuiyan (@priomsrb)
- - Bradley Cicenas (@bcicen)
- - Michael Thessel (@MichaelThessel)
- - Michael F. Schönitzer (@nudin)
- - @sqlwwx
- - Guilherme Salazar (@salazar)
- - Daniel Trnka (@trnila)
- - Yuchen Pei (@ycpei)
- - @maqiv
-
-
-==============================================================================
-16. Changelog *vimwiki-changelog*
-
-
-Issue numbers starting with '#' are issues from
-https://github.com/vimwiki/vimwiki/issues/, all others from
-http://code.google.com/p/vimwiki/issues/list. They may be accessible from
-https://github.com/vimwiki-backup/vimwiki/issues.
-
-
-2.3 (2016-03-31)~
-
-New:
- * Add |:VimwikiMakeYesterdayDiaryNote| command
- * Issue #128: add option |vimwiki-option-automatic_nested_syntaxes|
- * Issue #192: Sort links in the list generated by |:VimwikiGenerateTags|
-
-Fixed:
- * Issue #176: Fix issue when the wiki path contains spaces
- * Also look for tags in wiki files in subdirectories
- * Locate the .tags file correctly on Windows
- * Issue #183: Fix HTML conversion of headers containing links
- * Issue #64: create correct Markdown links when pressing CR on a word
- * Issue #191: ignore headers inside preformatted text when creating the TOC
- * Create the standard CSS file also if only one file is converted to HTML
- * Fix #188: |vimwiki_+| on a raw url surrounds it with brackets
- * various minor fixes
-
-
-2.2.1 (2015-12-10)~
-
-Removed:~
- * Removed the option g:vimwiki_debug, which probably nobody used. If you
- want it back, file an issue at Github.
-
-Fixed:~
- * Issue #175: Don't do random things when the user has remapped the z key
- * Don't ask for confirmation when following an URL in MacOS
- * Always jump to the first occurrence of a tag in a file
- * Don't move the cursor when updating the TOC
- * Fix some issues with the TOC when folding is enabled
-
-
-2.2 (2015-11-25)~
-
-New:~
- * Support for anchors, see |vimwiki-anchors|
- * in this context, add support for TOC, see |vimwiki-toc|
- * add omni completion of wiki links (files and anchors)
- * new local option |vimwiki-option-auto_toc|
- * new global option |g:vimwiki_toc_header|
- * Support for tags, see |vimwiki-syntax-tags|
- * List editing capabilities, see |vimwiki-lists|:
- * support for auto incrementing numbered lists
- * more key maps for list manipulation, see |vimwiki-list-manipulation|
- * improved automatic adjustment of checkboxes
- * text objects for list items, see |vimwiki-text-objects|
- * New command |:VimwikiCheckLinks| to check for broken links
- * New global option |g:vimwiki_auto_chdir|
- * New global option |g:vimwiki_map_prefix|
- * Support for wiki links absolute to the wiki root
- * Added the |VimwikiLinkConverter| function
- * Issue #24: Basic support for remote directories via netrw
- * Issue #50: in HTML, tables can now be embedded in lists
- * When converting to HTML, show a message with the output directory
- * Add auto completion for |:VimwikiGoto|
- * Add Chinese Readme file
-
-Changed:~
- * Wiki files must not contain # anymore, because # is used to separate the
- file from an anchor in a link.
- * replace the function vimwiki#base#resolve_scheme() by
- vimwiki#base#resolve_link() (relevant if you have a custom
- |VimwikiLinkHandler| which used this function)
- * The semantic of "file:" and "local:" links changed slightly, see
- |vimwiki-syntax-links| for what they mean now
- * The meaning of a link like [[/some/directory/]] changed. It used to be
- a link to the actual directory /some/directory/, now it's relative to
- the root of the current wiki. Use [[file:/some/directory/]] for the old
- behavior.
-
-Removed:~
- * the %toc placeholder is now useless, use |vimwiki-toc| instead
- * the global option g:vimwiki_auto_checkbox is now useless and removed
-
-Fixed:~
- * Issue 415: Disable folding if g:vimwiki_folding is set to ''
- * Fix slowdown in Vim 7.4
- * Issue #12: Separate diaries from different wikis
- * Issue #13: Fix :VimwikiRenameLink on links containing a dot
- * Always jump to previous link on <S-Tab>, not to beginning of link
- * Issue #27: Fix <CR> on a visual selection sometimes not working
- * |VimwikiBackLinks| now recognizes much more valid links
- * Issue 424: make external links with #, % work under Linux
- * Issue #39: don't htmlize stuff inside pre tags
- * Issue #44: faster formatting of large tables
- * Issue #52: Recognize markdown links when renaming wiki file
- * Issue #54: Disable 'shellslash' on Windows to avoid problems
- * Issue #81: Don't get stuck when converting a read-only file
- * Issue #66: Better normalizing of links in diary
- * Fix the menu in GVim, which was sometimes not shown correctly
- * |VimwikiGenerateLinks| now also generates links for subdirectories
- * Issue #93: Don't process placeholders inside preformatted text
- * Issue #102: Add default values to some options like the doc says
- * Issue #144: Fix bug with folds shortening on multibyte characters
- * Issue #158: Detect the OS correctly
- * |VimwikiGenerateLinks| now replaces a potentially existing old list
- * Fix uneven indentation of list items with checkboxes in HTML
- * Various small fixes
- * Corrected website links in documentation. code.google is dead, long live
- Github!
-
-2.1~
-
- * Concealing of links can be turned off - set |g:vimwiki_url_maxsave| to 0.
- The option g:vimwiki_url_mingain was removed
- * |g:vimwiki_folding| also accepts value 'list'; with 'expr' both sections
- and code blocks folded, g:vimwiki_fold_lists option was removed
- * Issue 261: Syntax folding is back. |g:vimwiki_folding| values are
- changed to '', 'expr', 'syntax'.
- * Issue 372: Ignore case in g:vimwiki_valid_html_tags
- * Issue 374: Make autowriteall local to vimwiki. It is not 100% local
- though.
- * Issue 384: Custom_wiki2html script now receives templating arguments
- * Issue 393: Custom_wiki2html script path can contain tilde character
- * Issue 392: Custom_wiki2html arguments are quoted, e.g names with spaces
- * Various small bug fixes.
-
-2.0.1 'stu'~
-
- * Follow (i.e. open target of) markdown reference-style links.
- * Bug fixes.
-
-
-2.0 'stu'~
-
-This release is partly incompatible with previous.
-
-Summary ~
-
- * Quick page-link creation.
- * Redesign of link syntaxes (!)
- * No more CamelCase links. Check the ways to convert them
- https://groups.google.com/forum/?fromgroups#!topic/vimwiki/NdS9OBG2dys
- * No more [[link][desc]] links.
- * No more [http://link description] links.
- * No more plain image links. Use transclusions.
- * No more image links identified by extension. Use transclusions.
- * Interwiki links
- * More link schemes
- * Transclusions
- * Normalize link command. See |vimwiki_+|.
- * Improved diary organization and generation. See |vimwiki-diary|.
- * List manipulation. See |vimwiki-list-manipulation|.
- * Markdown support.
- * Mathjax support. See |vimwiki-syntax-math|.
- * Improved handling of special characters and punctuation in filenames and
- urls.
- * Back links command: list links referring to the current page.
- * Highlighting nonexisted links are off by default.
- * Table syntax change. Row separator uses | instead of +.
- * Fold multilined list items.
- * Custom wiki to HTML converters. See |vimwiki-option-custom_wiki2html|.
- * Conceal long weblinks. See g:vimwiki_url_mingain.
- * Option to disable table mappings. See |g:vimwiki_table_mappings|.
-
-For detailed information see issues list on
-http://code.google.com/p/vimwiki/issues/list
-
-
-1.2~
- * Issue 70: Table spanning cell support.
- * Issue 72: Do not convert again for unchanged file. |:VimwikiAll2HTML|
- converts only changed wiki files.
- * Issue 117: |:VimwikiDiaryIndex| command that opens diary index wiki page.
- * Issue 120: Links in headers are not highlighted in vimwiki but are
- highlighted in HTML.
- * Issue 138: Added possibility to remap table-column move bindings. See
- |:VimwikiTableMoveColumnLeft| and |:VimwikiTableMoveColumnRight|
- commands. For remap instructions see |vimwiki_<A-Left>|
- and |vimwiki_<A-Right>|.
- * Issue 125: Problem with 'o' command given while at the of the file.
- * Issue 131: FileType is not set up when GUIEnter autocommand is used in
- vimrc. Use 'nested' in 'au GUIEnter * nested VimwikiIndex'
- * Issue 132: Link to perl (or any non-wiki) file in vimwiki subdirectory
- doesn't work as intended.
- * Issue 135: %title and %toc used together cause TOC to appear in an
- unexpected place in HTML.
- * Issue 139: |:VimwikiTabnewLink| command is added.
- * Fix of g:vimwiki_stripsym = '' (i.e. an empty string) -- it removes bad
- symbols from filenames.
- * Issue 145: With modeline 'set ft=vimwiki' links are not correctly
- highlighted when open wiki files.
- * Issue 146: Filetype difficulty with ".txt" as a vimwiki extension.
- * Issue 148: There are no mailto links.
- * Issue 151: Use location list instead of quickfix list for :VimwikiSearch
- command result. Use :lopen instead of :copen, :lnext instead of :cnext
- etc.
- * Issue 152: Add the list of HTML files that would not be deleted after
- |:VimwikiAll2HTML|.
- * Issue 153: Delete HTML files that has no corresponding wiki ones with
- |:VimwikiAll2HTML|.
- * Issue 156: Add multiple HTML templates. See
- |vimwiki-option-template_path|. Options html_header and html_footer are
- no longer exist.
- * Issue 173: When virtualedit=all option is enabled the 'o' command behave
- strange.
- * Issue 178: Problem with alike wikie's paths.
- * Issue 182: Browser command does not quote url.
- * Issue 183: Spelling error highlighting is not possible with nested
- syntaxes.
- * Issue 184: Wrong foldlevel in some cases.
- * Issue 195: Page renaming issue.
- * Issue 196: vim: modeline bug -- syn=vim doesn't work.
- * Issue 199: Generated HTML for sublists is invalid.
- * Issue 200: Generated HTML for todo lists does not show completion status
- the fix relies on CSS, thus your old stylesheets need to be updated!;
- may not work in obsolete browsers or font-deficient systems.
- * Issue 205: Block code: highlighting differs from processing. Inline code
- block {{{ ... }}} is removed. Use `...` instead.
- * Issue 208: Default highlight colors are problematic in many
- colorschemes. Headers are highlighted as |hl-Title| by default, use
- |g:vimwiki_hl_headers| to restore previous default Red, Green, Blue or
- custom header colors. Some other changes in highlighting.
- * Issue 209: Wild comments slow down html generation. Comments are
- changed, use %% to comment out entire line.
- * Issue 210: HTML: para enclose header.
- * Issue 214: External links containing Chinese characters get trimmed.
- * Issue 218: Command to generate HTML file and open it in webbrowser. See
- |:Vimwiki2HTMLBrowse|(bind to <leader>whh)
- * NEW: Added <Leader>wh mapping to call |:Vimwiki2HTML|
-
-
-...
-
-39 releases
-
-...
-
-0.1~
- * First public version.
-
-==============================================================================
-17. License *vimwiki-license*
-
-The MIT License
-http://www.opensource.org/licenses/mit-license.php
-
-Copyright (c) 2008-2010 Maxim Kim
- 2013-2017 Daniel Schemala
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-
- vim:tw=78:ts=8:ft=help
diff --git a/vim/.vim/plugged/vimwiki/ftplugin/vimwiki.vim b/vim/.vim/plugged/vimwiki/ftplugin/vimwiki.vim
deleted file mode 100644
index 6b517dc..0000000
--- a/vim/.vim/plugged/vimwiki/ftplugin/vimwiki.vim
+++ /dev/null
@@ -1,699 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki filetype plugin file
-" Home: https://github.com/vimwiki/vimwiki/
-
-if exists("b:did_ftplugin")
- finish
-endif
-let b:did_ftplugin = 1 " Don't load another plugin for this buffer
-
-
-
-setlocal commentstring=%%%s
-
-if vimwiki#vars#get_global('conceallevel') && exists("+conceallevel")
- let &l:conceallevel = vimwiki#vars#get_global('conceallevel')
-endif
-
-" This is for GOTO FILE: gf
-execute 'setlocal suffixesadd='.vimwiki#vars#get_wikilocal('ext')
-setlocal isfname-=[,]
-
-exe "setlocal tags+=" . escape(vimwiki#tags#metadata_file_path(), ' \|"')
-
-
-
-function! Complete_wikifiles(findstart, base)
- if a:findstart == 1
- let column = col('.')-2
- let line = getline('.')[:column]
- let startoflink = match(line, '\[\[\zs[^\\[\]]*$')
- if startoflink != -1
- let s:line_context = '['
- return startoflink
- endif
- if vimwiki#vars#get_wikilocal('syntax') ==? 'markdown'
- let startofinlinelink = match(line, '\[.*\](\zs[^)]*$')
- if startofinlinelink != -1
- let s:line_context = '['
- return startofinlinelink
- endif
- endif
- let startoftag = match(line, ':\zs[^:[:space:]]*$')
- if startoftag != -1
- let s:line_context = ':'
- return startoftag
- endif
- let s:line_context = ''
- return -1
- else
- " Completion works for wikilinks/anchors, and for tags. s:line_content
- " tells us which string came before a:base. There seems to be no easier
- " solution, because calling col('.') here returns garbage.
- if s:line_context == ''
- return []
- elseif s:line_context == ':'
- " Tags completion
- let tags = vimwiki#tags#get_tags()
- if a:base != ''
- call filter(tags,
- \ "v:val[:" . (len(a:base)-1) . "] == '" . substitute(a:base, "'", "''", '') . "'" )
- endif
- return tags
- elseif a:base !~# '#'
- " we look for wiki files
-
- if a:base =~# '^wiki\d:'
- let wikinumber = eval(matchstr(a:base, '^wiki\zs\d'))
- if wikinumber >= vimwiki#vars#number_of_wikis()
- return []
- endif
- let prefix = matchstr(a:base, '^wiki\d:\zs.*')
- let scheme = matchstr(a:base, '^wiki\d:\ze')
- elseif a:base =~# '^diary:'
- let wikinumber = -1
- let prefix = matchstr(a:base, '^diary:\zs.*')
- let scheme = matchstr(a:base, '^diary:\ze')
- else " current wiki
- let wikinumber = vimwiki#vars#get_bufferlocal('wiki_nr')
- let prefix = a:base
- let scheme = ''
- endif
-
- let links = vimwiki#base#get_wikilinks(wikinumber, 1)
- let result = []
- for wikifile in links
- if wikifile =~ '^'.vimwiki#u#escape(prefix)
- call add(result, scheme . wikifile)
- endif
- endfor
- return result
-
- else
- " we look for anchors in the given wikifile
-
- let segments = split(a:base, '#', 1)
- let given_wikifile = segments[0] == '' ? expand('%:t:r') : segments[0]
- let link_infos = vimwiki#base#resolve_link(given_wikifile.'#')
- let wikifile = link_infos.filename
- let syntax = vimwiki#vars#get_wikilocal('syntax', link_infos.index)
- let anchors = vimwiki#base#get_anchors(wikifile, syntax)
-
- let filtered_anchors = []
- let given_anchor = join(segments[1:], '#')
- for anchor in anchors
- if anchor =~# '^'.vimwiki#u#escape(given_anchor)
- call add(filtered_anchors, segments[0].'#'.anchor)
- endif
- endfor
- return filtered_anchors
-
- endif
- endif
-endfunction
-
-setlocal omnifunc=Complete_wikifiles
-
-
-
-" settings necessary for the automatic formatting of lists
-setlocal autoindent
-setlocal nosmartindent
-setlocal nocindent
-setlocal comments=""
-setlocal formatoptions-=c
-setlocal formatoptions-=r
-setlocal formatoptions-=o
-setlocal formatoptions-=2
-setlocal formatoptions+=n
-
-let &formatlistpat = vimwiki#vars#get_syntaxlocal('rxListItem')
-
-if !empty(&langmap)
- " Valid only if langmap is a comma separated pairs of chars
- let s:l_o = matchstr(&langmap, '\C,\zs.\zeo,')
- if s:l_o
- exe 'nnoremap <silent> <buffer> '.s:l_o.' :call vimwiki#lst#kbd_o()<CR>a'
- endif
-
- let s:l_O = matchstr(&langmap, '\C,\zs.\zeO,')
- if s:l_O
- exe 'nnoremap <silent> <buffer> '.s:l_O.' :call vimwiki#lst#kbd_O()<CR>a'
- endif
-endif
-
-
-
-" ------------------------------------------------
-" Folding stuff
-" ------------------------------------------------
-
-function! VimwikiFoldListLevel(lnum)
- return vimwiki#lst#fold_level(a:lnum)
-endfunction
-
-
-function! VimwikiFoldLevel(lnum)
- let line = getline(a:lnum)
-
- " Header/section folding...
- if line =~# vimwiki#vars#get_syntaxlocal('rxHeader')
- return '>'.vimwiki#u#count_first_sym(line)
- " Code block folding...
- elseif line =~# vimwiki#vars#get_syntaxlocal('rxPreStart')
- return 'a1'
- elseif line =~# vimwiki#vars#get_syntaxlocal('rxPreEnd')
- return 's1'
- else
- return "="
- endif
-endfunction
-
-
-" Constants used by VimwikiFoldText
-" use \u2026 and \u21b2 (or \u2424) if enc=utf-8 to save screen space
-let s:ellipsis = (&enc ==? 'utf-8') ? "\u2026" : "..."
-let s:ell_len = strlen(s:ellipsis)
-let s:newline = (&enc ==? 'utf-8') ? "\u21b2 " : " "
-let s:tolerance = 5
-
-
-" unused
-function! s:shorten_text_simple(text, len)
- let spare_len = a:len - len(a:text)
- return (spare_len>=0) ? [a:text,spare_len] : [a:text[0:a:len].s:ellipsis, -1]
-endfunction
-
-
-" s:shorten_text(text, len) = [string, spare] with "spare" = len-strlen(string)
-" for long enough "text", the string's length is within s:tolerance of "len"
-" (so that -s:tolerance <= spare <= s:tolerance, "string" ends with s:ellipsis)
-function! s:shorten_text(text, len)
- " returns [string, spare]
- " strlen() returns lenght in bytes, not in characters, so we'll have to do a
- " trick here -- replace all non-spaces with dot, calculate lengths and
- " indexes on it, then use original string to break at selected index.
- let text_pattern = substitute(a:text, '\m\S', '.', 'g')
- let spare_len = a:len - strlen(text_pattern)
- if (spare_len + s:tolerance >= 0)
- return [a:text, spare_len]
- endif
- " try to break on a space; assumes a:len-s:ell_len >= s:tolerance
- let newlen = a:len - s:ell_len
- let idx = strridx(text_pattern, ' ', newlen + s:tolerance)
- let break_idx = (idx + s:tolerance >= newlen) ? idx : newlen
- return [matchstr(a:text, '\m^.\{'.break_idx.'\}').s:ellipsis, newlen - break_idx]
-endfunction
-
-
-function! VimwikiFoldText()
- let line = getline(v:foldstart)
- let main_text = substitute(line, '^\s*', repeat(' ',indent(v:foldstart)), '')
- let fold_len = v:foldend - v:foldstart + 1
- let len_text = ' ['.fold_len.'] '
- if line !~# vimwiki#vars#get_syntaxlocal('rxPreStart')
- let [main_text, spare_len] = s:shorten_text(main_text, 50)
- return main_text.len_text
- else
- " fold-text for code blocks: use one or two of the starting lines
- let [main_text, spare_len] = s:shorten_text(main_text, 24)
- let line1 = substitute(getline(v:foldstart+1), '^\s*', ' ', '')
- let [content_text, spare_len] = s:shorten_text(line1, spare_len+20)
- if spare_len > s:tolerance && fold_len > 3
- let line2 = substitute(getline(v:foldstart+2), '^\s*', s:newline, '')
- let [more_text, spare_len] = s:shorten_text(line2, spare_len+12)
- let content_text .= more_text
- endif
- return main_text.len_text.content_text
- endif
-endfunction
-
-
-
-" ------------------------------------------------
-" Commands
-" ------------------------------------------------
-
-command! -buffer Vimwiki2HTML
- \ if filewritable(expand('%')) | silent noautocmd w | endif
- \ <bar>
- \ let res = vimwiki#html#Wiki2HTML(expand(vimwiki#vars#get_wikilocal('path_html')),
- \ expand('%'))
- \ <bar>
- \ if res != '' | echo 'Vimwiki: HTML conversion is done, output: '
- \ . expand(vimwiki#vars#get_wikilocal('path_html')) | endif
-command! -buffer Vimwiki2HTMLBrowse
- \ if filewritable(expand('%')) | silent noautocmd w | endif
- \ <bar>
- \ call vimwiki#base#system_open_link(vimwiki#html#Wiki2HTML(
- \ expand(vimwiki#vars#get_wikilocal('path_html')),
- \ expand('%')))
-command! -buffer VimwikiAll2HTML
- \ call vimwiki#html#WikiAll2HTML(expand(vimwiki#vars#get_wikilocal('path_html')))
-
-command! -buffer VimwikiTOC call vimwiki#base#table_of_contents(1)
-
-command! -buffer VimwikiNextLink call vimwiki#base#find_next_link()
-command! -buffer VimwikiPrevLink call vimwiki#base#find_prev_link()
-command! -buffer VimwikiDeleteLink call vimwiki#base#delete_link()
-command! -buffer VimwikiRenameLink call vimwiki#base#rename_link()
-command! -buffer VimwikiFollowLink call vimwiki#base#follow_link('nosplit', 0, 1)
-command! -buffer VimwikiGoBackLink call vimwiki#base#go_back_link()
-command! -buffer VimwikiSplitLink call vimwiki#base#follow_link('hsplit', 0, 1)
-command! -buffer VimwikiVSplitLink call vimwiki#base#follow_link('vsplit', 0, 1)
-
-command! -buffer -nargs=? VimwikiNormalizeLink call vimwiki#base#normalize_link(<f-args>)
-
-command! -buffer VimwikiTabnewLink call vimwiki#base#follow_link('tab', 0, 1)
-
-command! -buffer VimwikiGenerateLinks call vimwiki#base#generate_links()
-
-command! -buffer -nargs=0 VimwikiBacklinks call vimwiki#base#backlinks()
-command! -buffer -nargs=0 VWB call vimwiki#base#backlinks()
-
-exe 'command! -buffer -nargs=* VimwikiSearch lvimgrep <args> '.
- \ escape(vimwiki#vars#get_wikilocal('path').'**/*'.vimwiki#vars#get_wikilocal('ext'), ' ')
-
-exe 'command! -buffer -nargs=* VWS lvimgrep <args> '.
- \ escape(vimwiki#vars#get_wikilocal('path').'**/*'.vimwiki#vars#get_wikilocal('ext'), ' ')
-
-command! -buffer -nargs=+ -complete=custom,vimwiki#base#complete_links_escaped
- \ VimwikiGoto call vimwiki#base#goto(<f-args>)
-
-command! -buffer VimwikiCheckLinks call vimwiki#base#check_links()
-
-" list commands
-command! -buffer -nargs=+ VimwikiReturn call <SID>CR(<f-args>)
-command! -buffer -range -nargs=1 VimwikiChangeSymbolTo
- \ call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>, 'n')
-command! -buffer -range -nargs=1 VimwikiListChangeSymbolI
- \ call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>, 'i')
-command! -buffer -nargs=1 VimwikiChangeSymbolInListTo
- \ call vimwiki#lst#change_marker_in_list(<f-args>)
-command! -buffer -range VimwikiToggleListItem call vimwiki#lst#toggle_cb(<line1>, <line2>)
-command! -buffer -range VimwikiToggleRejectedListItem
- \ call vimwiki#lst#toggle_rejected_cb(<line1>, <line2>)
-command! -buffer -range VimwikiIncrementListItem call vimwiki#lst#increment_cb(<line1>, <line2>)
-command! -buffer -range VimwikiDecrementListItem call vimwiki#lst#decrement_cb(<line1>, <line2>)
-command! -buffer -range -nargs=+ VimwikiListChangeLvl
- \ call vimwiki#lst#change_level(<line1>, <line2>, <f-args>)
-command! -buffer -range VimwikiRemoveSingleCB call vimwiki#lst#remove_cb(<line1>, <line2>)
-command! -buffer VimwikiRemoveCBInList call vimwiki#lst#remove_cb_in_list()
-command! -buffer VimwikiRenumberList call vimwiki#lst#adjust_numbered_list()
-command! -buffer VimwikiRenumberAllLists call vimwiki#lst#adjust_whole_buffer()
-command! -buffer VimwikiListToggle call vimwiki#lst#toggle_list_item()
-
-" table commands
-command! -buffer -nargs=* VimwikiTable call vimwiki#tbl#create(<f-args>)
-command! -buffer VimwikiTableAlignQ call vimwiki#tbl#align_or_cmd('gqq')
-command! -buffer VimwikiTableAlignW call vimwiki#tbl#align_or_cmd('gww')
-command! -buffer VimwikiTableMoveColumnLeft call vimwiki#tbl#move_column_left()
-command! -buffer VimwikiTableMoveColumnRight call vimwiki#tbl#move_column_right()
-
-" diary commands
-command! -buffer VimwikiDiaryNextDay call vimwiki#diary#goto_next_day()
-command! -buffer VimwikiDiaryPrevDay call vimwiki#diary#goto_prev_day()
-
-" tags commands
-command! -buffer -bang VimwikiRebuildTags call vimwiki#tags#update_tags(1, '<bang>')
-command! -buffer -nargs=* -complete=custom,vimwiki#tags#complete_tags
- \ VimwikiSearchTags VimwikiSearch /:<args>:/
-command! -buffer -nargs=* -complete=custom,vimwiki#tags#complete_tags
- \ VimwikiGenerateTags call vimwiki#tags#generate_tags(<f-args>)
-
-command! -buffer VimwikiPasteUrl call vimwiki#html#PasteUrl(expand('%:p'))
-command! -buffer VimwikiCatUrl call vimwiki#html#CatUrl(expand('%:p'))
-
-
-" ------------------------------------------------
-" Keybindings
-" ------------------------------------------------
-
-if vimwiki#vars#get_global('use_mouse')
- nmap <buffer> <S-LeftMouse> <NOP>
- nmap <buffer> <C-LeftMouse> <NOP>
- nnoremap <silent><buffer> <2-LeftMouse>
- \ :call vimwiki#base#follow_link('nosplit', 0, 1, "\<lt>2-LeftMouse>")<CR>
- nnoremap <silent><buffer> <S-2-LeftMouse> <LeftMouse>:VimwikiSplitLink<CR>
- nnoremap <silent><buffer> <C-2-LeftMouse> <LeftMouse>:VimwikiVSplitLink<CR>
- nnoremap <silent><buffer> <RightMouse><LeftMouse> :VimwikiGoBackLink<CR>
-endif
-
-
-if !hasmapto('<Plug>Vimwiki2HTML')
- exe 'nmap <buffer> '.vimwiki#vars#get_global('map_prefix').'h <Plug>Vimwiki2HTML'
-endif
-nnoremap <script><buffer> <Plug>Vimwiki2HTML :Vimwiki2HTML<CR>
-
-if !hasmapto('<Plug>Vimwiki2HTMLBrowse')
- exe 'nmap <buffer> '.vimwiki#vars#get_global('map_prefix').'hh <Plug>Vimwiki2HTMLBrowse'
-endif
-nnoremap <script><buffer> <Plug>Vimwiki2HTMLBrowse :Vimwiki2HTMLBrowse<CR>
-
-if !hasmapto('<Plug>VimwikiFollowLink')
- nmap <silent><buffer> <CR> <Plug>VimwikiFollowLink
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiFollowLink :VimwikiFollowLink<CR>
-
-if !hasmapto('<Plug>VimwikiSplitLink')
- nmap <silent><buffer> <S-CR> <Plug>VimwikiSplitLink
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiSplitLink :VimwikiSplitLink<CR>
-
-if !hasmapto('<Plug>VimwikiVSplitLink')
- nmap <silent><buffer> <C-CR> <Plug>VimwikiVSplitLink
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiVSplitLink :VimwikiVSplitLink<CR>
-
-if !hasmapto('<Plug>VimwikiNormalizeLink')
- nmap <silent><buffer> + <Plug>VimwikiNormalizeLink
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiNormalizeLink :VimwikiNormalizeLink 0<CR>
-
-if !hasmapto('<Plug>VimwikiNormalizeLinkVisual')
- vmap <silent><buffer> + <Plug>VimwikiNormalizeLinkVisual
-endif
-vnoremap <silent><script><buffer> <Plug>VimwikiNormalizeLinkVisual :<C-U>VimwikiNormalizeLink 1<CR>
-
-if !hasmapto('<Plug>VimwikiNormalizeLinkVisualCR')
- vmap <silent><buffer> <CR> <Plug>VimwikiNormalizeLinkVisualCR
-endif
-vnoremap <silent><script><buffer>
- \ <Plug>VimwikiNormalizeLinkVisualCR :<C-U>VimwikiNormalizeLink 1<CR>
-
-if !hasmapto('<Plug>VimwikiTabnewLink')
- nmap <silent><buffer> <D-CR> <Plug>VimwikiTabnewLink
- nmap <silent><buffer> <C-S-CR> <Plug>VimwikiTabnewLink
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiTabnewLink :VimwikiTabnewLink<CR>
-
-if !hasmapto('<Plug>VimwikiGoBackLink')
- nmap <silent><buffer> <BS> <Plug>VimwikiGoBackLink
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiGoBackLink :VimwikiGoBackLink<CR>
-
-if !hasmapto('<Plug>VimwikiNextLink')
- nmap <silent><buffer> <TAB> <Plug>VimwikiNextLink
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiNextLink :VimwikiNextLink<CR>
-
-if !hasmapto('<Plug>VimwikiPrevLink')
- nmap <silent><buffer> <S-TAB> <Plug>VimwikiPrevLink
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiPrevLink :VimwikiPrevLink<CR>
-
-if !hasmapto('<Plug>VimwikiDeleteLink')
- exe 'nmap <silent><buffer> '.vimwiki#vars#get_global('map_prefix').'d <Plug>VimwikiDeleteLink'
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiDeleteLink :VimwikiDeleteLink<CR>
-
-if !hasmapto('<Plug>VimwikiRenameLink')
- exe 'nmap <silent><buffer> '.vimwiki#vars#get_global('map_prefix').'r <Plug>VimwikiRenameLink'
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiRenameLink :VimwikiRenameLink<CR>
-
-if !hasmapto('<Plug>VimwikiDiaryNextDay')
- nmap <silent><buffer> <C-Down> <Plug>VimwikiDiaryNextDay
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiDiaryNextDay :VimwikiDiaryNextDay<CR>
-
-if !hasmapto('<Plug>VimwikiDiaryPrevDay')
- nmap <silent><buffer> <C-Up> <Plug>VimwikiDiaryPrevDay
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiDiaryPrevDay :VimwikiDiaryPrevDay<CR>
-
-" List mappings
-if !hasmapto('<Plug>VimwikiToggleListItem')
- nmap <silent><buffer> <C-Space> <Plug>VimwikiToggleListItem
- vmap <silent><buffer> <C-Space> <Plug>VimwikiToggleListItem
- if has("unix")
- nmap <silent><buffer> <C-@> <Plug>VimwikiToggleListItem
- vmap <silent><buffer> <C-@> <Plug>VimwikiToggleListItem
- endif
-endif
-if !hasmapto('<Plug>VimwikiToggleRejectedListItem')
- nmap <silent><buffer> glx <Plug>VimwikiToggleRejectedListItem
- vmap <silent><buffer> glx <Plug>VimwikiToggleRejectedListItem
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR>
-vnoremap <silent><script><buffer> <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR>
-nnoremap <silent><script><buffer>
- \ <Plug>VimwikiToggleRejectedListItem :VimwikiToggleRejectedListItem<CR>
-vnoremap <silent><script><buffer>
- \ <Plug>VimwikiToggleRejectedListItem :VimwikiToggleRejectedListItem<CR>
-
-if !hasmapto('<Plug>VimwikiIncrementListItem')
- nmap <silent><buffer> gln <Plug>VimwikiIncrementListItem
- vmap <silent><buffer> gln <Plug>VimwikiIncrementListItem
-endif
-if !hasmapto('<Plug>VimwikiDecrementListItem')
- nmap <silent><buffer> glp <Plug>VimwikiDecrementListItem
- vmap <silent><buffer> glp <Plug>VimwikiDecrementListItem
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiIncrementListItem :VimwikiIncrementListItem<CR>
-vnoremap <silent><script><buffer> <Plug>VimwikiIncrementListItem :VimwikiIncrementListItem<CR>
-nnoremap <silent><script><buffer> <Plug>VimwikiDecrementListItem :VimwikiDecrementListItem<CR>
-vnoremap <silent><script><buffer> <Plug>VimwikiDecrementListItem :VimwikiDecrementListItem<CR>
-
-if !hasmapto('<Plug>VimwikiDecreaseLvlSingleItem', 'i')
- imap <silent><buffer> <C-D> <Plug>VimwikiDecreaseLvlSingleItem
-endif
-inoremap <silent><script><buffer> <Plug>VimwikiDecreaseLvlSingleItem
- \ <C-O>:VimwikiListChangeLvl decrease 0<CR>
-
-if !hasmapto('<Plug>VimwikiIncreaseLvlSingleItem', 'i')
- imap <silent><buffer> <C-T> <Plug>VimwikiIncreaseLvlSingleItem
-endif
-inoremap <silent><script><buffer> <Plug>VimwikiIncreaseLvlSingleItem
- \ <C-O>:VimwikiListChangeLvl increase 0<CR>
-
-if !hasmapto('<Plug>VimwikiListNextSymbol', 'i')
- imap <silent><buffer> <C-L><C-J> <Plug>VimwikiListNextSymbol
-endif
-inoremap <silent><script><buffer> <Plug>VimwikiListNextSymbol
- \ <C-O>:VimwikiListChangeSymbolI next<CR>
-
-if !hasmapto('<Plug>VimwikiListPrevSymbol', 'i')
- imap <silent><buffer> <C-L><C-K> <Plug>VimwikiListPrevSymbol
-endif
-inoremap <silent><script><buffer> <Plug>VimwikiListPrevSymbol
- \ <C-O>:VimwikiListChangeSymbolI prev<CR>
-
-if !hasmapto('<Plug>VimwikiListToggle', 'i')
- imap <silent><buffer> <C-L><C-M> <Plug>VimwikiListToggle
-endif
-inoremap <silent><script><buffer> <Plug>VimwikiListToggle <Esc>:VimwikiListToggle<CR>
-
-nnoremap <silent> <buffer> o :<C-U>call vimwiki#lst#kbd_o()<CR>
-nnoremap <silent> <buffer> O :<C-U>call vimwiki#lst#kbd_O()<CR>
-
-if !hasmapto('<Plug>VimwikiRenumberList')
- nmap <silent><buffer> glr <Plug>VimwikiRenumberList
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiRenumberList :VimwikiRenumberList<CR>
-
-if !hasmapto('<Plug>VimwikiRenumberAllLists')
- nmap <silent><buffer> gLr <Plug>VimwikiRenumberAllLists
- nmap <silent><buffer> gLR <Plug>VimwikiRenumberAllLists
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiRenumberAllLists :VimwikiRenumberAllLists<CR>
-
-if !hasmapto('<Plug>VimwikiDecreaseLvlSingleItem')
- map <silent><buffer> glh <Plug>VimwikiDecreaseLvlSingleItem
-endif
-noremap <silent><script><buffer>
- \ <Plug>VimwikiDecreaseLvlSingleItem :VimwikiListChangeLvl decrease 0<CR>
-
-if !hasmapto('<Plug>VimwikiIncreaseLvlSingleItem')
- map <silent><buffer> gll <Plug>VimwikiIncreaseLvlSingleItem
-endif
-noremap <silent><script><buffer>
- \ <Plug>VimwikiIncreaseLvlSingleItem :VimwikiListChangeLvl increase 0<CR>
-
-if !hasmapto('<Plug>VimwikiDecreaseLvlWholeItem')
- map <silent><buffer> gLh <Plug>VimwikiDecreaseLvlWholeItem
- map <silent><buffer> gLH <Plug>VimwikiDecreaseLvlWholeItem
-endif
-noremap <silent><script><buffer>
- \ <Plug>VimwikiDecreaseLvlWholeItem :VimwikiListChangeLvl decrease 1<CR>
-
-if !hasmapto('<Plug>VimwikiIncreaseLvlWholeItem')
- map <silent><buffer> gLl <Plug>VimwikiIncreaseLvlWholeItem
- map <silent><buffer> gLL <Plug>VimwikiIncreaseLvlWholeItem
-endif
-noremap <silent><script><buffer>
- \ <Plug>VimwikiIncreaseLvlWholeItem :VimwikiListChangeLvl increase 1<CR>
-
-if !hasmapto('<Plug>VimwikiRemoveSingleCB')
- map <silent><buffer> gl<Space> <Plug>VimwikiRemoveSingleCB
-endif
-noremap <silent><script><buffer> <Plug>VimwikiRemoveSingleCB :VimwikiRemoveSingleCB<CR>
-
-if !hasmapto('<Plug>VimwikiRemoveCBInList')
- map <silent><buffer> gL<Space> <Plug>VimwikiRemoveCBInList
-endif
-noremap <silent><script><buffer> <Plug>VimwikiRemoveCBInList :VimwikiRemoveCBInList<CR>
-
-for s:char in vimwiki#vars#get_syntaxlocal('bullet_types')
- if !hasmapto(':VimwikiChangeSymbolTo '.s:char.'<CR>')
- exe 'noremap <silent><buffer> gl'.s:char.' :VimwikiChangeSymbolTo '.s:char.'<CR>'
- endif
- if !hasmapto(':VimwikiChangeSymbolInListTo '.s:char.'<CR>')
- exe 'noremap <silent><buffer> gL'.s:char.' :VimwikiChangeSymbolInListTo '.s:char.'<CR>'
- endif
-endfor
-
-for s:typ in vimwiki#vars#get_syntaxlocal('number_types')
- if !hasmapto(':VimwikiChangeSymbolTo '.s:typ.'<CR>')
- exe 'noremap <silent><buffer> gl'.s:typ[0].' :VimwikiChangeSymbolTo '.s:typ.'<CR>'
- endif
- if !hasmapto(':VimwikiChangeSymbolInListTo '.s:typ.'<CR>')
- exe 'noremap <silent><buffer> gL'.s:typ[0].' :VimwikiChangeSymbolInListTo '.s:typ.'<CR>'
- endif
-endfor
-
-
-function! s:CR(normal, just_mrkr)
- if vimwiki#vars#get_global('table_mappings')
- let res = vimwiki#tbl#kbd_cr()
- if res != ""
- exe "normal! " . res . "\<Right>"
- startinsert
- return
- endif
- endif
- call vimwiki#lst#kbd_cr(a:normal, a:just_mrkr)
-endfunction
-
-if !hasmapto('VimwikiReturn', 'i')
- if maparg('<CR>', 'i') !~? '<Esc>:VimwikiReturn'
- inoremap <silent><buffer> <CR> <Esc>:VimwikiReturn 1 5<CR>
- endif
- if maparg('<S-CR>', 'i') !~? '<Esc>:VimwikiReturn'
- inoremap <silent><buffer> <S-CR> <Esc>:VimwikiReturn 2 2<CR>
- endif
-endif
-
-"Table mappings
- if vimwiki#vars#get_global('table_mappings')
- inoremap <expr> <buffer> <Tab> vimwiki#tbl#kbd_tab()
- inoremap <expr> <buffer> <S-Tab> vimwiki#tbl#kbd_shift_tab()
- endif
-
-
-
-nnoremap <buffer> gqq :VimwikiTableAlignQ<CR>
-nnoremap <buffer> gww :VimwikiTableAlignW<CR>
-if !hasmapto('<Plug>VimwikiTableMoveColumnLeft')
- nmap <silent><buffer> <A-Left> <Plug>VimwikiTableMoveColumnLeft
-endif
-nnoremap <silent><script><buffer> <Plug>VimwikiTableMoveColumnLeft :VimwikiTableMoveColumnLeft<CR>
-if !hasmapto('<Plug>VimwikiTableMoveColumnRight')
- nmap <silent><buffer> <A-Right> <Plug>VimwikiTableMoveColumnRight
-endif
-nnoremap <silent><script><buffer>
- \ <Plug>VimwikiTableMoveColumnRight :VimwikiTableMoveColumnRight<CR>
-
-
-
-" ------------------------------------------------
-" Text objects
-" ------------------------------------------------
-
-onoremap <silent><buffer> ah :<C-U>call vimwiki#base#TO_header(0, 0, v:count1)<CR>
-vnoremap <silent><buffer> ah :<C-U>call vimwiki#base#TO_header(0, 0, v:count1)<CR>
-
-onoremap <silent><buffer> ih :<C-U>call vimwiki#base#TO_header(1, 0, v:count1)<CR>
-vnoremap <silent><buffer> ih :<C-U>call vimwiki#base#TO_header(1, 0, v:count1)<CR>
-
-onoremap <silent><buffer> aH :<C-U>call vimwiki#base#TO_header(0, 1, v:count1)<CR>
-vnoremap <silent><buffer> aH :<C-U>call vimwiki#base#TO_header(0, 1, v:count1)<CR>
-
-onoremap <silent><buffer> iH :<C-U>call vimwiki#base#TO_header(1, 1, v:count1)<CR>
-vnoremap <silent><buffer> iH :<C-U>call vimwiki#base#TO_header(1, 1, v:count1)<CR>
-
-onoremap <silent><buffer> a\ :<C-U>call vimwiki#base#TO_table_cell(0, 0)<CR>
-vnoremap <silent><buffer> a\ :<C-U>call vimwiki#base#TO_table_cell(0, 1)<CR>
-
-onoremap <silent><buffer> i\ :<C-U>call vimwiki#base#TO_table_cell(1, 0)<CR>
-vnoremap <silent><buffer> i\ :<C-U>call vimwiki#base#TO_table_cell(1, 1)<CR>
-
-onoremap <silent><buffer> ac :<C-U>call vimwiki#base#TO_table_col(0, 0)<CR>
-vnoremap <silent><buffer> ac :<C-U>call vimwiki#base#TO_table_col(0, 1)<CR>
-
-onoremap <silent><buffer> ic :<C-U>call vimwiki#base#TO_table_col(1, 0)<CR>
-vnoremap <silent><buffer> ic :<C-U>call vimwiki#base#TO_table_col(1, 1)<CR>
-
-onoremap <silent><buffer> al :<C-U>call vimwiki#lst#TO_list_item(0, 0)<CR>
-vnoremap <silent><buffer> al :<C-U>call vimwiki#lst#TO_list_item(0, 1)<CR>
-
-onoremap <silent><buffer> il :<C-U>call vimwiki#lst#TO_list_item(1, 0)<CR>
-vnoremap <silent><buffer> il :<C-U>call vimwiki#lst#TO_list_item(1, 1)<CR>
-
-if !hasmapto('<Plug>VimwikiAddHeaderLevel')
- nmap <silent><buffer> = <Plug>VimwikiAddHeaderLevel
-endif
-nnoremap <silent><buffer> <Plug>VimwikiAddHeaderLevel :<C-U>call vimwiki#base#AddHeaderLevel()<CR>
-
-if !hasmapto('<Plug>VimwikiRemoveHeaderLevel')
- nmap <silent><buffer> - <Plug>VimwikiRemoveHeaderLevel
-endif
-nnoremap <silent><buffer> <Plug>VimwikiRemoveHeaderLevel :
- \<C-U>call vimwiki#base#RemoveHeaderLevel()<CR>
-
-if !hasmapto('<Plug>VimwikiGoToParentHeader')
- nmap <silent><buffer> ]u <Plug>VimwikiGoToParentHeader
- nmap <silent><buffer> [u <Plug>VimwikiGoToParentHeader
-endif
-nnoremap <silent><buffer> <Plug>VimwikiGoToParentHeader :
- \<C-u>call vimwiki#base#goto_parent_header()<CR>
-
-if !hasmapto('<Plug>VimwikiGoToNextHeader')
- nmap <silent><buffer> ]] <Plug>VimwikiGoToNextHeader
-endif
-nnoremap <silent><buffer> <Plug>VimwikiGoToNextHeader :
- \<C-u>call vimwiki#base#goto_next_header()<CR>
-
-if !hasmapto('<Plug>VimwikiGoToPrevHeader')
- nmap <silent><buffer> [[ <Plug>VimwikiGoToPrevHeader
-endif
-nnoremap <silent><buffer> <Plug>VimwikiGoToPrevHeader :
- \<C-u>call vimwiki#base#goto_prev_header()<CR>
-
-if !hasmapto('<Plug>VimwikiGoToNextSiblingHeader')
- nmap <silent><buffer> ]= <Plug>VimwikiGoToNextSiblingHeader
-endif
-nnoremap <silent><buffer> <Plug>VimwikiGoToNextSiblingHeader :
- \<C-u>call vimwiki#base#goto_sibling(+1)<CR>
-
-if !hasmapto('<Plug>VimwikiGoToPrevSiblingHeader')
- nmap <silent><buffer> [= <Plug>VimwikiGoToPrevSiblingHeader
-endif
-nnoremap <silent><buffer> <Plug>VimwikiGoToPrevSiblingHeader :
- \<C-u>call vimwiki#base#goto_sibling(-1)<CR>
-
-
-
-if vimwiki#vars#get_wikilocal('auto_export')
- " Automatically generate HTML on page write.
- augroup vimwiki
- au BufWritePost <buffer>
- \ call vimwiki#html#Wiki2HTML(expand(vimwiki#vars#get_wikilocal('path_html')),
- \ expand('%'))
- augroup END
-endif
-
-if vimwiki#vars#get_wikilocal('auto_toc')
- " Automatically update the TOC *before* the file is written
- augroup vimwiki
- au BufWritePre <buffer> call vimwiki#base#table_of_contents(0)
- augroup END
-endif
-
-if vimwiki#vars#get_wikilocal('auto_tags')
- " Automatically update tags metadata on page write.
- augroup vimwiki
- au BufWritePost <buffer> call vimwiki#tags#update_tags(0, '')
- augroup END
-endif
-
diff --git a/vim/.vim/plugged/vimwiki/plugin/vimwiki.vim b/vim/.vim/plugged/vimwiki/plugin/vimwiki.vim
deleted file mode 100644
index 4e0ee91..0000000
--- a/vim/.vim/plugged/vimwiki/plugin/vimwiki.vim
+++ /dev/null
@@ -1,396 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki plugin file
-" Home: https://github.com/vimwiki/vimwiki/
-" GetLatestVimScripts: 2226 1 :AutoInstall: vimwiki
-
-
-if exists("g:loaded_vimwiki") || &cp
- finish
-endif
-let g:loaded_vimwiki = 1
-
-" Set to version number for release, otherwise -1 for dev-branch
-let s:plugin_vers = -1
-
-" Get the directory the script is installed in
-let s:plugin_dir = expand('<sfile>:p:h:h')
-
-let s:old_cpo = &cpo
-set cpo&vim
-
-
-if exists('g:vimwiki_autowriteall')
- let s:vimwiki_autowriteall_saved = g:vimwiki_autowriteall
-else
- let s:vimwiki_autowriteall_saved = 1
-endif
-
-
-" this is called when the cursor leaves the buffer
-function! s:setup_buffer_leave()
- " don't do anything if it's not managed by Vimwiki (that is, when it's not in
- " a registered wiki and not a temporary wiki)
- if vimwiki#vars#get_bufferlocal('wiki_nr') == -1
- return
- endif
-
- let &autowriteall = s:vimwiki_autowriteall_saved
-
- if vimwiki#vars#get_global('menu') != ""
- exe 'nmenu disable '.vimwiki#vars#get_global('menu').'.Table'
- endif
-endfunction
-
-
-" create a new temporary wiki for the current buffer
-function! s:create_temporary_wiki()
- let path = expand('%:p:h')
- let ext = '.'.expand('%:e')
-
- let syntax_mapping = vimwiki#vars#get_global('ext2syntax')
- if has_key(syntax_mapping, ext)
- let syntax = syntax_mapping[ext]
- else
- let syntax = vimwiki#vars#get_wikilocal_default('syntax')
- endif
-
- let new_temp_wiki_settings = {'path': path,
- \ 'ext': ext,
- \ 'syntax': syntax,
- \ }
-
- call vimwiki#vars#add_temporary_wiki(new_temp_wiki_settings)
-
- " Update the wiki number of the current buffer, because it may have changed when adding this
- " temporary wiki.
- call vimwiki#vars#set_bufferlocal('wiki_nr', vimwiki#base#find_wiki(expand('%:p')))
-endfunction
-
-
-" This function is called when Vim opens a new buffer with a known wiki
-" extension. Both when the buffer has never been opened in this session and
-" when it has.
-function! s:setup_new_wiki_buffer()
- let wiki_nr = vimwiki#vars#get_bufferlocal('wiki_nr')
- if wiki_nr == -1 " it's not in a known wiki directory
- if vimwiki#vars#get_global('global_ext')
- call s:create_temporary_wiki()
- else
- " the user does not want a temporary wiki, so do nothing
- return
- endif
- endif
-
- if vimwiki#vars#get_wikilocal('maxhi')
- call vimwiki#vars#set_bufferlocal('existing_wikifiles', vimwiki#base#get_wikilinks(wiki_nr, 1))
- call vimwiki#vars#set_bufferlocal('existing_wikidirs',
- \ vimwiki#base#get_wiki_directories(wiki_nr))
- endif
-
- " this makes that ftplugin/vimwiki.vim and afterwards syntax/vimwiki.vim are
- " sourced
- setfiletype vimwiki
-
-endfunction
-
-
-" this is called when the cursor enters the buffer
-function! s:setup_buffer_enter()
- " don't do anything if it's not managed by Vimwiki (that is, when it's not in
- " a registered wiki and not a temporary wiki)
- if vimwiki#vars#get_bufferlocal('wiki_nr') == -1
- return
- endif
-
- if &filetype != 'vimwiki'
- setfiletype vimwiki
- endif
-
- call s:set_global_options()
-
- call s:set_windowlocal_options()
-endfunction
-
-
-function! s:setup_cleared_syntax()
- " highlight groups that get cleared
- " on colorscheme change because they are not linked to Vim-predefined groups
- hi def VimwikiBold term=bold cterm=bold gui=bold
- hi def VimwikiItalic term=italic cterm=italic gui=italic
- hi def VimwikiBoldItalic term=bold cterm=bold gui=bold,italic
- hi def VimwikiUnderline gui=underline
- if vimwiki#vars#get_global('hl_headers') == 1
- for i in range(1,6)
- execute 'hi def VimwikiHeader'.i.' guibg=bg guifg='
- \ . vimwiki#vars#get_global('hcolor_guifg_'.&bg)[i-1]
- \ .' gui=bold ctermfg='.vimwiki#vars#get_global('hcolor_ctermfg_'.&bg)[i-1]
- \ .' term=bold cterm=bold'
- endfor
- endif
-endfunction
-
-
-function! s:vimwiki_get_known_extensions()
- " Getting all extensions that different wikis could have
- let extensions = {}
- for idx in range(vimwiki#vars#number_of_wikis())
- let ext = vimwiki#vars#get_wikilocal('ext', idx)
- let extensions[ext] = 1
- endfor
- " append extensions from g:vimwiki_ext2syntax
- for ext in keys(vimwiki#vars#get_global('ext2syntax'))
- let extensions[ext] = 1
- endfor
- return keys(extensions)
-endfunction
-
-
-" Set settings which are global for Vim, but should only be executed for
-" Vimwiki buffers. So they must be set when the cursor enters a Vimwiki buffer
-" and reset when the cursor leaves the buffer.
-function! s:set_global_options()
- let s:vimwiki_autowriteall_saved = &autowriteall
- let &autowriteall = vimwiki#vars#get_global('autowriteall')
-
- if vimwiki#vars#get_global('menu') !=# ''
- exe 'nmenu enable '.vimwiki#vars#get_global('menu').'.Table'
- endif
-endfunction
-
-
-" Set settings which are local to a window. In a new tab they would be reset to
-" Vim defaults. So we enforce our settings here when the cursor enters a
-" Vimwiki buffer.
-function! s:set_windowlocal_options()
- let foldmethod = vimwiki#vars#get_global('folding')
- if foldmethod =~? '^expr.*'
- setlocal foldmethod=expr
- setlocal foldexpr=VimwikiFoldLevel(v:lnum)
- setlocal foldtext=VimwikiFoldText()
- elseif foldmethod =~? '^list.*' || foldmethod =~? '^lists.*'
- setlocal foldmethod=expr
- setlocal foldexpr=VimwikiFoldListLevel(v:lnum)
- setlocal foldtext=VimwikiFoldText()
- elseif foldmethod =~? '^syntax.*'
- setlocal foldmethod=syntax
- setlocal foldtext=VimwikiFoldText()
- elseif foldmethod =~? '^custom.*'
- " do nothing
- else
- setlocal foldmethod=manual
- normal! zE
- endif
-
- if vimwiki#vars#get_global('conceallevel') && exists("+conceallevel")
- let &conceallevel = vimwiki#vars#get_global('conceallevel')
- endif
-
- if vimwiki#vars#get_global('auto_chdir')
- exe 'lcd' vimwiki#vars#get_wikilocal('path')
- endif
-endfunction
-
-
-function! s:get_version()
- if s:plugin_vers != -1
- echo "Stable version: " . s:plugin_vers
- else
- let a:plugin_rev = system("git --git-dir " . s:plugin_dir . "/.git rev-parse --short HEAD")
- let a:plugin_branch = system("git --git-dir " . s:plugin_dir . "/.git rev-parse --abbrev-ref HEAD")
- let a:plugin_date = system("git --git-dir " . s:plugin_dir . "/.git show -s --format=%ci")
- if v:shell_error == 0
- echo "Branch: " . a:plugin_branch
- echo "Revision: " . a:plugin_rev
- echo "Date: " . a:plugin_date
- else
- echo "Unknown version"
- endif
- endif
-endfunction
-
-
-
-" Initialization of Vimwiki starts here. Make sure everything below does not
-" cause autoload/vimwiki/base.vim to be loaded
-
-call vimwiki#vars#init()
-
-
-" Define callback functions which the user can redefine
-if !exists("*VimwikiLinkHandler")
- function VimwikiLinkHandler(url)
- return 0
- endfunction
-endif
-
-if !exists("*VimwikiLinkConverter")
- function VimwikiLinkConverter(url, source, target)
- " Return the empty string when unable to process link
- return ''
- endfunction
-endif
-
-if !exists("*VimwikiWikiIncludeHandler")
- function! VimwikiWikiIncludeHandler(value)
- return ''
- endfunction
-endif
-
-
-
-" Define autocommands for all known wiki extensions
-
-let s:known_extensions = s:vimwiki_get_known_extensions()
-
-if index(s:known_extensions, '.wiki') > -1
- augroup filetypedetect
- " clear FlexWiki's stuff
- au! * *.wiki
- augroup end
-endif
-
-augroup vimwiki
- autocmd!
- for s:ext in s:known_extensions
- exe 'autocmd BufNewFile,BufRead *'.s:ext.' call s:setup_new_wiki_buffer()'
- exe 'autocmd BufEnter *'.s:ext.' call s:setup_buffer_enter()'
- exe 'autocmd BufLeave *'.s:ext.' call s:setup_buffer_leave()'
- exe 'autocmd ColorScheme *'.s:ext.' call s:setup_cleared_syntax()'
- " Format tables when exit from insert mode. Do not use textwidth to
- " autowrap tables.
- if vimwiki#vars#get_global('table_auto_fmt')
- exe 'autocmd InsertLeave *'.s:ext.' call vimwiki#tbl#format(line("."))'
- exe 'autocmd InsertEnter *'.s:ext.' call vimwiki#tbl#reset_tw(line("."))'
- endif
- if vimwiki#vars#get_global('folding') =~? ':quick$'
- " from http://vim.wikia.com/wiki/Keep_folds_closed_while_inserting_text
- " Don't screw up folds when inserting text that might affect them, until
- " leaving insert mode. Foldmethod is local to the window. Protect against
- " screwing up folding when switching between windows.
- exe 'autocmd InsertEnter *'.s:ext.' if !exists("w:last_fdm") | let w:last_fdm=&foldmethod'.
- \ ' | setlocal foldmethod=manual | endif'
- exe 'autocmd InsertLeave,WinLeave *'.s:ext.' if exists("w:last_fdm") |'.
- \ 'let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif'
- endif
- endfor
-augroup END
-
-
-
-command! VimwikiUISelect call vimwiki#base#ui_select()
-" why not using <count> instead of v:count1?
-" See https://github.com/vimwiki-backup/vimwiki/issues/324
-command! -count=1 VimwikiIndex
- \ call vimwiki#base#goto_index(v:count1)
-command! -count=1 VimwikiTabIndex
- \ call vimwiki#base#goto_index(v:count1, 1)
-
-command! -count=1 VimwikiDiaryIndex
- \ call vimwiki#diary#goto_diary_index(v:count1)
-command! -count=1 VimwikiMakeDiaryNote
- \ call vimwiki#diary#make_note(v:count)
-command! -count=1 VimwikiTabMakeDiaryNote
- \ call vimwiki#diary#make_note(v:count, 1)
-command! -count=1 VimwikiMakeYesterdayDiaryNote
- \ call vimwiki#diary#make_note(v:count, 0,
- \ vimwiki#diary#diary_date_link(localtime() - 60*60*24))
-command! -count=1 VimwikiMakeTomorrowDiaryNote
- \ call vimwiki#diary#make_note(v:count, 0,
- \ vimwiki#diary#diary_date_link(localtime() + 60*60*24))
-
-command! VimwikiDiaryGenerateLinks
- \ call vimwiki#diary#generate_diary_section()
-
-command! VimwikiShowVersion call s:get_version()
-
-
-
-let s:map_prefix = vimwiki#vars#get_global('map_prefix')
-
-if !hasmapto('<Plug>VimwikiIndex')
- exe 'nmap <silent><unique> '.s:map_prefix.'w <Plug>VimwikiIndex'
-endif
-nnoremap <unique><script> <Plug>VimwikiIndex :VimwikiIndex<CR>
-
-if !hasmapto('<Plug>VimwikiTabIndex')
- exe 'nmap <silent><unique> '.s:map_prefix.'t <Plug>VimwikiTabIndex'
-endif
-nnoremap <unique><script> <Plug>VimwikiTabIndex :VimwikiTabIndex<CR>
-
-if !hasmapto('<Plug>VimwikiUISelect')
- exe 'nmap <silent><unique> '.s:map_prefix.'s <Plug>VimwikiUISelect'
-endif
-nnoremap <unique><script> <Plug>VimwikiUISelect :VimwikiUISelect<CR>
-
-if !hasmapto('<Plug>VimwikiDiaryIndex')
- exe 'nmap <silent><unique> '.s:map_prefix.'i <Plug>VimwikiDiaryIndex'
-endif
-nnoremap <unique><script> <Plug>VimwikiDiaryIndex :VimwikiDiaryIndex<CR>
-
-if !hasmapto('<Plug>VimwikiDiaryGenerateLinks')
- exe 'nmap <silent><unique> '.s:map_prefix.'<Leader>i <Plug>VimwikiDiaryGenerateLinks'
-endif
-nnoremap <unique><script> <Plug>VimwikiDiaryGenerateLinks :VimwikiDiaryGenerateLinks<CR>
-
-if !hasmapto('<Plug>VimwikiMakeDiaryNote')
- exe 'nmap <silent><unique> '.s:map_prefix.'<Leader>w <Plug>VimwikiMakeDiaryNote'
-endif
-nnoremap <unique><script> <Plug>VimwikiMakeDiaryNote :VimwikiMakeDiaryNote<CR>
-
-if !hasmapto('<Plug>VimwikiTabMakeDiaryNote')
- exe 'nmap <silent><unique> '.s:map_prefix.'<Leader>t <Plug>VimwikiTabMakeDiaryNote'
-endif
-nnoremap <unique><script> <Plug>VimwikiTabMakeDiaryNote
- \ :VimwikiTabMakeDiaryNote<CR>
-
-if !hasmapto('<Plug>VimwikiMakeYesterdayDiaryNote')
- exe 'nmap <silent><unique> '.s:map_prefix.'<Leader>y <Plug>VimwikiMakeYesterdayDiaryNote'
-endif
-nnoremap <unique><script> <Plug>VimwikiMakeYesterdayDiaryNote
- \ :VimwikiMakeYesterdayDiaryNote<CR>
-
-if !hasmapto('<Plug>VimwikiMakeTomorrowDiaryNote')
- exe 'nmap <silent><unique> '.s:map_prefix.'<Leader>m <Plug>VimwikiMakeTomorrowDiaryNote'
-endif
-nnoremap <unique><script> <Plug>VimwikiMakeTomorrowDiaryNote
- \ :VimwikiMakeTomorrowDiaryNote<CR>
-
-
-
-
-function! s:build_menu(topmenu)
- for idx in range(vimwiki#vars#number_of_wikis())
- let norm_path = fnamemodify(vimwiki#vars#get_wikilocal('path', idx), ':h:t')
- let norm_path = escape(norm_path, '\ \.')
- execute 'menu '.a:topmenu.'.Open\ index.'.norm_path.
- \ ' :call vimwiki#base#goto_index('.(idx+1).')<CR>'
- execute 'menu '.a:topmenu.'.Open/Create\ diary\ note.'.norm_path.
- \ ' :call vimwiki#diary#make_note('.(idx+1).')<CR>'
- endfor
-endfunction
-
-function! s:build_table_menu(topmenu)
- exe 'menu '.a:topmenu.'.-Sep- :'
- exe 'menu '.a:topmenu.'.Table.Create\ (enter\ cols\ rows) :VimwikiTable '
- exe 'nmenu '.a:topmenu.'.Table.Format<tab>gqq gqq'
- exe 'nmenu '.a:topmenu.'.Table.Move\ column\ left<tab><A-Left> :VimwikiTableMoveColumnLeft<CR>'
- exe 'nmenu '.a:topmenu.
- \ '.Table.Move\ column\ right<tab><A-Right> :VimwikiTableMoveColumnRight<CR>'
- exe 'nmenu disable '.a:topmenu.'.Table'
-endfunction
-
-
-if !empty(vimwiki#vars#get_global('menu'))
- call s:build_menu(vimwiki#vars#get_global('menu'))
- call s:build_table_menu(vimwiki#vars#get_global('menu'))
-endif
-
-
-" Hook for calendar.vim
-if vimwiki#vars#get_global('use_calendar')
- let g:calendar_action = 'vimwiki#diary#calendar_action'
- let g:calendar_sign = 'vimwiki#diary#calendar_sign'
-endif
-
-
-let &cpo = s:old_cpo
diff --git a/vim/.vim/plugged/vimwiki/syntax/vimwiki.vim b/vim/.vim/plugged/vimwiki/syntax/vimwiki.vim
deleted file mode 100644
index 512aad9..0000000
--- a/vim/.vim/plugged/vimwiki/syntax/vimwiki.vim
+++ /dev/null
@@ -1,487 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki syntax file
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-" Quit if syntax file is already loaded
-if v:version < 600
- syntax clear
-elseif exists("b:current_syntax")
- finish
-endif
-
-
-let s:current_syntax = vimwiki#vars#get_wikilocal('syntax')
-
-
-call vimwiki#vars#populate_syntax_vars(s:current_syntax)
-
-
-" LINKS: highlighting is complicated due to "nonexistent" links feature
-function! s:add_target_syntax_ON(target, type)
- let prefix0 = 'syntax match '.a:type.' `'
- let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
- let prefix1 = 'syntax match '.a:type.'T `'
- let suffix1 = '` display contained'
- execute prefix0. a:target. suffix0
- execute prefix1. a:target. suffix1
-endfunction
-
-
-function! s:add_target_syntax_OFF(target)
- let prefix0 = 'syntax match VimwikiNoExistsLink `'
- let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,VimwikiLinkChar'
- let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
- let suffix1 = '` display contained'
- execute prefix0. a:target. suffix0
- execute prefix1. a:target. suffix1
-endfunction
-
-
-function! s:highlight_existing_links()
- " Wikilink
- " Conditional highlighting that depends on the existence of a wiki file or
- " directory is only available for *schemeless* wiki links
- " Links are set up upon BufEnter (see plugin/...)
- let safe_links = '\%('.vimwiki#base#file_pattern(
- \ vimwiki#vars#get_bufferlocal('existing_wikifiles')) . '\%(#[^|]*\)\?\|#[^|]*\)'
- " Wikilink Dirs set up upon BufEnter (see plugin/...)
- let safe_dirs = vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikidirs'))
-
- " match [[URL]]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate1')),
- \ safe_links, vimwiki#vars#get_global('rxWikiLinkDescr'), '')
- call s:add_target_syntax_ON(target, 'VimwikiLink')
- " match [[URL|DESCRIPTION]]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate2')),
- \ safe_links, vimwiki#vars#get_global('rxWikiLinkDescr'), '')
- call s:add_target_syntax_ON(target, 'VimwikiLink')
-
- " match {{URL}}
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiInclTemplate1')),
- \ safe_links, vimwiki#vars#get_global('rxWikiInclArgs'), '')
- call s:add_target_syntax_ON(target, 'VimwikiLink')
- " match {{URL|...}}
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiInclTemplate2')),
- \ safe_links, vimwiki#vars#get_global('rxWikiInclArgs'), '')
- call s:add_target_syntax_ON(target, 'VimwikiLink')
- " match [[DIRURL]]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate1')),
- \ safe_dirs, vimwiki#vars#get_global('rxWikiLinkDescr'), '')
- call s:add_target_syntax_ON(target, 'VimwikiLink')
- " match [[DIRURL|DESCRIPTION]]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate2')),
- \ safe_dirs, vimwiki#vars#get_global('rxWikiLinkDescr'), '')
- call s:add_target_syntax_ON(target, 'VimwikiLink')
-endfunction
-
-
-" use max highlighting - could be quite slow if there are too many wikifiles
-if vimwiki#vars#get_wikilocal('maxhi')
- " WikiLink
- call s:add_target_syntax_OFF(vimwiki#vars#get_syntaxlocal('rxWikiLink'))
- " WikiIncl
- call s:add_target_syntax_OFF(vimwiki#vars#get_global('rxWikiIncl'))
-
- " Subsequently, links verified on vimwiki's path are highlighted as existing
- call s:highlight_existing_links()
-else
- " Wikilink
- call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWikiLink'), 'VimwikiLink')
- " WikiIncl
- call s:add_target_syntax_ON(vimwiki#vars#get_global('rxWikiIncl'), 'VimwikiLink')
-endif
-
-
-" Weblink
-call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWeblink'), 'VimwikiLink')
-
-
-" WikiLink
-" All remaining schemes are highlighted automatically
-let s:rxSchemes = '\%('.
- \ vimwiki#vars#get_global('schemes') . '\|'.
- \ vimwiki#vars#get_global('web_schemes1').
- \ '\):'
-
-" a) match [[nonwiki-scheme-URL]]
-let s:target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate1')),
- \ s:rxSchemes.vimwiki#vars#get_global('rxWikiLinkUrl'),
- \ vimwiki#vars#get_global('rxWikiLinkDescr'), '')
-call s:add_target_syntax_ON(s:target, 'VimwikiLink')
-" b) match [[nonwiki-scheme-URL|DESCRIPTION]]
-let s:target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate2')),
- \ s:rxSchemes.vimwiki#vars#get_global('rxWikiLinkUrl'),
- \ vimwiki#vars#get_global('rxWikiLinkDescr'), '')
-call s:add_target_syntax_ON(s:target, 'VimwikiLink')
-
-" a) match {{nonwiki-scheme-URL}}
-let s:target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiInclTemplate1')),
- \ s:rxSchemes.vimwiki#vars#get_global('rxWikiInclUrl'),
- \ vimwiki#vars#get_global('rxWikiInclArgs'), '')
-call s:add_target_syntax_ON(s:target, 'VimwikiLink')
-" b) match {{nonwiki-scheme-URL}[{...}]}
-let s:target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_global('WikiInclTemplate2')),
- \ s:rxSchemes.vimwiki#vars#get_global('rxWikiInclUrl'),
- \ vimwiki#vars#get_global('rxWikiInclArgs'), '')
-call s:add_target_syntax_ON(s:target, 'VimwikiLink')
-
-
-
-" Header levels, 1-6
-for s:i in range(1,6)
- execute 'syntax match VimwikiHeader'.s:i
- \ . ' /'.vimwiki#vars#get_syntaxlocal('rxH'.s:i, s:current_syntax).
- \ '/ contains=VimwikiTodo,VimwikiHeaderChar,VimwikiNoExistsLink,VimwikiCode,'.
- \ 'VimwikiLink,@Spell'
- execute 'syntax region VimwikiH'.s:i.'Folding start=/'.
- \ vimwiki#vars#get_syntaxlocal('rxH'.s:i.'_Start', s:current_syntax).'/ end=/'.
- \ vimwiki#vars#get_syntaxlocal('rxH'.s:i.'_End', s:current_syntax).
- \ '/me=s-1 transparent fold'
-endfor
-
-
-
-" possibly concealed chars
-let s:conceal = exists("+conceallevel") ? ' conceal' : ''
-
-execute 'syn match VimwikiEqInChar contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_eqin').'/'.s:conceal
-execute 'syn match VimwikiBoldChar contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_bold').'/'.s:conceal
-execute 'syn match VimwikiItalicChar contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_italic').'/'.s:conceal
-execute 'syn match VimwikiBoldItalicChar contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_bolditalic').'/'.s:conceal
-execute 'syn match VimwikiItalicBoldChar contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_italicbold').'/'.s:conceal
-execute 'syn match VimwikiCodeChar contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_code').'/'.s:conceal
-execute 'syn match VimwikiDelTextChar contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_deltext').'/'.s:conceal
-execute 'syn match VimwikiSuperScript contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_superscript').'/'.s:conceal
-execute 'syn match VimwikiSubScript contained /'.
- \ vimwiki#vars#get_syntaxlocal('char_subscript').'/'.s:conceal
-
-
-
-
-
-let s:options = ' contained transparent contains=NONE'
-
-" A shortener for long URLs: LinkRest (a middle part of the URL) is concealed
-" VimwikiLinkRest group is left undefined if link shortening is not desired
-if exists("+conceallevel") && vimwiki#vars#get_global('url_maxsave') > 0
- let s:options .= s:conceal
- execute 'syn match VimwikiLinkRest `\%(///\=[^/ \t]\+/\)\zs\S\+\ze'
- \.'\%([/#?]\w\|\S\{'.vimwiki#vars#get_global('url_maxsave').'}\)`'.' cchar=~'.s:options
-endif
-
-" VimwikiLinkChar is for syntax markers (and also URL when a description
-" is present) and may be concealed
-
-" conceal wikilinks
-execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rx_wikilink_prefix').'/'.s:options
-execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rx_wikilink_suffix').'/'.s:options
-execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rx_wikilink_prefix1').'/'.s:options
-execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rx_wikilink_suffix1').'/'.s:options
-
-" conceal wikiincls
-execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rxWikiInclPrefix').'/'.s:options
-execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rxWikiInclSuffix').'/'.s:options
-execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rxWikiInclPrefix1').'/'.s:options
-execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rxWikiInclSuffix1').'/'.s:options
-
-
-" non concealed chars
-execute 'syn match VimwikiHeaderChar contained /\%(^\s*'.
- \ vimwiki#vars#get_syntaxlocal('rxH').'\+\)\|\%('.vimwiki#vars#get_syntaxlocal('rxH').
- \ '\+\s*$\)/'
-execute 'syn match VimwikiEqInCharT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_eqin').'/'
-execute 'syn match VimwikiBoldCharT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_bold').'/'
-execute 'syn match VimwikiItalicCharT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_italic').'/'
-execute 'syn match VimwikiBoldItalicCharT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_bolditalic').'/'
-execute 'syn match VimwikiItalicBoldCharT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_italicbold').'/'
-execute 'syn match VimwikiCodeCharT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_code').'/'
-execute 'syn match VimwikiDelTextCharT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_deltext').'/'
-execute 'syn match VimwikiSuperScriptT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_superscript').'/'
-execute 'syn match VimwikiSubScriptT contained /'
- \ .vimwiki#vars#get_syntaxlocal('char_subscript').'/'
-
-
-execute 'syntax match VimwikiTodo /'. vimwiki#vars#get_global('rxTodo') .'/'
-
-
-
-" Tables
-syntax match VimwikiTableRow /^\s*|.\+|\s*$/
- \ transparent contains=VimwikiCellSeparator,
- \ VimwikiLinkT,
- \ VimwikiNoExistsLinkT,
- \ VimwikiTodo,
- \ VimwikiBoldT,
- \ VimwikiItalicT,
- \ VimwikiBoldItalicT,
- \ VimwikiItalicBoldT,
- \ VimwikiDelTextT,
- \ VimwikiSuperScriptT,
- \ VimwikiSubScriptT,
- \ VimwikiCodeT,
- \ VimwikiEqInT,
- \ @Spell
-syntax match VimwikiCellSeparator
- \ /\%(|\)\|\%(-\@<=+\-\@=\)\|\%([|+]\@<=-\+\)/ contained
-
-
-" Lists
-execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB').'/'
-execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListDefine').'/'
-execute 'syntax match VimwikiListTodo /'.vimwiki#vars#get_syntaxlocal('rxListItem').'/'
-
-if vimwiki#vars#get_global('hl_cb_checked') == 1
- execute 'syntax match VimwikiCheckBoxDone /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB')
- \ . '\s*\[['.vimwiki#vars#get_syntaxlocal('listsyms_list')[-1]
- \ . vimwiki#vars#get_global('listsym_rejected')
- \ . ']\]\s.*$/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
-elseif vimwiki#vars#get_global('hl_cb_checked') == 2
- execute 'syntax match VimwikiCheckBoxDone /'
- \ . vimwiki#vars#get_syntaxlocal('rxListItemAndChildren')
- \ .'/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
-endif
-
-
-execute 'syntax match VimwikiEqIn /'.vimwiki#vars#get_syntaxlocal('rxEqIn').
- \ '/ contains=VimwikiEqInChar'
-execute 'syntax match VimwikiEqInT /'.vimwiki#vars#get_syntaxlocal('rxEqIn').
- \ '/ contained contains=VimwikiEqInCharT'
-
-execute 'syntax match VimwikiBold /'.vimwiki#vars#get_syntaxlocal('rxBold').
- \ '/ contains=VimwikiBoldChar,@Spell'
-execute 'syntax match VimwikiBoldT /'.vimwiki#vars#get_syntaxlocal('rxBold').
- \ '/ contained contains=VimwikiBoldCharT,@Spell'
-
-execute 'syntax match VimwikiItalic /'.vimwiki#vars#get_syntaxlocal('rxItalic').
- \ '/ contains=VimwikiItalicChar,@Spell'
-execute 'syntax match VimwikiItalicT /'.vimwiki#vars#get_syntaxlocal('rxItalic').
- \ '/ contained contains=VimwikiItalicCharT,@Spell'
-
-execute 'syntax match VimwikiBoldItalic /'.vimwiki#vars#get_syntaxlocal('rxBoldItalic').
- \ '/ contains=VimwikiBoldItalicChar,VimwikiItalicBoldChar,@Spell'
-execute 'syntax match VimwikiBoldItalicT /'.vimwiki#vars#get_syntaxlocal('rxBoldItalic').
- \ '/ contained contains=VimwikiBoldItalicChatT,VimwikiItalicBoldCharT,@Spell'
-
-execute 'syntax match VimwikiItalicBold /'.vimwiki#vars#get_syntaxlocal('rxItalicBold').
- \ '/ contains=VimwikiBoldItalicChar,VimwikiItalicBoldChar,@Spell'
-execute 'syntax match VimwikiItalicBoldT /'.vimwiki#vars#get_syntaxlocal('rxItalicBold').
- \ '/ contained contains=VimwikiBoldItalicCharT,VimsikiItalicBoldCharT,@Spell'
-
-execute 'syntax match VimwikiDelText /'.vimwiki#vars#get_syntaxlocal('rxDelText').
- \ '/ contains=VimwikiDelTextChar,@Spell'
-execute 'syntax match VimwikiDelTextT /'.vimwiki#vars#get_syntaxlocal('rxDelText').
- \ '/ contained contains=VimwikiDelTextChar,@Spell'
-
-execute 'syntax match VimwikiSuperScript /'.vimwiki#vars#get_syntaxlocal('rxSuperScript').
- \ '/ contains=VimwikiSuperScriptChar,@Spell'
-execute 'syntax match VimwikiSuperScriptT /'.vimwiki#vars#get_syntaxlocal('rxSuperScript').
- \ '/ contained contains=VimwikiSuperScriptCharT,@Spell'
-
-execute 'syntax match VimwikiSubScript /'.vimwiki#vars#get_syntaxlocal('rxSubScript').
- \ '/ contains=VimwikiSubScriptChar,@Spell'
-execute 'syntax match VimwikiSubScriptT /'.vimwiki#vars#get_syntaxlocal('rxSubScript').
- \ '/ contained contains=VimwikiSubScriptCharT,@Spell'
-
-execute 'syntax match VimwikiCode /'.vimwiki#vars#get_syntaxlocal('rxCode').
- \ '/ contains=VimwikiCodeChar'
-execute 'syntax match VimwikiCodeT /'.vimwiki#vars#get_syntaxlocal('rxCode').
- \ '/ contained contains=VimwikiCodeCharT'
-
-
-" <hr> horizontal rule
-execute 'syntax match VimwikiHR /'.vimwiki#vars#get_syntaxlocal('rxHR').'/'
-
-execute 'syntax region VimwikiPre start=/'.vimwiki#vars#get_syntaxlocal('rxPreStart').
- \ '/ end=/'.vimwiki#vars#get_syntaxlocal('rxPreEnd').'/ contains=@Spell'
-
-execute 'syntax region VimwikiMath start=/'.vimwiki#vars#get_syntaxlocal('rxMathStart').
- \ '/ end=/'.vimwiki#vars#get_syntaxlocal('rxMathEnd').'/ contains=@Spell'
-
-
-" placeholders
-syntax match VimwikiPlaceholder /^\s*%nohtml\s*$/
-syntax match VimwikiPlaceholder
- \ /^\s*%title\ze\%(\s.*\)\?$/ nextgroup=VimwikiPlaceholderParam skipwhite
-syntax match VimwikiPlaceholder
- \ /^\s*%date\ze\%(\s.*\)\?$/ nextgroup=VimwikiPlaceholderParam skipwhite
-syntax match VimwikiPlaceholder
- \ /^\s*%template\ze\%(\s.*\)\?$/ nextgroup=VimwikiPlaceholderParam skipwhite
-syntax match VimwikiPlaceholderParam /.*/ contained
-
-
-" html tags
-if vimwiki#vars#get_global('valid_html_tags') != ''
- let s:html_tags = join(split(vimwiki#vars#get_global('valid_html_tags'), '\s*,\s*'), '\|')
- exe 'syntax match VimwikiHTMLtag #\c</\?\%('.s:html_tags.'\)\%(\s\{-1}\S\{-}\)\{-}\s*/\?>#'
- execute 'syntax match VimwikiBold #\c<b>.\{-}</b># contains=VimwikiHTMLTag'
- execute 'syntax match VimwikiItalic #\c<i>.\{-}</i># contains=VimwikiHTMLTag'
- execute 'syntax match VimwikiUnderline #\c<u>.\{-}</u># contains=VimwikiHTMLTag'
-
- execute 'syntax match VimwikiComment /'.vimwiki#vars#get_syntaxlocal('rxComment').
- \ '/ contains=@Spell,VimwikiTodo'
-endif
-
-" tags
-execute 'syntax match VimwikiTag /'.vimwiki#vars#get_syntaxlocal('rxTags').'/'
-
-
-
-" header groups highlighting
-if vimwiki#vars#get_global('hl_headers') == 0
- " Strangely in default colorscheme Title group is not set to bold for cterm...
- if !exists("g:colors_name")
- hi Title cterm=bold
- endif
- for s:i in range(1,6)
- execute 'hi def link VimwikiHeader'.s:i.' Title'
- endfor
-else
- for s:i in range(1,6)
- execute 'hi def VimwikiHeader'.s:i.' guibg=bg guifg='
- \ .vimwiki#vars#get_global('hcolor_guifg_'.&bg)[s:i-1].' gui=bold ctermfg='
- \ .vimwiki#vars#get_global('hcolor_ctermfg_'.&bg)[s:i-1].' term=bold cterm=bold'
- endfor
-endif
-
-
-
-hi def link VimwikiMarkers Normal
-
-hi def link VimwikiEqIn Number
-hi def link VimwikiEqInT VimwikiEqIn
-
-hi def VimwikiBold term=bold cterm=bold gui=bold
-hi def link VimwikiBoldT VimwikiBold
-
-hi def VimwikiItalic term=italic cterm=italic gui=italic
-hi def link VimwikiItalicT VimwikiItalic
-
-hi def VimwikiBoldItalic term=bold cterm=bold gui=bold,italic
-hi def link VimwikiItalicBold VimwikiBoldItalic
-hi def link VimwikiBoldItalicT VimwikiBoldItalic
-hi def link VimwikiItalicBoldT VimwikiBoldItalic
-
-hi def VimwikiUnderline gui=underline
-
-hi def link VimwikiCode PreProc
-hi def link VimwikiCodeT VimwikiCode
-
-hi def link VimwikiPre PreProc
-hi def link VimwikiPreT VimwikiPre
-
-hi def link VimwikiMath Number
-hi def link VimwikiMathT VimwikiMath
-
-hi def link VimwikiNoExistsLink SpellBad
-hi def link VimwikiNoExistsLinkT VimwikiNoExistsLink
-
-hi def link VimwikiLink Underlined
-hi def link VimwikiLinkT VimwikiLink
-
-hi def link VimwikiList Identifier
-hi def link VimwikiListTodo VimwikiList
-hi def link VimwikiCheckBoxDone Comment
-hi def link VimwikiHR Identifier
-hi def link VimwikiTag Keyword
-
-hi def link VimwikiDelText Constant
-hi def link VimwikiDelTextT VimwikiDelText
-
-hi def link VimwikiSuperScript Number
-hi def link VimwikiSuperScriptT VimwikiSuperScript
-
-hi def link VimwikiSubScript Number
-hi def link VimwikiSubScriptT VimwikiSubScript
-
-hi def link VimwikiTodo Todo
-hi def link VimwikiComment Comment
-
-hi def link VimwikiPlaceholder SpecialKey
-hi def link VimwikiPlaceholderParam String
-hi def link VimwikiHTMLtag SpecialKey
-
-hi def link VimwikiEqInChar VimwikiMarkers
-hi def link VimwikiCellSeparator VimwikiMarkers
-hi def link VimwikiBoldChar VimwikiMarkers
-hi def link VimwikiItalicChar VimwikiMarkers
-hi def link VimwikiBoldItalicChar VimwikiMarkers
-hi def link VimwikiItalicBoldChar VimwikiMarkers
-hi def link VimwikiDelTextChar VimwikiMarkers
-hi def link VimwikiSuperScriptChar VimwikiMarkers
-hi def link VimwikiSubScriptChar VimwikiMarkers
-hi def link VimwikiCodeChar VimwikiMarkers
-hi def link VimwikiHeaderChar VimwikiMarkers
-
-hi def link VimwikiEqInCharT VimwikiMarkers
-hi def link VimwikiBoldCharT VimwikiMarkers
-hi def link VimwikiItalicCharT VimwikiMarkers
-hi def link VimwikiBoldItalicCharT VimwikiMarkers
-hi def link VimwikiItalicBoldCharT VimwikiMarkers
-hi def link VimwikiDelTextCharT VimwikiMarkers
-hi def link VimwikiSuperScriptCharT VimwikiMarkers
-hi def link VimwikiSubScriptCharT VimwikiMarkers
-hi def link VimwikiCodeCharT VimwikiMarkers
-hi def link VimwikiHeaderCharT VimwikiMarkers
-hi def link VimwikiLinkCharT VimwikiLinkT
-hi def link VimwikiNoExistsLinkCharT VimwikiNoExistsLinkT
-
-
-" Load syntax-specific functionality
-call vimwiki#u#reload_regexes_custom()
-
-
-" FIXME it now does not make sense to pretend there is a single syntax "vimwiki"
-let b:current_syntax="vimwiki"
-
-
-" EMBEDDED syntax setup
-let s:nested = vimwiki#vars#get_wikilocal('nested_syntaxes')
-if vimwiki#vars#get_wikilocal('automatic_nested_syntaxes')
- let s:nested = extend(s:nested, vimwiki#base#detect_nested_syntax(), "keep")
-endif
-if !empty(s:nested)
- for [s:hl_syntax, s:vim_syntax] in items(s:nested)
- call vimwiki#base#nested_syntax(s:vim_syntax,
- \ vimwiki#vars#get_syntaxlocal('rxPreStart').'\%(.*[[:blank:][:punct:]]\)\?'.
- \ s:hl_syntax.'\%([[:blank:][:punct:]].*\)\?',
- \ vimwiki#vars#get_syntaxlocal('rxPreEnd'), 'VimwikiPre')
- endfor
-endif
-
-
-" LaTeX
-call vimwiki#base#nested_syntax('tex',
- \ vimwiki#vars#get_syntaxlocal('rxMathStart').'\%(.*[[:blank:][:punct:]]\)\?'.
- \ '\%([[:blank:][:punct:]].*\)\?',
- \ vimwiki#vars#get_syntaxlocal('rxMathEnd'), 'VimwikiMath')
-
-
-syntax spell toplevel
-
diff --git a/vim/.vim/plugged/vimwiki/syntax/vimwiki_default.vim b/vim/.vim/plugged/vimwiki/syntax/vimwiki_default.vim
deleted file mode 100644
index 1fcbdec..0000000
--- a/vim/.vim/plugged/vimwiki/syntax/vimwiki_default.vim
+++ /dev/null
@@ -1,110 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki syntax file
-" Description: Defines default syntax
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-" s:default_syntax is kind of a reference to the dict in
-" g:vimwiki_syntax_variables['default']. It is used here simply as an
-" abbreviation for the latter.
-let s:default_syntax = g:vimwiki_syntax_variables['default']
-
-
-
-" text: $ equation_inline $
-let s:default_syntax.rxEqIn = '\$[^$`]\+\$'
-let s:default_syntax.char_eqin = '\$'
-
-" text: *strong*
-" let s:default_syntax.rxBold = '\*[^*]\+\*'
-let s:default_syntax.rxBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
- \'\*'.
- \'\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)'.
- \'\*'.
- \'\%([[:punct:]]\|\s\|$\)\@='
-let s:default_syntax.char_bold = '*'
-
-" text: _emphasis_
-" let s:default_syntax.rxItalic = '_[^_]\+_'
-let s:default_syntax.rxItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
- \'_'.
- \'\%([^_`[:space:]][^_`]*[^_`[:space:]]\|[^_`[:space:]]\)'.
- \'_'.
- \'\%([[:punct:]]\|\s\|$\)\@='
-let s:default_syntax.char_italic = '_'
-
-" text: *_bold italic_* or _*italic bold*_
-let s:default_syntax.rxBoldItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
- \'\*_'.
- \'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
- \'_\*'.
- \'\%([[:punct:]]\|\s\|$\)\@='
-let s:default_syntax.char_bolditalic = '\*_'
-
-let s:default_syntax.rxItalicBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
- \'_\*'.
- \'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
- \'\*_'.
- \'\%([[:punct:]]\|\s\|$\)\@='
-let s:default_syntax.char_italicbold = '_\*'
-
-" text: `code`
-let s:default_syntax.rxCode = '`[^`]\+`'
-let s:default_syntax.char_code = '`'
-
-" text: ~~deleted text~~
-let s:default_syntax.rxDelText = '\~\~[^~`]\+\~\~'
-let s:default_syntax.char_deltext = '\~\~'
-
-" text: ^superscript^
-let s:default_syntax.rxSuperScript = '\^[^^`]\+\^'
-let s:default_syntax.char_superscript = '^'
-
-" text: ,,subscript,,
-let s:default_syntax.rxSubScript = ',,[^,`]\+,,'
-let s:default_syntax.char_subscript = ',,'
-
-" generic headers
-let s:default_syntax.rxH = '='
-let s:default_syntax.symH = 1
-
-
-
-" <hr>, horizontal rule
-let s:default_syntax.rxHR = '^-----*$'
-
-" Tables. Each line starts and ends with '|'; each cell is separated by '|'
-let s:default_syntax.rxTableSep = '|'
-
-" Lists
-let s:default_syntax.bullet_types = ['-', '*', '#']
-" 1 means the bullets can be repeatet to indicate the level, like * ** ***
-" 0 means the bullets stand on their own and the level is indicated by the indentation
-let s:default_syntax.recurring_bullets = 0
-let s:default_syntax.number_types = ['1)', '1.', 'i)', 'I)', 'a)', 'A)']
-"this should contain at least one element
-"it is used for i_<C-L><C-J> among other things
-let s:default_syntax.list_markers = ['-', '1.', '*', 'I)', 'a)']
-let s:default_syntax.rxListDefine = '::\(\s\|$\)'
-
-" Preformatted text
-let s:default_syntax.rxPreStart = '{{{'
-let s:default_syntax.rxPreEnd = '}}}'
-
-" Math block
-let s:default_syntax.rxMathStart = '{{\$'
-let s:default_syntax.rxMathEnd = '}}\$'
-
-let s:default_syntax.rxComment = '^\s*%%.*$'
-let s:default_syntax.rxTags = '\%(^\|\s\)\@<=:\%([^:''[:space:]]\+:\)\+\%(\s\|$\)\@='
-
-let s:default_syntax.header_search = '^\s*\(=\{1,6}\)\([^=].*[^=]\)\1\s*$'
-let s:default_syntax.header_match = '^\s*\(=\{1,6}\)=\@!\s*__Header__\s*\1=\@!\s*$'
-let s:default_syntax.bold_search = '\%(^\|\s\|[[:punct:]]\)\@<=\*\zs\%([^*`[:space:]][^*`]*'.
- \ '[^*`[:space:]]\|[^*`[:space:]]\)\ze\*\%([[:punct:]]\|\s\|$\)\@='
-let s:default_syntax.bold_match = '\%(^\|\s\|[[:punct:]]\)\@<=\*__Text__\*'.
- \ '\%([[:punct:]]\|\s\|$\)\@='
-let s:default_syntax.wikilink = '\[\[\zs[^\\\]|]\+\ze\%(|[^\\\]]\+\)\?\]\]'
-let s:default_syntax.tag_search = '\(^\|\s\)\zs:\([^:''[:space:]]\+:\)\+\ze\(\s\|$\)'
-let s:default_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:'.
- \ '\([^:[:space:]]\+:\)*\(\s\|$\)'
diff --git a/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown.vim b/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown.vim
deleted file mode 100644
index 5962699..0000000
--- a/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown.vim
+++ /dev/null
@@ -1,104 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki syntax file
-" Description: Defines markdown syntax
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-" see the comments in vimwiki_default.vim for some info about this file
-
-
-let s:markdown_syntax = g:vimwiki_syntax_variables['markdown']
-
-" text: $ equation_inline $
-let s:markdown_syntax.rxEqIn = '\$[^$`]\+\$'
-let s:markdown_syntax.char_eqin = '\$'
-
-" text: *strong*
-" let s:markdown_syntax.rxBold = '\*[^*]\+\*'
-let s:markdown_syntax.rxBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
- \'\*'.
- \'\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)'.
- \'\*'.
- \'\%([[:punct:]]\|\s\|$\)\@='
-let s:markdown_syntax.char_bold = '*'
-
-" text: _emphasis_
-" let s:markdown_syntax.rxItalic = '_[^_]\+_'
-let s:markdown_syntax.rxItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
- \'_'.
- \'\%([^_`[:space:]][^_`]*[^_`[:space:]]\|[^_`[:space:]]\)'.
- \'_'.
- \'\%([[:punct:]]\|\s\|$\)\@='
-let s:markdown_syntax.char_italic = '_'
-
-" text: *_bold italic_* or _*italic bold*_
-let s:markdown_syntax.rxBoldItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
- \'\*_'.
- \'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
- \'_\*'.
- \'\%([[:punct:]]\|\s\|$\)\@='
-let s:markdown_syntax.char_bolditalic = '\*_'
-
-let s:markdown_syntax.rxItalicBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
- \'_\*'.
- \'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
- \'\*_'.
- \'\%([[:punct:]]\|\s\|$\)\@='
-let s:markdown_syntax.char_italicbold = '_\*'
-
-" text: `code`
-let s:markdown_syntax.rxCode = '`[^`]\+`'
-let s:markdown_syntax.char_code = '`'
-
-" text: ~~deleted text~~
-let s:markdown_syntax.rxDelText = '\~\~[^~`]\+\~\~'
-let s:markdown_syntax.char_deltext = '\~\~'
-
-" text: ^superscript^
-let s:markdown_syntax.rxSuperScript = '\^[^^`]\+\^'
-let s:markdown_syntax.char_superscript = '^'
-
-" text: ,,subscript,,
-let s:markdown_syntax.rxSubScript = ',,[^,`]\+,,'
-let s:markdown_syntax.char_subscript = ',,'
-
-" generic headers
-let s:markdown_syntax.rxH = '#'
-let s:markdown_syntax.symH = 0
-
-
-
-" <hr>, horizontal rule
-let s:markdown_syntax.rxHR = '^-----*$'
-
-" Tables. Each line starts and ends with '|'; each cell is separated by '|'
-let s:markdown_syntax.rxTableSep = '|'
-
-" Lists
-let s:markdown_syntax.bullet_types = ['-', '*', '+']
-let s:markdown_syntax.recurring_bullets = 0
-let s:markdown_syntax.number_types = ['1.']
-let s:markdown_syntax.list_markers = ['-', '*', '+', '1.']
-let s:markdown_syntax.rxListDefine = '::\%(\s\|$\)'
-
-" Preformatted text
-let s:markdown_syntax.rxPreStart = '```'
-let s:markdown_syntax.rxPreEnd = '```'
-
-" Math block
-let s:markdown_syntax.rxMathStart = '\$\$'
-let s:markdown_syntax.rxMathEnd = '\$\$'
-
-let s:markdown_syntax.rxComment = '^\s*%%.*$\|<!--[^>]*-->'
-let s:markdown_syntax.rxTags = '\%(^\|\s\)\@<=:\%([^:[:space:]]\+:\)\+\%(\s\|$\)\@='
-
-let s:markdown_syntax.header_search = '^\s*\(#\{1,6}\)\([^#].*\)$'
-let s:markdown_syntax.header_match = '^\s*\(#\{1,6}\)#\@!\s*__Header__\s*$'
-let s:markdown_syntax.bold_search = '\%(^\|\s\|[[:punct:]]\)\@<=\*\zs'.
- \ '\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)\ze\*\%([[:punct:]]\|\s\|$\)\@='
-let s:markdown_syntax.bold_match = '\%(^\|\s\|[[:punct:]]\)\@<=\*__Text__\*'.
- \ '\%([[:punct:]]\|\s\|$\)\@='
-let s:markdown_syntax.wikilink = '\[\[\zs[^\\\]|]\+\ze\%(|[^\\\]]\+\)\?\]\]'
-let s:markdown_syntax.tag_search = '\(^\|\s\)\zs:\([^:''[:space:]]\+:\)\+\ze\(\s\|$\)'
-let s:markdown_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:'.
- \ '\([^:[:space:]]\+:\)*\(\s\|$\)'
diff --git a/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim b/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim
deleted file mode 100644
index 46f3ce1..0000000
--- a/vim/.vim/plugged/vimwiki/syntax/vimwiki_markdown_custom.vim
+++ /dev/null
@@ -1,194 +0,0 @@
-
-
-
-
-
-
-function! s:add_target_syntax_ON(target, type)
- let prefix0 = 'syntax match '.a:type.' `'
- let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
- let prefix1 = 'syntax match '.a:type.'T `'
- let suffix1 = '` display contained'
- execute prefix0. a:target. suffix0
- execute prefix1. a:target. suffix1
-endfunction
-
-
-function! s:add_target_syntax_OFF(target, type)
- let prefix0 = 'syntax match VimwikiNoExistsLink `'
- let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
- let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
- let suffix1 = '` display contained'
- execute prefix0. a:target. suffix0
- execute prefix1. a:target. suffix1
-endfunction
-
-
-function! s:wrap_wikilink1_rx(target)
- return vimwiki#vars#get_syntaxlocal('rxWikiLink1InvalidPrefix') . a:target.
- \ vimwiki#vars#get_syntaxlocal('rxWikiLink1InvalidSuffix')
-endfunction
-
-
-function! s:existing_mkd_refs()
- return keys(vimwiki#markdown_base#scan_reflinks())
-endfunction
-
-
-function! s:highlight_existing_links()
- " Wikilink1
- " Conditional highlighting that depends on the existence of a wiki file or
- " directory is only available for *schemeless* wiki links
- " Links are set up upon BufEnter (see plugin/...)
- let safe_links = '\%('.
- \ vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikifiles')) .
- \ '\%(#[^|]*\)\?\|#[^|]*\)'
- " Wikilink1 Dirs set up upon BufEnter (see plugin/...)
- let safe_dirs = vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikidirs'))
- " Ref links are cached
- let safe_reflinks = vimwiki#base#file_pattern(s:existing_mkd_refs())
-
-
- " match [URL][]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
- \ safe_links, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
- call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
- " match [DESCRIPTION][URL]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
- \ safe_links, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
- call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
-
- " match [DIRURL][]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
- \ safe_dirs, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
- call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
- " match [DESCRIPTION][DIRURL]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
- \ safe_dirs, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
- call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
-
- " match [MKDREF][]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
- \ safe_reflinks, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
- call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
- " match [DESCRIPTION][MKDREF]
- let target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
- \ safe_reflinks, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
- call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
-endfunction
-
-
-" use max highlighting - could be quite slow if there are too many wikifiles
-if vimwiki#vars#get_wikilocal('maxhi')
- " WikiLink
- call s:add_target_syntax_OFF(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), 'VimwikiWikiLink1')
-
- " Subsequently, links verified on vimwiki's path are highlighted as existing
- call s:highlight_existing_links()
-else
- " Wikilink
- call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), 'VimwikiWikiLink1')
-endif
-
-
-" Weblink
-call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWeblink1'), 'VimwikiWeblink1')
-
-
-" WikiLink
-" All remaining schemes are highlighted automatically
-let s:rxSchemes = '\%('.
- \ vimwiki#vars#get_global('schemes') . '\|'.
- \ vimwiki#vars#get_global('web_schemes1').
- \ '\):'
-
-" a) match [nonwiki-scheme-URL]
-let s:target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
- \ s:rxSchemes . vimwiki#vars#get_syntaxlocal('rxWikiLink1Url'),
- \ vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
-call s:add_target_syntax_ON(s:wrap_wikilink1_rx(s:target), 'VimwikiWikiLink1')
-" b) match [DESCRIPTION][nonwiki-scheme-URL]
-let s:target = vimwiki#base#apply_template(
- \ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
- \ s:rxSchemes . vimwiki#vars#get_syntaxlocal('rxWikiLink1Url'),
- \ vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
-call s:add_target_syntax_ON(s:wrap_wikilink1_rx(s:target), 'VimwikiWikiLink1')
-
-
-
-" Header levels, 1-6
-for s:i in range(1,6)
- execute 'syntax match VimwikiHeader'.s:i.' /'.vimwiki#vars#get_syntaxlocal('rxH'.s:i).
- \ '/ contains=VimwikiTodo,VimwikiHeaderChar,VimwikiNoExistsLink,VimwikiCode,'.
- \ 'VimwikiLink,VimwikiWeblink1,VimwikiWikiLink1,@Spell'
-endfor
-
-
-
-" concealed chars
-if exists("+conceallevel")
- syntax conceal on
-endif
-
-syntax spell toplevel
-
-" VimwikiWikiLink1Char is for syntax markers (and also URL when a description
-" is present) and may be concealed
-let s:options = ' contained transparent contains=NONE'
-" conceal wikilink1
-execute 'syn match VimwikiWikiLink1Char /'.
- \ vimwiki#vars#get_syntaxlocal('rx_wikilink_md_prefix').'/'.s:options
-execute 'syn match VimwikiWikiLink1Char /'.
- \ vimwiki#vars#get_syntaxlocal('rx_wikilink_md_suffix').'/'.s:options
-execute 'syn match VimwikiWikiLink1Char /'.
- \ vimwiki#vars#get_syntaxlocal('rxWikiLink1Prefix1').'/'.s:options
-execute 'syn match VimwikiWikiLink1Char /'.
- \ vimwiki#vars#get_syntaxlocal('rxWikiLink1Suffix1').'/'.s:options
-
-" conceal weblink1
-execute 'syn match VimwikiWeblink1Char "'.
- \ vimwiki#vars#get_syntaxlocal('rxWeblink1Prefix1').'"'.s:options
-execute 'syn match VimwikiWeblink1Char "'.
- \ vimwiki#vars#get_syntaxlocal('rxWeblink1Suffix1').'"'.s:options
-
-if exists("+conceallevel")
- syntax conceal off
-endif
-
-
-
-" Tables
-syntax match VimwikiTableRow /^\s*|.\+|\s*$/
- \ transparent contains=VimwikiCellSeparator,
- \ VimwikiLinkT,
- \ VimwikiWeblink1T,
- \ VimwikiWikiLink1T,
- \ VimwikiNoExistsLinkT,
- \ VimwikiTodo,
- \ VimwikiBoldT,
- \ VimwikiItalicT,
- \ VimwikiBoldItalicT,
- \ VimwikiItalicBoldT,
- \ VimwikiDelTextT,
- \ VimwikiSuperScriptT,
- \ VimwikiSubScriptT,
- \ VimwikiCodeT,
- \ VimwikiEqInT,
- \ @Spell
-
-
-
-" syntax group highlighting
-hi def link VimwikiWeblink1 VimwikiLink
-hi def link VimwikiWeblink1T VimwikiLink
-
-hi def link VimwikiWikiLink1 VimwikiLink
-hi def link VimwikiWikiLink1T VimwikiLink
-
diff --git a/vim/.vim/plugged/vimwiki/syntax/vimwiki_media.vim b/vim/.vim/plugged/vimwiki/syntax/vimwiki_media.vim
deleted file mode 100644
index 6287c7c..0000000
--- a/vim/.vim/plugged/vimwiki/syntax/vimwiki_media.vim
+++ /dev/null
@@ -1,85 +0,0 @@
-" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
-" Vimwiki syntax file
-" Description: Defines mediaWiki syntax
-" Home: https://github.com/vimwiki/vimwiki/
-
-
-" see the comments in vimwiki_default.vim for some info about this file
-
-
-let s:media_syntax = g:vimwiki_syntax_variables['media']
-
-" text: $ equation_inline $
-let s:media_syntax.rxEqIn = '\$[^$`]\+\$'
-let s:media_syntax.char_eqin = '\$'
-
-" text: '''strong'''
-let s:media_syntax.rxBold = "'''[^']\\+'''"
-let s:media_syntax.char_bold = "'''"
-
-" text: ''emphasis''
-let s:media_syntax.rxItalic = "''[^']\\+''"
-let s:media_syntax.char_italic = "''"
-
-" text: '''''strong italic'''''
-let s:media_syntax.rxBoldItalic = "'''''[^']\\+'''''"
-let s:media_syntax.rxItalicBold = s:media_syntax.rxBoldItalic
-let s:media_syntax.char_bolditalic = "'''''"
-let s:media_syntax.char_italicbold = s:media_syntax.char_bolditalic
-
-" text: `code`
-let s:media_syntax.rxCode = '`[^`]\+`'
-let s:media_syntax.char_code = '`'
-
-" text: ~~deleted text~~
-let s:media_syntax.rxDelText = '\~\~[^~]\+\~\~'
-let s:media_syntax.char_deltext = '\~\~'
-
-" text: ^superscript^
-let s:media_syntax.rxSuperScript = '\^[^^]\+\^'
-let s:media_syntax.char_superscript = '^'
-
-" text: ,,subscript,,
-let s:media_syntax.rxSubScript = ',,[^,]\+,,'
-let s:media_syntax.char_subscript = ',,'
-
-" generic headers
-let s:media_syntax.rxH = '='
-let s:media_syntax.symH = 1
-
-
-
-" <hr>, horizontal rule
-let s:media_syntax.rxHR = '^-----*$'
-
-" Tables. Each line starts and ends with '|'; each cell is separated by '|'
-let s:media_syntax.rxTableSep = '|'
-
-" Lists
-let s:media_syntax.bullet_types = ['*', '#']
-let s:media_syntax.recurring_bullets = 1
-let s:media_syntax.number_types = []
-let s:media_syntax.list_markers = ['*', '#']
-let s:media_syntax.rxListDefine = '^\%(;\|:\)\s'
-
-" Preformatted text
-let s:media_syntax.rxPreStart = '<pre>'
-let s:media_syntax.rxPreEnd = '<\/pre>'
-
-" Math block
-let s:media_syntax.rxMathStart = '{{\$'
-let s:media_syntax.rxMathEnd = '}}\$'
-
-let s:media_syntax.rxComment = '^\s*%%.*$'
-let s:media_syntax.rxTags = '\%(^\|\s\)\@<=:\%([^:[:space:]]\+:\)\+\%(\s\|$\)\@='
-
-let s:media_syntax.header_search = '^\s*\(=\{1,6}\)\([^=].*[^=]\)\1\s*$'
-let s:media_syntax.header_match = '^\s*\(=\{1,6}\)=\@!\s*__Header__\s*\1=\@!\s*$'
-let s:media_syntax.bold_search = "'''\\zs[^']\\+\\ze'''"
-let s:media_syntax.bold_match = '''''''__Text__'''''''
-" ^- this strange looking thing is equivalent to "'''__Text__'''" but since we later
-" want to call escape() on this string, we must keep it in single quotes
-let s:media_syntax.wikilink = '\[\[\zs[^\\\]|]\+\ze\%(|[^\\\]]\+\)\?\]\]'
-let s:media_syntax.tag_search = '\(^\|\s\)\zs:\([^:''[:space:]]\+:\)\+\ze\(\s\|$\)'
-let s:media_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:'.
- \ '\([^:[:space:]]\+:\)*\(\s\|$\)'