Merge branch 'dev' into path-handling
Conflicts: autoload/vimwiki/base.vim autoload/vimwiki/diary.vim autoload/vimwiki/html.vim autoload/vimwiki/path.vim autoload/vimwiki/tags.vim autoload/vimwiki/u.vim autoload/vimwiki/vars.vim ftplugin/vimwiki.vim plugin/vimwiki.vim
This commit is contained in:
commit
b1393a34f7
22
LICENSE
Normal file
22
LICENSE
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
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.
|
11
README.md
11
README.md
@ -2,7 +2,7 @@ A Personal Wiki For Vim
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
![screenshot1](doc/screenshot_1.png)
|
![screenshot1](doc/screenshot_1.png)
|
||||||
![screenshot2](doc/screenshot_2.png)
|
![screenshot2](doc/screenshot_2.png) *
|
||||||
|
|
||||||
Intro
|
Intro
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
@ -122,6 +122,11 @@ Make sure you have these settings in your vimrc file:
|
|||||||
Without them Vimwiki will not work properly.
|
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)
|
Installation using [Pathogen](http://www.vim.org/scripts/script.php?script_id=2332)
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -140,3 +145,7 @@ Add `Plugin 'vimwiki/vimwiki'` to your vimrc file and run
|
|||||||
Or download the [zip archive](https://github.com/vimwiki/vimwiki/archive/master.zip) and extract it in `~/.vim/bundle/`
|
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.
|
Then launch Vim, run `:Helptags` and then `:help vimwiki` to verify it was installed.
|
||||||
|
|
||||||
|
----
|
||||||
|
\* Screenshots made with the [solarized colorscheme](https://github.com/altercation/vim-colors-solarized)
|
||||||
|
and [lightline](https://github.com/itchyny/lightline.vim)
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,48 +1,53 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki autoload plugin file
|
" Vimwiki autoload plugin file
|
||||||
" Desc: Handle diary notes
|
" Description: Handle diary notes
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
" Load only once {{{
|
|
||||||
if exists("g:loaded_vimwiki_diary_auto") || &cp
|
if exists("g:loaded_vimwiki_diary_auto") || &cp
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_vimwiki_diary_auto = 1
|
let g:loaded_vimwiki_diary_auto = 1
|
||||||
"}}}
|
|
||||||
|
|
||||||
let s:vimwiki_max_scan_for_caption = 5
|
let s:vimwiki_max_scan_for_caption = 5
|
||||||
|
|
||||||
" Helpers {{{
|
|
||||||
function! s:prefix_zero(num) "{{{
|
function! s:prefix_zero(num)
|
||||||
if a:num < 10
|
if a:num < 10
|
||||||
return '0'.a:num
|
return '0'.a:num
|
||||||
endif
|
endif
|
||||||
return a:num
|
return a:num
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:diary_path(...) "{{{
|
|
||||||
|
function! s:diary_path(...)
|
||||||
let idx = a:0 == 0 ? vimwiki#vars#get_bufferlocal('wiki_nr') : a:1
|
let idx = a:0 == 0 ? vimwiki#vars#get_bufferlocal('wiki_nr') : a:1
|
||||||
return vimwiki#vars#get_wikilocal('diary_path', idx)
|
return vimwiki#vars#get_wikilocal('diary_path', idx)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:diary_index(...) "{{{
|
|
||||||
|
function! s:diary_index(...)
|
||||||
let idx = a:0 == 0 ? vimwiki#vars#get_bufferlocal('wiki_nr') : a:1
|
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)
|
return s:diary_path(idx).vimwiki#vars#get_wikilocal('diary_index', idx).
|
||||||
endfunction "}}}
|
\ vimwiki#vars#get_wikilocal('ext', idx)
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#diary#diary_date_link(...) "{{{
|
|
||||||
|
function! vimwiki#diary#diary_date_link(...)
|
||||||
if a:0
|
if a:0
|
||||||
return strftime('%Y-%m-%d', a:1)
|
return strftime('%Y-%m-%d', a:1)
|
||||||
else
|
else
|
||||||
return strftime('%Y-%m-%d')
|
return strftime('%Y-%m-%d')
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:get_position_links(link) "{{{
|
|
||||||
|
function! s:get_position_links(link)
|
||||||
let idx = -1
|
let idx = -1
|
||||||
let links = []
|
let links = []
|
||||||
if a:link =~# '^\d\{4}-\d\d-\d\d'
|
if a:link =~# '^\d\{4}-\d\d-\d\d'
|
||||||
let links = keys(s:get_diary_links())
|
let links = map(s:get_diary_files(), 'fnamemodify(v:val, ":t:r")')
|
||||||
" include 'today' into links
|
" include 'today' into links
|
||||||
if index(links, vimwiki#diary#diary_date_link()) == -1
|
if index(links, vimwiki#diary#diary_date_link()) == -1
|
||||||
call add(links, vimwiki#diary#diary_date_link())
|
call add(links, vimwiki#diary#diary_date_link())
|
||||||
@ -51,21 +56,20 @@ function! s:get_position_links(link) "{{{
|
|||||||
let idx = index(links, a:link)
|
let idx = index(links, a:link)
|
||||||
endif
|
endif
|
||||||
return [idx, links]
|
return [idx, links]
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
fun! s:get_month_name(month) "{{{
|
|
||||||
|
function! s:get_month_name(month)
|
||||||
return vimwiki#vars#get_global('diary_months')[str2nr(a:month)]
|
return vimwiki#vars#get_global('diary_months')[str2nr(a:month)]
|
||||||
endfun "}}}
|
endfunction
|
||||||
|
|
||||||
" Helpers }}}
|
|
||||||
|
|
||||||
" Diary index stuff {{{
|
function! s:read_captions(files)
|
||||||
fun! s:read_captions(files) "{{{
|
|
||||||
let result = {}
|
let result = {}
|
||||||
let rx_header = vimwiki#vars#get_syntaxlocal('rxHeader')
|
let rx_header = vimwiki#vars#get_syntaxlocal('rxHeader')
|
||||||
for fl in a:files
|
for fl in a:files
|
||||||
" remove paths and extensions
|
" remove paths and extensions
|
||||||
let fl_key = fnamemodify(fl, ':t:r')
|
let fl_key = substitute(fnamemodify(fl, ':t'), vimwiki#vars#get_wikilocal('ext').'$', '', '')
|
||||||
|
|
||||||
if filereadable(fl)
|
if filereadable(fl)
|
||||||
for line in readfile(fl, '', s:vimwiki_max_scan_for_caption)
|
for line in readfile(fl, '', s:vimwiki_max_scan_for_caption)
|
||||||
@ -81,9 +85,10 @@ fun! s:read_captions(files) "{{{
|
|||||||
|
|
||||||
endfor
|
endfor
|
||||||
return result
|
return result
|
||||||
endfun "}}}
|
endfunction
|
||||||
|
|
||||||
fun! s:get_diary_links() "{{{
|
|
||||||
|
function! s:get_diary_files()
|
||||||
let rx = '^\d\{4}-\d\d-\d\d'
|
let rx = '^\d\{4}-\d\d-\d\d'
|
||||||
let s_files = glob(vimwiki#vars#get_wikilocal('diary_path') . '*' . vimwiki#vars#get_wikilocal('ext'))
|
let s_files = glob(vimwiki#vars#get_wikilocal('diary_path') . '*' . vimwiki#vars#get_wikilocal('ext'))
|
||||||
let files = split(s_files, '\n')
|
let files = split(s_files, '\n')
|
||||||
@ -92,12 +97,11 @@ fun! s:get_diary_links() "{{{
|
|||||||
" remove backup files (.wiki~)
|
" remove backup files (.wiki~)
|
||||||
call filter(files, 'v:val !~# ''.*\~$''')
|
call filter(files, 'v:val !~# ''.*\~$''')
|
||||||
|
|
||||||
let links_with_captions = s:read_captions(files)
|
return files
|
||||||
|
endfunction
|
||||||
|
|
||||||
return links_with_captions
|
|
||||||
endfun "}}}
|
|
||||||
|
|
||||||
fun! s:group_links(links) "{{{
|
function! s:group_links(links)
|
||||||
let result = {}
|
let result = {}
|
||||||
let p_year = 0
|
let p_year = 0
|
||||||
let p_month = 0
|
let p_month = 0
|
||||||
@ -116,38 +120,45 @@ fun! s:group_links(links) "{{{
|
|||||||
let p_month = month
|
let p_month = month
|
||||||
endfor
|
endfor
|
||||||
return result
|
return result
|
||||||
endfun "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:sort(lst) "{{{
|
|
||||||
|
function! s:sort(lst)
|
||||||
if vimwiki#vars#get_wikilocal('diary_sort') ==? 'desc'
|
if vimwiki#vars#get_wikilocal('diary_sort') ==? 'desc'
|
||||||
return reverse(sort(a:lst))
|
return reverse(sort(a:lst))
|
||||||
else
|
else
|
||||||
return sort(a:lst)
|
return sort(a:lst)
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:format_diary() "{{{
|
|
||||||
|
function! s:format_diary()
|
||||||
let result = []
|
let result = []
|
||||||
|
|
||||||
let g_files = s:group_links(s:get_diary_links())
|
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))
|
for year in s:sort(keys(g_files))
|
||||||
call add(result, '')
|
call add(result, '')
|
||||||
call add(result, substitute(vimwiki#vars#get_syntaxlocal('rxH2_Template'), '__Header__', year , ''))
|
call add(result,
|
||||||
|
\ substitute(vimwiki#vars#get_syntaxlocal('rxH2_Template'), '__Header__', year , ''))
|
||||||
|
|
||||||
for month in s:sort(keys(g_files[year]))
|
for month in s:sort(keys(g_files[year]))
|
||||||
call add(result, '')
|
call add(result, '')
|
||||||
call add(result, substitute(vimwiki#vars#get_syntaxlocal('rxH3_Template'), '__Header__', s:get_month_name(month), ''))
|
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]))
|
for [fl, cap] in s:sort(items(g_files[year][month]))
|
||||||
if empty(cap)
|
if empty(cap)
|
||||||
let entry = substitute(vimwiki#vars#get_global('WikiLinkTemplate1'), '__LinkUrl__', fl, '')
|
let entry = substitute(vimwiki#vars#get_global('WikiLinkTemplate1'),
|
||||||
|
\ '__LinkUrl__', fl, '')
|
||||||
let entry = substitute(entry, '__LinkDescription__', cap, '')
|
let entry = substitute(entry, '__LinkDescription__', cap, '')
|
||||||
call add(result, repeat(' ', &sw).'* '.entry)
|
call add(result, repeat(' ', vimwiki#lst#get_list_margin()).'* '.entry)
|
||||||
else
|
else
|
||||||
let entry = substitute(vimwiki#vars#get_global('WikiLinkTemplate2'), '__LinkUrl__', fl, '')
|
let entry = substitute(vimwiki#vars#get_global('WikiLinkTemplate2'),
|
||||||
|
\ '__LinkUrl__', fl, '')
|
||||||
let entry = substitute(entry, '__LinkDescription__', cap, '')
|
let entry = substitute(entry, '__LinkDescription__', cap, '')
|
||||||
call add(result, repeat(' ', &sw).'* '.entry)
|
call add(result, repeat(' ', vimwiki#lst#get_list_margin()).'* '.entry)
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
@ -155,11 +166,10 @@ function! s:format_diary() "{{{
|
|||||||
endfor
|
endfor
|
||||||
|
|
||||||
return result
|
return result
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
" Diary index stuff }}}
|
|
||||||
|
|
||||||
function! vimwiki#diary#make_note(wnum, ...) "{{{
|
function! vimwiki#diary#make_note(wnum, ...)
|
||||||
if a:wnum > vimwiki#vars#number_of_wikis()
|
if a:wnum > vimwiki#vars#number_of_wikis()
|
||||||
echomsg 'Vimwiki Error: Wiki '.a:wnum.' is not registered in g:vimwiki_list!'
|
echomsg 'Vimwiki Error: Wiki '.a:wnum.' is not registered in g:vimwiki_list!'
|
||||||
return
|
return
|
||||||
@ -174,10 +184,15 @@ function! vimwiki#diary#make_note(wnum, ...) "{{{
|
|||||||
|
|
||||||
call vimwiki#path#mkdir(vimwiki#vars#get_wikilocal('diary_path', idx))
|
call vimwiki#path#mkdir(vimwiki#vars#get_wikilocal('diary_path', idx))
|
||||||
|
|
||||||
if a:0 && a:1 == 1
|
|
||||||
let cmd = 'tabedit'
|
|
||||||
else
|
|
||||||
let cmd = 'edit'
|
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
|
endif
|
||||||
if a:0>1
|
if a:0>1
|
||||||
let link = 'diary:'.a:2
|
let link = 'diary:'.a:2
|
||||||
@ -186,9 +201,10 @@ function! vimwiki#diary#make_note(wnum, ...) "{{{
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
call vimwiki#base#open_link(cmd, link, s:diary_index(idx))
|
call vimwiki#base#open_link(cmd, link, s:diary_index(idx))
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#diary#goto_diary_index(wnum) "{{{
|
|
||||||
|
function! vimwiki#diary#goto_diary_index(wnum)
|
||||||
if a:wnum > vimwiki#vars#number_of_wikis()
|
if a:wnum > vimwiki#vars#number_of_wikis()
|
||||||
echomsg 'Vimwiki Error: Wiki '.a:wnum.' is not registered in g:vimwiki_list!'
|
echomsg 'Vimwiki Error: Wiki '.a:wnum.' is not registered in g:vimwiki_list!'
|
||||||
return
|
return
|
||||||
@ -202,9 +218,10 @@ function! vimwiki#diary#goto_diary_index(wnum) "{{{
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
call vimwiki#base#edit_file('e', s:diary_index(idx), '')
|
call vimwiki#base#edit_file('e', s:diary_index(idx), '')
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#diary#goto_next_day() "{{{
|
|
||||||
|
function! vimwiki#diary#goto_next_day()
|
||||||
let link = ''
|
let link = ''
|
||||||
let [idx, links] = s:get_position_links(expand('%:t:r'))
|
let [idx, links] = s:get_position_links(expand('%:t:r'))
|
||||||
|
|
||||||
@ -222,9 +239,10 @@ function! vimwiki#diary#goto_next_day() "{{{
|
|||||||
if len(link)
|
if len(link)
|
||||||
call vimwiki#base#open_link(':e ', link)
|
call vimwiki#base#open_link(':e ', link)
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#diary#goto_prev_day() "{{{
|
|
||||||
|
function! vimwiki#diary#goto_prev_day()
|
||||||
let link = ''
|
let link = ''
|
||||||
let [idx, links] = s:get_position_links(expand('%:t:r'))
|
let [idx, links] = s:get_position_links(expand('%:t:r'))
|
||||||
|
|
||||||
@ -242,9 +260,10 @@ function! vimwiki#diary#goto_prev_day() "{{{
|
|||||||
if len(link)
|
if len(link)
|
||||||
call vimwiki#base#open_link(':e ', link)
|
call vimwiki#base#open_link(':e ', link)
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#diary#generate_diary_section() "{{{
|
|
||||||
|
function! vimwiki#diary#generate_diary_section()
|
||||||
let current_file = vimwiki#path#path_norm(expand("%:p"))
|
let current_file = vimwiki#path#path_norm(expand("%:p"))
|
||||||
let diary_file = vimwiki#path#path_norm(s:diary_index())
|
let diary_file = vimwiki#path#path_norm(s:diary_index())
|
||||||
if vimwiki#path#is_equal(current_file, diary_file)
|
if vimwiki#path#is_equal(current_file, diary_file)
|
||||||
@ -254,11 +273,11 @@ function! vimwiki#diary#generate_diary_section() "{{{
|
|||||||
else
|
else
|
||||||
echomsg 'Vimwiki Error: You can generate diary links only in a diary index page!'
|
echomsg 'Vimwiki Error: You can generate diary links only in a diary index page!'
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
" Calendar.vim {{{
|
|
||||||
" Callback function.
|
" Callback function for Calendar.vim
|
||||||
function! vimwiki#diary#calendar_action(day, month, year, week, dir) "{{{
|
function! vimwiki#diary#calendar_action(day, month, year, week, dir)
|
||||||
let day = s:prefix_zero(a:day)
|
let day = s:prefix_zero(a:day)
|
||||||
let month = s:prefix_zero(a:month)
|
let month = s:prefix_zero(a:month)
|
||||||
|
|
||||||
@ -278,16 +297,14 @@ function! vimwiki#diary#calendar_action(day, month, year, week, dir) "{{{
|
|||||||
|
|
||||||
" XXX: Well, +1 is for inconsistent index basing...
|
" XXX: Well, +1 is for inconsistent index basing...
|
||||||
call vimwiki#diary#make_note(vimwiki#vars#get_bufferlocal('wiki_nr')+1, 0, link)
|
call vimwiki#diary#make_note(vimwiki#vars#get_bufferlocal('wiki_nr')+1, 0, link)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
" Sign function.
|
|
||||||
function vimwiki#diary#calendar_sign(day, month, year) "{{{
|
function vimwiki#diary#calendar_sign(day, month, year)
|
||||||
let day = s:prefix_zero(a:day)
|
let day = s:prefix_zero(a:day)
|
||||||
let month = s:prefix_zero(a:month)
|
let month = s:prefix_zero(a:month)
|
||||||
let sfile = vimwiki#vars#get_wikilocal('diary_path') .
|
let sfile = vimwiki#vars#get_wikilocal('diary_path') .
|
||||||
\ a:year.'-'.month.'-'.day.vimwiki#vars#get_wikilocal('ext')
|
\ a:year.'-'.month.'-'.day.vimwiki#vars#get_wikilocal('ext')
|
||||||
return filereadable(expand(sfile))
|
return filereadable(expand(sfile))
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
" Calendar.vim }}}
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,17 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki autoload plugin file
|
" Vimwiki autoload plugin file
|
||||||
" Desc: Link functions for markdown syntax
|
" Description: Link functions for markdown syntax
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
|
|
||||||
" MISC helper functions {{{
|
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
|
||||||
|
|
||||||
" vimwiki#markdown_base#scan_reflinks
|
|
||||||
function! vimwiki#markdown_base#scan_reflinks() " {{{
|
function! vimwiki#markdown_base#scan_reflinks()
|
||||||
let mkd_refs = {}
|
let mkd_refs = {}
|
||||||
" construct list of references using vimgrep
|
" construct list of references using vimgrep
|
||||||
try
|
try
|
||||||
@ -16,7 +20,7 @@ function! vimwiki#markdown_base#scan_reflinks() " {{{
|
|||||||
catch /^Vim\%((\a\+)\)\=:E480/ " No Match
|
catch /^Vim\%((\a\+)\)\=:E480/ " No Match
|
||||||
"Ignore it, and move on to the next file
|
"Ignore it, and move on to the next file
|
||||||
endtry
|
endtry
|
||||||
"
|
|
||||||
for d in getqflist()
|
for d in getqflist()
|
||||||
let matchline = join(getline(d.lnum, min([d.lnum+1, line('$')])), ' ')
|
let matchline = join(getline(d.lnum, min([d.lnum+1, line('$')])), ' ')
|
||||||
let descr = matchstr(matchline, vimwiki#vars#get_syntaxlocal('rxMkdRefMatchDescr'))
|
let descr = matchstr(matchline, vimwiki#vars#get_syntaxlocal('rxMkdRefMatchDescr'))
|
||||||
@ -27,12 +31,11 @@ function! vimwiki#markdown_base#scan_reflinks() " {{{
|
|||||||
endfor
|
endfor
|
||||||
call vimwiki#vars#set_bufferlocal('markdown_refs', mkd_refs)
|
call vimwiki#vars#set_bufferlocal('markdown_refs', mkd_refs)
|
||||||
return mkd_refs
|
return mkd_refs
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" vimwiki#markdown_base#open_reflink
|
|
||||||
" try markdown reference links
|
" try markdown reference links
|
||||||
function! vimwiki#markdown_base#open_reflink(link) " {{{
|
function! vimwiki#markdown_base#open_reflink(link)
|
||||||
" echom "vimwiki#markdown_base#open_reflink"
|
" echom "vimwiki#markdown_base#open_reflink"
|
||||||
let link = a:link
|
let link = a:link
|
||||||
let mkd_refs = vimwiki#vars#get_bufferlocal('markdown_refs')
|
let mkd_refs = vimwiki#vars#get_bufferlocal('markdown_refs')
|
||||||
@ -43,70 +46,10 @@ function! vimwiki#markdown_base#open_reflink(link) " {{{
|
|||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
endfunction " }}}
|
endfunction
|
||||||
" }}}
|
|
||||||
|
|
||||||
" WIKI link following functions {{{
|
|
||||||
|
|
||||||
" vimwiki#markdown_base#follow_link
|
function! s:normalize_link_syntax_n()
|
||||||
function! vimwiki#markdown_base#follow_link(split, ...) "{{{ Parse link at cursor and pass
|
|
||||||
" to VimwikiLinkHandler, or failing that, the default open_link handler
|
|
||||||
" echom "markdown_base#follow_link"
|
|
||||||
|
|
||||||
if 0
|
|
||||||
" Syntax-specific links
|
|
||||||
" XXX: @Stuart: do we still need it?
|
|
||||||
" XXX: @Maxim: most likely! I am still working on a seemless way to
|
|
||||||
" integrate regexp's without complicating syntax/vimwiki.vim
|
|
||||||
else
|
|
||||||
if a:split ==# "split"
|
|
||||||
let cmd = ":split "
|
|
||||||
elseif a:split ==# "vsplit"
|
|
||||||
let cmd = ":vsplit "
|
|
||||||
elseif a:split ==# "tabnew"
|
|
||||||
let cmd = ":tabnew "
|
|
||||||
else
|
|
||||||
let cmd = ":e "
|
|
||||||
endif
|
|
||||||
|
|
||||||
" 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 != ""
|
|
||||||
if !VimwikiLinkHandler(lnk)
|
|
||||||
if !vimwiki#markdown_base#open_reflink(lnk)
|
|
||||||
" remove the extension from the filename if exists
|
|
||||||
let lnk = substitute(lnk, vimwiki#vars#get_wikilocal('ext').'$', '', '')
|
|
||||||
call vimwiki#base#open_link(cmd, lnk)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
|
|
||||||
if a:0 > 0
|
|
||||||
execute "normal! ".a:1
|
|
||||||
else
|
|
||||||
call vimwiki#base#normalize_link(0)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
endfunction " }}}
|
|
||||||
|
|
||||||
" LINK functions {{{
|
|
||||||
|
|
||||||
" s:normalize_link_syntax_n
|
|
||||||
function! s:normalize_link_syntax_n() " {{{
|
|
||||||
let lnum = line('.')
|
let lnum = line('.')
|
||||||
|
|
||||||
" try WikiIncl
|
" try WikiIncl
|
||||||
@ -120,7 +63,8 @@ function! s:normalize_link_syntax_n() " {{{
|
|||||||
let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink0'))
|
let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink0'))
|
||||||
if !empty(lnk)
|
if !empty(lnk)
|
||||||
let sub = vimwiki#base#normalize_link_helper(lnk,
|
let sub = vimwiki#base#normalize_link_helper(lnk,
|
||||||
\ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'), vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchDescr'),
|
\ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'),
|
||||||
|
\ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchDescr'),
|
||||||
\ vimwiki#vars#get_syntaxlocal('WikiLink1Template2'))
|
\ vimwiki#vars#get_syntaxlocal('WikiLink1Template2'))
|
||||||
call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink0'), sub)
|
call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink0'), sub)
|
||||||
return
|
return
|
||||||
@ -130,7 +74,8 @@ function! s:normalize_link_syntax_n() " {{{
|
|||||||
let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink1'))
|
let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink1'))
|
||||||
if !empty(lnk)
|
if !empty(lnk)
|
||||||
let sub = vimwiki#base#normalize_link_helper(lnk,
|
let sub = vimwiki#base#normalize_link_helper(lnk,
|
||||||
\ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'), vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchDescr'),
|
\ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchUrl'),
|
||||||
|
\ vimwiki#vars#get_syntaxlocal('rxWikiLinkMatchDescr'),
|
||||||
\ vimwiki#vars#get_global('WikiLinkTemplate2'))
|
\ vimwiki#vars#get_global('WikiLinkTemplate2'))
|
||||||
call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), sub)
|
call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), sub)
|
||||||
return
|
return
|
||||||
@ -140,7 +85,8 @@ function! s:normalize_link_syntax_n() " {{{
|
|||||||
let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink'))
|
let lnk = vimwiki#base#matchstr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink'))
|
||||||
if !empty(lnk)
|
if !empty(lnk)
|
||||||
let sub = vimwiki#base#normalize_link_helper(lnk,
|
let sub = vimwiki#base#normalize_link_helper(lnk,
|
||||||
\ vimwiki#vars#get_syntaxlocal('rxWeblinkMatchUrl'), vimwiki#vars#get_syntaxlocal('rxWeblinkMatchDescr'),
|
\ vimwiki#vars#get_syntaxlocal('rxWeblinkMatchUrl'),
|
||||||
|
\ vimwiki#vars#get_syntaxlocal('rxWeblinkMatchDescr'),
|
||||||
\ vimwiki#vars#get_syntaxlocal('Weblink1Template'))
|
\ vimwiki#vars#get_syntaxlocal('Weblink1Template'))
|
||||||
call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink'), sub)
|
call vimwiki#base#replacestr_at_cursor(vimwiki#vars#get_syntaxlocal('rxWeblink'), sub)
|
||||||
return
|
return
|
||||||
@ -158,10 +104,10 @@ function! s:normalize_link_syntax_n() " {{{
|
|||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
" s:normalize_link_syntax_v
|
|
||||||
function! s:normalize_link_syntax_v() " {{{
|
function! s:normalize_link_syntax_v()
|
||||||
let lnum = line('.')
|
let lnum = line('.')
|
||||||
let sel_save = &selection
|
let sel_save = &selection
|
||||||
let &selection = "old"
|
let &selection = "old"
|
||||||
@ -172,38 +118,33 @@ function! s:normalize_link_syntax_v() " {{{
|
|||||||
try
|
try
|
||||||
norm! gvy
|
norm! gvy
|
||||||
let visual_selection = @"
|
let visual_selection = @"
|
||||||
let link = substitute(vimwiki#vars#get_syntaxlocal('Weblink1Template'), '__LinkUrl__', '\='."'".visual_selection."'", '')
|
let link = s:safesubstitute(vimwiki#vars#get_syntaxlocal('Weblink1Template'),
|
||||||
let link = substitute(link, '__LinkDescription__', '\='."'".visual_selection."'", '')
|
\ '__LinkUrl__', visual_selection, '')
|
||||||
|
let link = s:safesubstitute(link, '__LinkDescription__', visual_selection, '')
|
||||||
|
|
||||||
call setreg('"', link, 'v')
|
call setreg('"', substitute(link, '\n', '', ''), visualmode())
|
||||||
|
|
||||||
" paste result
|
" paste result
|
||||||
norm! `>pgvd
|
norm! `>""pgvd
|
||||||
|
|
||||||
finally
|
finally
|
||||||
call setreg('"', rv, rt)
|
call setreg('"', rv, rt)
|
||||||
let &selection = sel_save
|
let &selection = sel_save
|
||||||
endtry
|
endtry
|
||||||
|
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
" vimwiki#base#normalize_link
|
|
||||||
function! vimwiki#markdown_base#normalize_link(is_visual_mode) "{{{
|
function! vimwiki#markdown_base#normalize_link(is_visual_mode)
|
||||||
if 0
|
if 0
|
||||||
" Syntax-specific links
|
" Syntax-specific links
|
||||||
else
|
else
|
||||||
if !a:is_visual_mode
|
if !a:is_visual_mode
|
||||||
call s:normalize_link_syntax_n()
|
call s:normalize_link_syntax_n()
|
||||||
elseif visualmode() ==# 'v' && line("'<") == line("'>")
|
elseif line("'<") == line("'>")
|
||||||
" action undefined for 'line-wise' or 'multi-line' visual mode selections
|
" action undefined for multi-line visual mode selections
|
||||||
call s:normalize_link_syntax_v()
|
call s:normalize_link_syntax_v()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" -------------------------------------------------------------------------
|
|
||||||
" Load syntax-specific Wiki functionality
|
|
||||||
" -------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki autoload plugin file
|
" Vimwiki autoload plugin file
|
||||||
" Desc: Path manipulation functions
|
" Description: Path manipulation functions
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
|
|
||||||
function! vimwiki#path#chomp_slash(str) "{{{
|
function! vimwiki#path#chomp_slash(str)
|
||||||
return substitute(a:str, '[/\\]\+$', '', '')
|
return substitute(a:str, '[/\\]\+$', '', '')
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Define path-compare function, either case-sensitive or not, depending on OS.
|
" Define path-compare function, either case-sensitive or not, depending on OS.
|
||||||
"{{{ " function! vimwiki#path#is_equal(p1, p2)
|
|
||||||
if vimwiki#u#is_windows()
|
if vimwiki#u#is_windows()
|
||||||
function! vimwiki#path#is_equal(p1, p2)
|
function! vimwiki#path#is_equal(p1, p2)
|
||||||
return a:p1 ==? a:p2
|
return a:p1 ==? a:p2
|
||||||
@ -18,10 +18,11 @@ else
|
|||||||
function! vimwiki#path#is_equal(p1, p2)
|
function! vimwiki#path#is_equal(p1, p2)
|
||||||
return a:p1 ==# a:p2
|
return a:p1 ==# a:p2
|
||||||
endfunction
|
endfunction
|
||||||
endif "}}}
|
endif
|
||||||
|
|
||||||
|
|
||||||
" collapse sections like /a/b/../c to /a/c
|
" collapse sections like /a/b/../c to /a/c
|
||||||
function! vimwiki#path#normalize(path) "{{{
|
function! vimwiki#path#normalize(path)
|
||||||
let path = a:path
|
let path = a:path
|
||||||
while 1
|
while 1
|
||||||
let result = substitute(path, '/[^/]\+/\.\.', '', '')
|
let result = substitute(path, '/[^/]\+/\.\.', '', '')
|
||||||
@ -31,9 +32,10 @@ function! vimwiki#path#normalize(path) "{{{
|
|||||||
let path = result
|
let path = result
|
||||||
endwhile
|
endwhile
|
||||||
return result
|
return result
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#path#path_norm(path) "{{{
|
|
||||||
|
function! vimwiki#path#path_norm(path)
|
||||||
" /-slashes
|
" /-slashes
|
||||||
if a:path !~# '^scp:'
|
if a:path !~# '^scp:'
|
||||||
let path = substitute(a:path, '\', '/', 'g')
|
let path = substitute(a:path, '\', '/', 'g')
|
||||||
@ -44,21 +46,24 @@ function! vimwiki#path#path_norm(path) "{{{
|
|||||||
else
|
else
|
||||||
return a:path
|
return a:path
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#path#is_link_to_dir(link) "{{{
|
|
||||||
|
function! vimwiki#path#is_link_to_dir(link)
|
||||||
" Check if link is to a directory.
|
" Check if link is to a directory.
|
||||||
" It should be ended with \ or /.
|
" It should be ended with \ or /.
|
||||||
return a:link =~# '\m[/\\]$'
|
return a:link =~# '\m[/\\]$'
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#path#abs_path_of_link(link) "{{{
|
|
||||||
|
function! vimwiki#path#abs_path_of_link(link)
|
||||||
return vimwiki#path#normalize(expand("%:p:h").'/'.a:link)
|
return vimwiki#path#normalize(expand("%:p:h").'/'.a:link)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" return longest common path prefix of 2 given paths.
|
" return longest common path prefix of 2 given paths.
|
||||||
" '~/home/usrname/wiki', '~/home/usrname/wiki/shmiki' => '~/home/usrname/wiki'
|
" '~/home/usrname/wiki', '~/home/usrname/wiki/shmiki' => '~/home/usrname/wiki'
|
||||||
function! vimwiki#path#path_common_pfx(path1, path2) "{{{
|
function! vimwiki#path#path_common_pfx(path1, path2)
|
||||||
let p1 = split(a:path1, '[/\\]', 1)
|
let p1 = split(a:path1, '[/\\]', 1)
|
||||||
let p2 = split(a:path2, '[/\\]', 1)
|
let p2 = split(a:path2, '[/\\]', 1)
|
||||||
|
|
||||||
@ -72,19 +77,26 @@ function! vimwiki#path#path_common_pfx(path1, path2) "{{{
|
|||||||
else
|
else
|
||||||
return join(p1[: idx-1], '/')
|
return join(p1[: idx-1], '/')
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#path#wikify_path(path) "{{{
|
|
||||||
let result = resolve(expand(a:path, ':p'))
|
function! vimwiki#path#wikify_path(path)
|
||||||
|
let result = resolve(fnamemodify(a:path, ':p'))
|
||||||
if vimwiki#u#is_windows()
|
if vimwiki#u#is_windows()
|
||||||
let result = substitute(result, '\\', '/', 'g')
|
let result = substitute(result, '\\', '/', 'g')
|
||||||
endif
|
endif
|
||||||
let result = vimwiki#path#chomp_slash(result)
|
let result = vimwiki#path#chomp_slash(result)
|
||||||
return result
|
return result
|
||||||
endfunction "}}}
|
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
|
" Returns: the relative path from a:dir to a:file
|
||||||
function! vimwiki#path#relpath(dir, file) "{{{
|
function! vimwiki#path#relpath(dir, file)
|
||||||
let result = []
|
let result = []
|
||||||
let dir = split(a:dir, '/')
|
let dir = split(a:dir, '/')
|
||||||
let file = split(a:file, '/')
|
let file = split(a:file, '/')
|
||||||
@ -106,12 +118,13 @@ function! vimwiki#path#relpath(dir, file) "{{{
|
|||||||
let result_path .= '/'
|
let result_path .= '/'
|
||||||
endif
|
endif
|
||||||
return result_path
|
return result_path
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" If the optional argument provided and nonzero,
|
" If the optional argument provided and nonzero,
|
||||||
" it will ask before creating a directory
|
" it will ask before creating a directory
|
||||||
" Returns: 1 iff directory exists or successfully created
|
" Returns: 1 iff directory exists or successfully created
|
||||||
function! vimwiki#path#mkdir(dir_obj, ...) "{{{
|
function! vimwiki#path#mkdir(dir_obj, ...)
|
||||||
|
|
||||||
if a:dir_obj.protocoll ==# 'scp'
|
if a:dir_obj.protocoll ==# 'scp'
|
||||||
" we can not do much, so let's pretend everything is ok
|
" we can not do much, so let's pretend everything is ok
|
||||||
@ -130,23 +143,23 @@ function! vimwiki#path#mkdir(dir_obj, ...) "{{{
|
|||||||
let path = iconv(path, &enc, vimwiki#vars#get_global('w32_dir_enc'))
|
let path = iconv(path, &enc, vimwiki#vars#get_global('w32_dir_enc'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if a:0 && a:1 && input("Vimwiki: Make new directory: "
|
if a:0 && a:1 && input("Vimwiki: Make new directory: ".path."\n [y]es/[N]o? ") !~? '^y'
|
||||||
\ .path."\n [y]es/[N]o? ") !~? '^y'
|
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call mkdir(path, "p")
|
call mkdir(path, "p")
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#path#is_absolute(path) "{{{
|
|
||||||
|
function! vimwiki#path#is_absolute(path)
|
||||||
if vimwiki#u#is_windows()
|
if vimwiki#u#is_windows()
|
||||||
return a:path =~? '\m^\a:'
|
return a:path =~? '\m^\a:'
|
||||||
else
|
else
|
||||||
return a:path =~# '\m^/\|\~/'
|
return a:path =~# '\m^/\|\~/'
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Combine a directory and a file into one path, doesn't generate duplicate
|
" Combine a directory and a file into one path, doesn't generate duplicate
|
||||||
|
@ -27,6 +27,13 @@ del {text-decoration: line-through; color: #777777;}
|
|||||||
.tag {background-color: #eeeeee; font-family: monospace; padding: 2px;}
|
.tag {background-color: #eeeeee; font-family: monospace; padding: 2px;}
|
||||||
|
|
||||||
/* classes for items of todo lists */
|
/* 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 {
|
.done0 {
|
||||||
/* list-style: none; */
|
/* list-style: none; */
|
||||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAA7SURBVCiR7dMxEgAgCANBI3yVRzF5KxNbW6wsuH7LQ2YKQK1mkswBVERYF5Os3UV3gwd/jF2SkXy66gAZkxS6BniubAAAAABJRU5ErkJggg==);
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAA7SURBVCiR7dMxEgAgCANBI3yVRzF5KxNbW6wsuH7LQ2YKQK1mkswBVERYF5Os3UV3gwd/jF2SkXy66gAZkxS6BniubAAAAABJRU5ErkJggg==);
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki autoload plugin file
|
" Vimwiki autoload plugin file
|
||||||
|
|
||||||
|
|
||||||
let s:TAGS_METADATA_FILE_NAME = '.tags'
|
let s:TAGS_METADATA_FILE_NAME = '.tags'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" Tags metadata in-memory format:
|
" Tags metadata in-memory format:
|
||||||
" metadata := { 'pagename': [entries, ...] }
|
" metadata := { 'pagename': [entries, ...] }
|
||||||
" entry := { 'tagname':..., 'lineno':..., 'link':... }
|
" entry := { 'tagname':..., 'lineno':..., 'link':... }
|
||||||
@ -19,12 +21,13 @@ let s:TAGS_METADATA_FILE_NAME = '.tags'
|
|||||||
" an optional field, "vimwiki:". In this field, we encode tab-separated values
|
" an optional field, "vimwiki:". In this field, we encode tab-separated values
|
||||||
" of missing parameters -- "pagename" and "link".
|
" of missing parameters -- "pagename" and "link".
|
||||||
|
|
||||||
" vimwiki#tags#update_tags
|
|
||||||
|
|
||||||
" Update tags metadata.
|
" Update tags metadata.
|
||||||
" a:full_rebuild == 1: re-scan entire wiki
|
" a:full_rebuild == 1: re-scan entire wiki
|
||||||
" a:full_rebuild == 0: only re-scan current page
|
" a:full_rebuild == 0: only re-scan current page
|
||||||
" a:all_files == '': only if the file is newer than .tags
|
" a:all_files == '': only if the file is newer than .tags
|
||||||
function! vimwiki#tags#update_tags(full_rebuild, all_files) "{{{
|
function! vimwiki#tags#update_tags(full_rebuild, all_files)
|
||||||
let all_files = a:all_files != ''
|
let all_files = a:all_files != ''
|
||||||
if !a:full_rebuild
|
if !a:full_rebuild
|
||||||
" Updating for one page (current)
|
" Updating for one page (current)
|
||||||
@ -54,7 +57,8 @@ function! vimwiki#tags#update_tags(full_rebuild, all_files) "{{{
|
|||||||
endfor
|
endfor
|
||||||
call s:write_tags_metadata(metadata)
|
call s:write_tags_metadata(metadata)
|
||||||
endif
|
endif
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:page_name(file_obj)
|
function! s:page_name(file_obj)
|
||||||
let wiki_base_dir = vimwiki#vars#get_wikilocal('path')
|
let wiki_base_dir = vimwiki#vars#get_wikilocal('path')
|
||||||
@ -62,10 +66,9 @@ function! s:page_name(file_obj)
|
|||||||
return vimwiki#path#to_string(segment)
|
return vimwiki#path#to_string(segment)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" s:scan_tags
|
|
||||||
" Scans the list of text lines (argument) and produces tags metadata as a
|
" Scans the list of text lines (argument) and produces tags metadata as a list of tag entries.
|
||||||
" list of tag entries.
|
function! s:scan_tags(lines, page_name)
|
||||||
function! s:scan_tags(lines, page_name) "{{{
|
|
||||||
|
|
||||||
let entries = []
|
let entries = []
|
||||||
|
|
||||||
@ -140,17 +143,18 @@ function! s:scan_tags(lines, page_name) "{{{
|
|||||||
|
|
||||||
endfor " loop over lines
|
endfor " loop over lines
|
||||||
return entries
|
return entries
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
" Returns tags metadata file path
|
||||||
|
function! vimwiki#tags#metadata_file_path() abort
|
||||||
|
return vimwiki#path#join(vimwiki#vars#get_wikilocal('path'),
|
||||||
|
\ vimwiki#path#file_segment(s:TAGS_METADATA_FILE_NAME))
|
||||||
|
endfunction
|
||||||
|
|
||||||
" vimwiki#tags#metadata_file_path
|
|
||||||
" Returns tags metadata file path object
|
|
||||||
function! vimwiki#tags#metadata_file_path() abort "{{{
|
|
||||||
return vimwiki#path#join(vimwiki#vars#get_wikilocal('path'), vimwiki#path#file_segment(s:TAGS_METADATA_FILE_NAME))
|
|
||||||
endfunction " }}}
|
|
||||||
|
|
||||||
" s:load_tags_metadata
|
|
||||||
" Loads tags metadata from file, returns a dictionary
|
" Loads tags metadata from file, returns a dictionary
|
||||||
function! s:load_tags_metadata() abort "{{{
|
function! s:load_tags_metadata() abort
|
||||||
let metadata_path = vimwiki#tags#metadata_file_path()
|
let metadata_path = vimwiki#tags#metadata_file_path()
|
||||||
if !filereadable(metadata_path)
|
if !filereadable(metadata_path)
|
||||||
return {}
|
return {}
|
||||||
@ -197,29 +201,29 @@ function! s:load_tags_metadata() abort "{{{
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
return metadata
|
return metadata
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" s:remove_page_from_tags
|
|
||||||
" Removes all entries for given page from metadata in-place. Returns updated
|
" Removes all entries for given page from metadata in-place. Returns updated
|
||||||
" metadata (just in case).
|
" metadata (just in case).
|
||||||
function! s:remove_page_from_tags(metadata, page_name) "{{{
|
function! s:remove_page_from_tags(metadata, page_name)
|
||||||
if has_key(a:metadata, a:page_name)
|
if has_key(a:metadata, a:page_name)
|
||||||
call remove(a:metadata, a:page_name)
|
call remove(a:metadata, a:page_name)
|
||||||
return a:metadata
|
return a:metadata
|
||||||
else
|
else
|
||||||
return a:metadata
|
return a:metadata
|
||||||
endif
|
endif
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" s:merge_tags
|
|
||||||
" Merges metadata of one file into a:metadata
|
" Merges metadata of one file into a:metadata
|
||||||
function! s:merge_tags(metadata, pagename, file_metadata) "{{{
|
function! s:merge_tags(metadata, pagename, file_metadata)
|
||||||
let metadata = a:metadata
|
let metadata = a:metadata
|
||||||
let metadata[a:pagename] = a:file_metadata
|
let metadata[a:pagename] = a:file_metadata
|
||||||
return metadata
|
return metadata
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" s:tags_entry_cmp
|
|
||||||
" Compares two actual lines from tags file. Return value is in strcmp style.
|
" 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 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
|
" See also s:write_tags_metadata below -- that's where we compose these tags
|
||||||
@ -229,7 +233,7 @@ endfunction " }}}
|
|||||||
" numbers as strings, not integers, and so, for example, tag at line 14
|
" 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
|
" preceeds the same tag on the same page at line 9. (Because string "14" is
|
||||||
" alphabetically 'less than' string "9".)
|
" alphabetically 'less than' string "9".)
|
||||||
function! s:tags_entry_cmp(i1, i2) "{{{
|
function! s:tags_entry_cmp(i1, i2)
|
||||||
let items = []
|
let items = []
|
||||||
for orig_item in [a:i1, a:i2]
|
for orig_item in [a:i1, a:i2]
|
||||||
let fields = split(orig_item, "\t")
|
let fields = split(orig_item, "\t")
|
||||||
@ -249,11 +253,11 @@ function! s:tags_entry_cmp(i1, i2) "{{{
|
|||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" s:write_tags_metadata
|
|
||||||
" Saves metadata object into a file. Throws exceptions in case of problems.
|
" Saves metadata object into a file. Throws exceptions in case of problems.
|
||||||
function! s:write_tags_metadata(metadata) "{{{
|
function! s:write_tags_metadata(metadata)
|
||||||
let metadata_path = vimwiki#tags#metadata_file_path()
|
let metadata_path = vimwiki#tags#metadata_file_path()
|
||||||
let tags = []
|
let tags = []
|
||||||
for pagename in keys(a:metadata)
|
for pagename in keys(a:metadata)
|
||||||
@ -275,11 +279,11 @@ function! s:write_tags_metadata(metadata) "{{{
|
|||||||
call sort(tags, "s:tags_entry_cmp")
|
call sort(tags, "s:tags_entry_cmp")
|
||||||
call insert(tags, "!_TAG_FILE_SORTED\t1\t")
|
call insert(tags, "!_TAG_FILE_SORTED\t1\t")
|
||||||
call writefile(tags, metadata_path)
|
call writefile(tags, metadata_path)
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" vimwiki#tags#get_tags
|
|
||||||
" Returns list of unique tags found in the .tags file
|
" Returns list of unique tags found in the .tags file
|
||||||
function! vimwiki#tags#get_tags() "{{{
|
function! vimwiki#tags#get_tags()
|
||||||
let metadata = s:load_tags_metadata()
|
let metadata = s:load_tags_metadata()
|
||||||
let tags = {}
|
let tags = {}
|
||||||
for entries in values(metadata)
|
for entries in values(metadata)
|
||||||
@ -288,13 +292,13 @@ function! vimwiki#tags#get_tags() "{{{
|
|||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
return keys(tags)
|
return keys(tags)
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" vimwiki#tags#generate_tags
|
|
||||||
" Similar to vimwiki#base#generate_links. In the current buffer, appends
|
" Similar to vimwiki#base#generate_links. In the current buffer, appends
|
||||||
" tags and references to all their instances. If no arguments (tags) are
|
" tags and references to all their instances. If no arguments (tags) are
|
||||||
" specified, outputs all tags.
|
" specified, outputs all tags.
|
||||||
function! vimwiki#tags#generate_tags(...) abort "{{{
|
function! vimwiki#tags#generate_tags(...) abort
|
||||||
let need_all_tags = (a:0 == 0)
|
let need_all_tags = (a:0 == 0)
|
||||||
let specific_tags = a:000
|
let specific_tags = a:000
|
||||||
|
|
||||||
@ -313,8 +317,7 @@ function! vimwiki#tags#generate_tags(...) abort "{{{
|
|||||||
endfor
|
endfor
|
||||||
|
|
||||||
let lines = []
|
let lines = []
|
||||||
let bullet = repeat(' ', vimwiki#lst#get_list_margin()).
|
let bullet = repeat(' ', vimwiki#lst#get_list_margin()).vimwiki#lst#default_symbol().' '
|
||||||
\ vimwiki#lst#default_symbol().' '
|
|
||||||
for tagname in sort(keys(tags_entries))
|
for tagname in sort(keys(tags_entries))
|
||||||
if need_all_tags || index(specific_tags, tagname) != -1
|
if need_all_tags || index(specific_tags, tagname) != -1
|
||||||
call extend(lines, [
|
call extend(lines, [
|
||||||
@ -322,8 +325,8 @@ function! vimwiki#tags#generate_tags(...) abort "{{{
|
|||||||
\ substitute(vimwiki#vars#get_syntaxlocal('rxH2_Template'), '__Header__', tagname, ''),
|
\ substitute(vimwiki#vars#get_syntaxlocal('rxH2_Template'), '__Header__', tagname, ''),
|
||||||
\ '' ])
|
\ '' ])
|
||||||
for taglink in sort(tags_entries[tagname])
|
for taglink in sort(tags_entries[tagname])
|
||||||
call add(lines, bullet .
|
call add(lines, bullet . substitute(vimwiki#vars#get_global('WikiLinkTemplate1'),
|
||||||
\ substitute(vimwiki#vars#get_global('WikiLinkTemplate1'), '__LinkUrl__', taglink, ''))
|
\ '__LinkUrl__', taglink, ''))
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
@ -332,15 +335,14 @@ function! vimwiki#tags#generate_tags(...) abort "{{{
|
|||||||
\ .vimwiki#u#escape(vimwiki#lst#default_symbol()).' '
|
\ .vimwiki#u#escape(vimwiki#lst#default_symbol()).' '
|
||||||
\ .vimwiki#vars#get_syntaxlocal('rxWikiLink').'$\)'
|
\ .vimwiki#vars#get_syntaxlocal('rxWikiLink').'$\)'
|
||||||
|
|
||||||
call vimwiki#base#update_listing_in_buffer(lines, 'Generated Tags', links_rx,
|
call vimwiki#base#update_listing_in_buffer(lines, 'Generated Tags', links_rx, line('$')+1, 1)
|
||||||
\ line('$')+1, 1)
|
endfunction
|
||||||
endfunction " }}}
|
|
||||||
|
|
||||||
" vimwiki#tags#complete_tags
|
|
||||||
function! vimwiki#tags#complete_tags(ArgLead, CmdLine, CursorPos) abort " {{{
|
function! vimwiki#tags#complete_tags(ArgLead, CmdLine, CursorPos) abort
|
||||||
" We can safely ignore args if we use -custom=complete option, Vim engine
|
" We can safely ignore args if we use -custom=complete option, Vim engine
|
||||||
" will do the job of filtering.
|
" will do the job of filtering.
|
||||||
let taglist = vimwiki#tags#get_tags()
|
let taglist = vimwiki#tags#get_tags()
|
||||||
return join(taglist, "\n")
|
return join(taglist, "\n")
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
|
@ -1,28 +1,29 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki autoload plugin file
|
" Vimwiki autoload plugin file
|
||||||
" Desc: Tables
|
" Description: Tables
|
||||||
" | Easily | manageable | text | tables | ! |
|
" | Easily | manageable | text | tables | ! |
|
||||||
" |--------|------------|-------|--------|---------|
|
" |--------|------------|-------|--------|---------|
|
||||||
" | Have | fun! | Drink | tea | Period. |
|
" | Have | fun! | Drink | tea | Period. |
|
||||||
"
|
"
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
" Load only once {{{
|
|
||||||
|
|
||||||
if exists("g:loaded_vimwiki_tbl_auto") || &cp
|
if exists("g:loaded_vimwiki_tbl_auto") || &cp
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_vimwiki_tbl_auto = 1
|
let g:loaded_vimwiki_tbl_auto = 1
|
||||||
"}}}
|
|
||||||
|
|
||||||
let s:textwidth = &tw
|
let s:textwidth = &tw
|
||||||
|
|
||||||
|
|
||||||
" Misc functions {{{
|
function! s:rxSep()
|
||||||
function! s:rxSep() "{{{
|
|
||||||
return vimwiki#vars#get_syntaxlocal('rxTableSep')
|
return vimwiki#vars#get_syntaxlocal('rxTableSep')
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:wide_len(str) "{{{
|
|
||||||
|
function! s:wide_len(str)
|
||||||
" vim73 has new function that gives correct string width.
|
" vim73 has new function that gives correct string width.
|
||||||
if exists("*strdisplaywidth")
|
if exists("*strdisplaywidth")
|
||||||
return strdisplaywidth(a:str)
|
return strdisplaywidth(a:str)
|
||||||
@ -42,42 +43,49 @@ function! s:wide_len(str) "{{{
|
|||||||
let &modified = savemodified
|
let &modified = savemodified
|
||||||
endif
|
endif
|
||||||
return ret
|
return ret
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:cell_splitter() "{{{
|
|
||||||
|
function! s:cell_splitter()
|
||||||
return '\s*'.s:rxSep().'\s*'
|
return '\s*'.s:rxSep().'\s*'
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:sep_splitter() "{{{
|
|
||||||
|
function! s:sep_splitter()
|
||||||
return '-'.s:rxSep().'-'
|
return '-'.s:rxSep().'-'
|
||||||
endfunction "}}}
|
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) "{{{
|
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*$'
|
return a:line =~# '^\s*'.s:rxSep().'\(--\+'.s:rxSep().'\)\+\s*$'
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:is_separator_tail(line) "{{{
|
|
||||||
|
function! s:is_separator_tail(line)
|
||||||
return a:line =~# '^\{-1}\%(\s*\|-*\)\%('.s:rxSep().'-\+\)\+'.s:rxSep().'\s*$'
|
return a:line =~# '^\{-1}\%(\s*\|-*\)\%('.s:rxSep().'-\+\)\+'.s:rxSep().'\s*$'
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:is_last_column(lnum, cnum) "{{{
|
|
||||||
|
function! s:is_last_column(lnum, cnum)
|
||||||
let line = strpart(getline(a:lnum), a:cnum - 1)
|
let line = strpart(getline(a:lnum), a:cnum - 1)
|
||||||
"echomsg "DEBUG is_last_column> ".(line =~# s:rxSep().'\s*$' && line !~# s:rxSep().'.*'.s:rxSep().'\s*$')
|
|
||||||
return line =~# s:rxSep().'\s*$' && line !~# s:rxSep().'.*'.s:rxSep().'\s*$'
|
return line =~# s:rxSep().'\s*$' && line !~# s:rxSep().'.*'.s:rxSep().'\s*$'
|
||||||
|
endfunction
|
||||||
|
|
||||||
endfunction "}}}
|
|
||||||
|
|
||||||
function! s:is_first_column(lnum, cnum) "{{{
|
function! s:is_first_column(lnum, cnum)
|
||||||
let line = strpart(getline(a:lnum), 0, a:cnum - 1)
|
let line = strpart(getline(a:lnum), 0, a:cnum - 1)
|
||||||
"echomsg "DEBUG is_first_column> ".(line =~# '^\s*'.s:rxSep() && line !~# '^\s*'.s:rxSep().'.*'.s:rxSep())
|
return line =~# '^\s*$' ||
|
||||||
return line =~# '^\s*$' || (line =~# '^\s*'.s:rxSep() && line !~# '^\s*'.s:rxSep().'.*'.s:rxSep())
|
\ (line =~# '^\s*'.s:rxSep() && line !~# '^\s*'.s:rxSep().'.*'.s:rxSep())
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:count_separators_up(lnum) "{{{
|
|
||||||
|
function! s:count_separators_up(lnum)
|
||||||
let lnum = a:lnum - 1
|
let lnum = a:lnum - 1
|
||||||
while lnum > 1
|
while lnum > 1
|
||||||
if !s:is_separator(getline(lnum))
|
if !s:is_separator(getline(lnum))
|
||||||
@ -87,9 +95,10 @@ function! s:count_separators_up(lnum) "{{{
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
return (a:lnum-lnum)
|
return (a:lnum-lnum)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:count_separators_down(lnum) "{{{
|
|
||||||
|
function! s:count_separators_down(lnum)
|
||||||
let lnum = a:lnum + 1
|
let lnum = a:lnum + 1
|
||||||
while lnum < line('$')
|
while lnum < line('$')
|
||||||
if !s:is_separator(getline(lnum))
|
if !s:is_separator(getline(lnum))
|
||||||
@ -99,9 +108,10 @@ function! s:count_separators_down(lnum) "{{{
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
return (lnum-a:lnum)
|
return (lnum-a:lnum)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:create_empty_row(cols) "{{{
|
|
||||||
|
function! s:create_empty_row(cols)
|
||||||
let row = s:rxSep()
|
let row = s:rxSep()
|
||||||
let cell = " ".s:rxSep()
|
let cell = " ".s:rxSep()
|
||||||
|
|
||||||
@ -110,9 +120,10 @@ function! s:create_empty_row(cols) "{{{
|
|||||||
endfor
|
endfor
|
||||||
|
|
||||||
return row
|
return row
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:create_row_sep(cols) "{{{
|
|
||||||
|
function! s:create_row_sep(cols)
|
||||||
let row = s:rxSep()
|
let row = s:rxSep()
|
||||||
let cell = "---".s:rxSep()
|
let cell = "---".s:rxSep()
|
||||||
|
|
||||||
@ -121,9 +132,10 @@ function! s:create_row_sep(cols) "{{{
|
|||||||
endfor
|
endfor
|
||||||
|
|
||||||
return row
|
return row
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#get_cells(line) "{{{
|
|
||||||
|
function! vimwiki#tbl#get_cells(line)
|
||||||
let result = []
|
let result = []
|
||||||
let cell = ''
|
let cell = ''
|
||||||
let quote = ''
|
let quote = ''
|
||||||
@ -174,13 +186,15 @@ function! vimwiki#tbl#get_cells(line) "{{{
|
|||||||
call add(result, vimwiki#u#trim(cell.quote, '|'))
|
call add(result, vimwiki#u#trim(cell.quote, '|'))
|
||||||
endif
|
endif
|
||||||
return result
|
return result
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:col_count(lnum) "{{{
|
|
||||||
|
function! s:col_count(lnum)
|
||||||
return len(vimwiki#tbl#get_cells(getline(a:lnum)))
|
return len(vimwiki#tbl#get_cells(getline(a:lnum)))
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:get_indent(lnum) "{{{
|
|
||||||
|
function! s:get_indent(lnum)
|
||||||
if !s:is_table(getline(a:lnum))
|
if !s:is_table(getline(a:lnum))
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -198,9 +212,10 @@ function! s:get_indent(lnum) "{{{
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
return indent
|
return indent
|
||||||
endfunction " }}}
|
endfunction
|
||||||
|
|
||||||
function! s:get_rows(lnum) "{{{
|
|
||||||
|
function! s:get_rows(lnum)
|
||||||
if !s:is_table(getline(a:lnum))
|
if !s:is_table(getline(a:lnum))
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -232,9 +247,10 @@ function! s:get_rows(lnum) "{{{
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
return upper_rows + lower_rows
|
return upper_rows + lower_rows
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:get_cell_max_lens(lnum, ...) "{{{
|
|
||||||
|
function! s:get_cell_max_lens(lnum, ...)
|
||||||
let max_lens = {}
|
let max_lens = {}
|
||||||
for [lnum, row] in s:get_rows(a:lnum)
|
for [lnum, row] in s:get_rows(a:lnum)
|
||||||
if s:is_separator(row)
|
if s:is_separator(row)
|
||||||
@ -251,9 +267,10 @@ function! s:get_cell_max_lens(lnum, ...) "{{{
|
|||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
return max_lens
|
return max_lens
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:get_aligned_rows(lnum, col1, col2) "{{{
|
|
||||||
|
function! s:get_aligned_rows(lnum, col1, col2)
|
||||||
let rows = s:get_rows(a:lnum)
|
let rows = s:get_rows(a:lnum)
|
||||||
let startlnum = rows[0][0]
|
let startlnum = rows[0][0]
|
||||||
let cells = []
|
let cells = []
|
||||||
@ -271,10 +288,11 @@ function! s:get_aligned_rows(lnum, col1, col2) "{{{
|
|||||||
call add(result, [lnum, new_row])
|
call add(result, [lnum, new_row])
|
||||||
endfor
|
endfor
|
||||||
return result
|
return result
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Number of the current column. Starts from 0.
|
" Number of the current column. Starts from 0.
|
||||||
function! s:cur_column() "{{{
|
function! s:cur_column()
|
||||||
let line = getline('.')
|
let line = getline('.')
|
||||||
if !s:is_table(line)
|
if !s:is_table(line)
|
||||||
return -1
|
return -1
|
||||||
@ -291,12 +309,10 @@ function! s:cur_column() "{{{
|
|||||||
endif
|
endif
|
||||||
endwhile
|
endwhile
|
||||||
return col
|
return col
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" Format functions {{{
|
function! s:fmt_cell(cell, max_len)
|
||||||
function! s:fmt_cell(cell, max_len) "{{{
|
|
||||||
let cell = ' '.a:cell.' '
|
let cell = ' '.a:cell.' '
|
||||||
|
|
||||||
let diff = a:max_len - s:wide_len(a:cell)
|
let diff = a:max_len - s:wide_len(a:cell)
|
||||||
@ -306,9 +322,10 @@ function! s:fmt_cell(cell, max_len) "{{{
|
|||||||
|
|
||||||
let cell .= repeat(' ', diff)
|
let cell .= repeat(' ', diff)
|
||||||
return cell
|
return cell
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:fmt_row(cells, max_lens, col1, col2) "{{{
|
|
||||||
|
function! s:fmt_row(cells, max_lens, col1, col2)
|
||||||
let new_line = s:rxSep()
|
let new_line = s:rxSep()
|
||||||
for idx in range(len(a:cells))
|
for idx in range(len(a:cells))
|
||||||
if idx == a:col1
|
if idx == a:col1
|
||||||
@ -326,17 +343,19 @@ function! s:fmt_row(cells, max_lens, col1, col2) "{{{
|
|||||||
let idx += 1
|
let idx += 1
|
||||||
endwhile
|
endwhile
|
||||||
return new_line
|
return new_line
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:fmt_cell_sep(max_len) "{{{
|
|
||||||
|
function! s:fmt_cell_sep(max_len)
|
||||||
if a:max_len == 0
|
if a:max_len == 0
|
||||||
return repeat('-', 3)
|
return repeat('-', 3)
|
||||||
else
|
else
|
||||||
return repeat('-', a:max_len+2)
|
return repeat('-', a:max_len+2)
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:fmt_sep(max_lens, col1, col2) "{{{
|
|
||||||
|
function! s:fmt_sep(max_lens, col1, col2)
|
||||||
let new_line = s:rxSep()
|
let new_line = s:rxSep()
|
||||||
for idx in range(len(a:max_lens))
|
for idx in range(len(a:max_lens))
|
||||||
if idx == a:col1
|
if idx == a:col1
|
||||||
@ -347,11 +366,10 @@ function! s:fmt_sep(max_lens, col1, col2) "{{{
|
|||||||
let new_line .= s:fmt_cell_sep(a:max_lens[idx]).s:rxSep()
|
let new_line .= s:fmt_cell_sep(a:max_lens[idx]).s:rxSep()
|
||||||
endfor
|
endfor
|
||||||
return new_line
|
return new_line
|
||||||
endfunction "}}}
|
endfunction
|
||||||
"}}}
|
|
||||||
|
|
||||||
" Keyboard functions "{{{
|
|
||||||
function! s:kbd_create_new_row(cols, goto_first) "{{{
|
function! s:kbd_create_new_row(cols, goto_first)
|
||||||
let cmd = "\<ESC>o".s:create_empty_row(a:cols)
|
let cmd = "\<ESC>o".s:create_empty_row(a:cols)
|
||||||
let cmd .= "\<ESC>:call vimwiki#tbl#format(line('.'))\<CR>"
|
let cmd .= "\<ESC>:call vimwiki#tbl#format(line('.'))\<CR>"
|
||||||
let cmd .= "\<ESC>0"
|
let cmd .= "\<ESC>0"
|
||||||
@ -364,26 +382,29 @@ function! s:kbd_create_new_row(cols, goto_first) "{{{
|
|||||||
let cmd .= "a"
|
let cmd .= "a"
|
||||||
|
|
||||||
return cmd
|
return cmd
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:kbd_goto_next_row() "{{{
|
|
||||||
|
function! s:kbd_goto_next_row()
|
||||||
let cmd = "\<ESC>j"
|
let cmd = "\<ESC>j"
|
||||||
let cmd .= ":call search('.\\(".s:rxSep()."\\)', 'c', line('.'))\<CR>"
|
let cmd .= ":call search('.\\(".s:rxSep()."\\)', 'c', line('.'))\<CR>"
|
||||||
let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'bc', line('.'))\<CR>"
|
let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'bc', line('.'))\<CR>"
|
||||||
let cmd .= "a"
|
let cmd .= "a"
|
||||||
return cmd
|
return cmd
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:kbd_goto_prev_row() "{{{
|
|
||||||
|
function! s:kbd_goto_prev_row()
|
||||||
let cmd = "\<ESC>k"
|
let cmd = "\<ESC>k"
|
||||||
let cmd .= ":call search('.\\(".s:rxSep()."\\)', 'c', line('.'))\<CR>"
|
let cmd .= ":call search('.\\(".s:rxSep()."\\)', 'c', line('.'))\<CR>"
|
||||||
let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'bc', line('.'))\<CR>"
|
let cmd .= ":call search('\\(".s:rxSep()."\\)\\zs', 'bc', line('.'))\<CR>"
|
||||||
let cmd .= "a"
|
let cmd .= "a"
|
||||||
return cmd
|
return cmd
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Used in s:kbd_goto_next_col
|
" Used in s:kbd_goto_next_col
|
||||||
function! vimwiki#tbl#goto_next_col() "{{{
|
function! vimwiki#tbl#goto_next_col()
|
||||||
let curcol = virtcol('.')
|
let curcol = virtcol('.')
|
||||||
let lnum = line('.')
|
let lnum = line('.')
|
||||||
let newcol = s:get_indent(lnum)
|
let newcol = s:get_indent(lnum)
|
||||||
@ -396,9 +417,10 @@ function! vimwiki#tbl#goto_next_col() "{{{
|
|||||||
endfor
|
endfor
|
||||||
let newcol += 2 " +2 == 1 separator + 1 space |<space
|
let newcol += 2 " +2 == 1 separator + 1 space |<space
|
||||||
call vimwiki#u#cursor(lnum, newcol)
|
call vimwiki#u#cursor(lnum, newcol)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:kbd_goto_next_col(jumpdown) "{{{
|
|
||||||
|
function! s:kbd_goto_next_col(jumpdown)
|
||||||
let cmd = "\<ESC>"
|
let cmd = "\<ESC>"
|
||||||
if a:jumpdown
|
if a:jumpdown
|
||||||
let seps = s:count_separators_down(line('.'))
|
let seps = s:count_separators_down(line('.'))
|
||||||
@ -406,10 +428,11 @@ function! s:kbd_goto_next_col(jumpdown) "{{{
|
|||||||
endif
|
endif
|
||||||
let cmd .= ":call vimwiki#tbl#goto_next_col()\<CR>a"
|
let cmd .= ":call vimwiki#tbl#goto_next_col()\<CR>a"
|
||||||
return cmd
|
return cmd
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Used in s:kbd_goto_prev_col
|
" Used in s:kbd_goto_prev_col
|
||||||
function! vimwiki#tbl#goto_prev_col() "{{{
|
function! vimwiki#tbl#goto_prev_col()
|
||||||
let curcol = virtcol('.')
|
let curcol = virtcol('.')
|
||||||
let lnum = line('.')
|
let lnum = line('.')
|
||||||
let newcol = s:get_indent(lnum)
|
let newcol = s:get_indent(lnum)
|
||||||
@ -428,9 +451,10 @@ function! vimwiki#tbl#goto_prev_col() "{{{
|
|||||||
endfor
|
endfor
|
||||||
let newcol += 2 " +2 == 1 separator + 1 space |<space
|
let newcol += 2 " +2 == 1 separator + 1 space |<space
|
||||||
call vimwiki#u#cursor(lnum, newcol)
|
call vimwiki#u#cursor(lnum, newcol)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:kbd_goto_prev_col(jumpup) "{{{
|
|
||||||
|
function! s:kbd_goto_prev_col(jumpup)
|
||||||
let cmd = "\<ESC>"
|
let cmd = "\<ESC>"
|
||||||
if a:jumpup
|
if a:jumpup
|
||||||
let seps = s:count_separators_up(line('.'))
|
let seps = s:count_separators_up(line('.'))
|
||||||
@ -442,12 +466,10 @@ function! s:kbd_goto_prev_col(jumpup) "{{{
|
|||||||
" let cmd .= "a"
|
" let cmd .= "a"
|
||||||
"echomsg "DEBUG kbd_goto_prev_col> ".cmd
|
"echomsg "DEBUG kbd_goto_prev_col> ".cmd
|
||||||
return cmd
|
return cmd
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
"}}}
|
|
||||||
|
|
||||||
" Global functions {{{
|
function! vimwiki#tbl#kbd_cr()
|
||||||
function! vimwiki#tbl#kbd_cr() "{{{
|
|
||||||
let lnum = line('.')
|
let lnum = line('.')
|
||||||
if !s:is_table(getline(lnum))
|
if !s:is_table(getline(lnum))
|
||||||
return ""
|
return ""
|
||||||
@ -459,9 +481,10 @@ function! vimwiki#tbl#kbd_cr() "{{{
|
|||||||
else
|
else
|
||||||
return s:kbd_goto_next_row()
|
return s:kbd_goto_next_row()
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#kbd_tab() "{{{
|
|
||||||
|
function! vimwiki#tbl#kbd_tab()
|
||||||
let lnum = line('.')
|
let lnum = line('.')
|
||||||
if !s:is_table(getline(lnum))
|
if !s:is_table(getline(lnum))
|
||||||
return "\<Tab>"
|
return "\<Tab>"
|
||||||
@ -475,9 +498,10 @@ function! vimwiki#tbl#kbd_tab() "{{{
|
|||||||
return s:kbd_create_new_row(cols, 1)
|
return s:kbd_create_new_row(cols, 1)
|
||||||
endif
|
endif
|
||||||
return s:kbd_goto_next_col(is_sep || last)
|
return s:kbd_goto_next_col(is_sep || last)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#kbd_shift_tab() "{{{
|
|
||||||
|
function! vimwiki#tbl#kbd_shift_tab()
|
||||||
let lnum = line('.')
|
let lnum = line('.')
|
||||||
if !s:is_table(getline(lnum))
|
if !s:is_table(getline(lnum))
|
||||||
return "\<S-Tab>"
|
return "\<S-Tab>"
|
||||||
@ -490,9 +514,10 @@ function! vimwiki#tbl#kbd_shift_tab() "{{{
|
|||||||
return ""
|
return ""
|
||||||
endif
|
endif
|
||||||
return s:kbd_goto_prev_col(is_sep || first)
|
return s:kbd_goto_prev_col(is_sep || first)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#format(lnum, ...) "{{{
|
|
||||||
|
function! vimwiki#tbl#format(lnum, ...)
|
||||||
if !(&filetype ==? 'vimwiki')
|
if !(&filetype ==? 'vimwiki')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -522,9 +547,10 @@ function! vimwiki#tbl#format(lnum, ...) "{{{
|
|||||||
endfor
|
endfor
|
||||||
|
|
||||||
let &tw = s:textwidth
|
let &tw = s:textwidth
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#create(...) "{{{
|
|
||||||
|
function! vimwiki#tbl#create(...)
|
||||||
if a:0 > 1
|
if a:0 > 1
|
||||||
let cols = a:1
|
let cols = a:1
|
||||||
let rows = a:2
|
let rows = a:2
|
||||||
@ -557,17 +583,19 @@ function! vimwiki#tbl#create(...) "{{{
|
|||||||
endfor
|
endfor
|
||||||
|
|
||||||
call append(line('.'), lines)
|
call append(line('.'), lines)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#align_or_cmd(cmd) "{{{
|
|
||||||
|
function! vimwiki#tbl#align_or_cmd(cmd)
|
||||||
if s:is_table(getline('.'))
|
if s:is_table(getline('.'))
|
||||||
call vimwiki#tbl#format(line('.'))
|
call vimwiki#tbl#format(line('.'))
|
||||||
else
|
else
|
||||||
exe 'normal! '.a:cmd
|
exe 'normal! '.a:cmd
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#reset_tw(lnum) "{{{
|
|
||||||
|
function! vimwiki#tbl#reset_tw(lnum)
|
||||||
if !(&filetype ==? 'vimwiki')
|
if !(&filetype ==? 'vimwiki')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -578,11 +606,11 @@ function! vimwiki#tbl#reset_tw(lnum) "{{{
|
|||||||
|
|
||||||
let s:textwidth = &tw
|
let s:textwidth = &tw
|
||||||
let &tw = 0
|
let &tw = 0
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
" TODO: move_column_left and move_column_right are good candidates to be
|
|
||||||
" refactored.
|
" TODO: move_column_left and move_column_right are good candidates to be refactored.
|
||||||
function! vimwiki#tbl#move_column_left() "{{{
|
function! vimwiki#tbl#move_column_left()
|
||||||
|
|
||||||
"echomsg "DEBUG move_column_left: "
|
"echomsg "DEBUG move_column_left: "
|
||||||
|
|
||||||
@ -614,10 +642,10 @@ function! vimwiki#tbl#move_column_left() "{{{
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
endfunction "}}}
|
|
||||||
|
|
||||||
function! vimwiki#tbl#move_column_right() "{{{
|
function! vimwiki#tbl#move_column_right()
|
||||||
|
|
||||||
let line = getline('.')
|
let line = getline('.')
|
||||||
|
|
||||||
@ -645,29 +673,31 @@ function! vimwiki#tbl#move_column_right() "{{{
|
|||||||
break
|
break
|
||||||
endif
|
endif
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
endfunction "}}}
|
|
||||||
|
|
||||||
function! vimwiki#tbl#get_rows(lnum) "{{{
|
function! vimwiki#tbl#get_rows(lnum)
|
||||||
return s:get_rows(a:lnum)
|
return s:get_rows(a:lnum)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#is_table(line) "{{{
|
|
||||||
|
function! vimwiki#tbl#is_table(line)
|
||||||
return s:is_table(a:line)
|
return s:is_table(a:line)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#is_separator(line) "{{{
|
|
||||||
|
function! vimwiki#tbl#is_separator(line)
|
||||||
return s:is_separator(a:line)
|
return s:is_separator(a:line)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#cell_splitter() "{{{
|
|
||||||
|
function! vimwiki#tbl#cell_splitter()
|
||||||
return s:cell_splitter()
|
return s:cell_splitter()
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#tbl#sep_splitter() "{{{
|
|
||||||
|
function! vimwiki#tbl#sep_splitter()
|
||||||
return s:sep_splitter()
|
return s:sep_splitter()
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
"}}}
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki autoload plugin file
|
" Vimwiki autoload plugin file
|
||||||
" Desc: Utility functions
|
" Description: Utility functions
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
function! vimwiki#u#trim(string, ...) "{{{
|
function! vimwiki#u#trim(string, ...)
|
||||||
let chars = ''
|
let chars = ''
|
||||||
if a:0 > 0
|
if a:0 > 0
|
||||||
let chars = a:1
|
let chars = a:1
|
||||||
@ -11,17 +11,20 @@ function! vimwiki#u#trim(string, ...) "{{{
|
|||||||
let res = substitute(a:string, '^[[:space:]'.chars.']\+', '', '')
|
let res = substitute(a:string, '^[[:space:]'.chars.']\+', '', '')
|
||||||
let res = substitute(res, '[[:space:]'.chars.']\+$', '', '')
|
let res = substitute(res, '[[:space:]'.chars.']\+$', '', '')
|
||||||
return res
|
return res
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Builtin cursor doesn't work right with unicode characters.
|
" Builtin cursor doesn't work right with unicode characters.
|
||||||
function! vimwiki#u#cursor(lnum, cnum) "{{{
|
function! vimwiki#u#cursor(lnum, cnum)
|
||||||
exe a:lnum
|
exe a:lnum
|
||||||
exe 'normal! 0'.a:cnum.'|'
|
exe 'normal! 0'.a:cnum.'|'
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#u#is_windows() "{{{
|
|
||||||
|
function! vimwiki#u#is_windows()
|
||||||
return has("win32") || has("win64") || has("win95") || has("win16")
|
return has("win32") || has("win64") || has("win95") || has("win16")
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! vimwiki#u#is_macos()
|
function! vimwiki#u#is_macos()
|
||||||
if has("mac") || has("macunix") || has("gui_mac")
|
if has("mac") || has("macunix") || has("gui_mac")
|
||||||
@ -32,27 +35,32 @@ function! vimwiki#u#is_macos()
|
|||||||
return os == 'Darwin' || os == 'Mac'
|
return os == 'Darwin' || os == 'Mac'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#u#count_first_sym(line) "{{{
|
|
||||||
|
function! vimwiki#u#count_first_sym(line)
|
||||||
let first_sym = matchstr(a:line, '\S')
|
let first_sym = matchstr(a:line, '\S')
|
||||||
return len(matchstr(a:line, first_sym.'\+'))
|
return len(matchstr(a:line, first_sym.'\+'))
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#u#escape(string) "{{{
|
|
||||||
|
function! vimwiki#u#escape(string)
|
||||||
return escape(a:string, '~.*[]\^$')
|
return escape(a:string, '~.*[]\^$')
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Load concrete Wiki syntax: sets regexes and templates for headers and links
|
" Load concrete Wiki syntax: sets regexes and templates for headers and links
|
||||||
function vimwiki#u#reload_regexes() "{{{
|
function vimwiki#u#reload_regexes()
|
||||||
execute 'runtime! syntax/vimwiki_'.vimwiki#vars#get_wikilocal('syntax').'.vim'
|
execute 'runtime! syntax/vimwiki_'.vimwiki#vars#get_wikilocal('syntax').'.vim'
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Load syntax-specific functionality
|
" Load syntax-specific functionality
|
||||||
function vimwiki#u#reload_regexes_custom() "{{{
|
function vimwiki#u#reload_regexes_custom()
|
||||||
execute 'runtime! syntax/vimwiki_'.vimwiki#vars#get_wikilocal('syntax').'_custom.vim'
|
execute 'runtime! syntax/vimwiki_'.vimwiki#vars#get_wikilocal('syntax').'_custom.vim'
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" Backward compatible version of the built-in function shiftwidth()
|
" Backward compatible version of the built-in function shiftwidth()
|
||||||
if exists('*shiftwidth') "{{{
|
if exists('*shiftwidth')
|
||||||
func vimwiki#u#sw()
|
func vimwiki#u#sw()
|
||||||
return shiftwidth()
|
return shiftwidth()
|
||||||
endfunc
|
endfunc
|
||||||
@ -60,7 +68,7 @@ else
|
|||||||
func vimwiki#u#sw()
|
func vimwiki#u#sw()
|
||||||
return &sw
|
return &sw
|
||||||
endfunc
|
endfunc
|
||||||
endif "}}}
|
endif
|
||||||
|
|
||||||
|
|
||||||
function vimwiki#u#error(message)
|
function vimwiki#u#error(message)
|
||||||
|
@ -1,12 +1,33 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki autoload plugin file
|
" Vimwiki autoload plugin file
|
||||||
" Desc: stuff concerning Vimwiki's state
|
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
|
|
||||||
" copy the user's settings from variables of the form g:vimwiki_<option> into g:vimwiki_global_vars
|
|
||||||
" (or set a default value)
|
" ------------------------------------------------------------------------------------------------
|
||||||
|
" 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()
|
function! s:populate_global_variables()
|
||||||
|
|
||||||
let g:vimwiki_global_vars = {
|
let g:vimwiki_global_vars = {
|
||||||
\ 'CJK_length': 0,
|
\ 'CJK_length': 0,
|
||||||
\ 'auto_chdir': 0,
|
\ 'auto_chdir': 0,
|
||||||
@ -28,7 +49,9 @@ function! s:populate_global_variables()
|
|||||||
\ 'html_header_numbering': 0,
|
\ 'html_header_numbering': 0,
|
||||||
\ 'html_header_numbering_sym': '',
|
\ 'html_header_numbering_sym': '',
|
||||||
\ 'list_ignore_newline': 1,
|
\ 'list_ignore_newline': 1,
|
||||||
|
\ 'text_ignore_newline': 1,
|
||||||
\ 'listsyms': ' .oOX',
|
\ 'listsyms': ' .oOX',
|
||||||
|
\ 'listsym_rejected': '-',
|
||||||
\ 'map_prefix': '<Leader>w',
|
\ 'map_prefix': '<Leader>w',
|
||||||
\ 'menu': 'Vimwiki',
|
\ 'menu': 'Vimwiki',
|
||||||
\ 'table_auto_fmt': 1,
|
\ 'table_auto_fmt': 1,
|
||||||
@ -42,6 +65,8 @@ function! s:populate_global_variables()
|
|||||||
\ 'w32_dir_enc': '',
|
\ '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)
|
for key in keys(g:vimwiki_global_vars)
|
||||||
if exists('g:vimwiki_'.key)
|
if exists('g:vimwiki_'.key)
|
||||||
let g:vimwiki_global_vars[key] = g:vimwiki_{key}
|
let g:vimwiki_global_vars[key] = g:vimwiki_{key}
|
||||||
@ -50,31 +75,31 @@ function! s:populate_global_variables()
|
|||||||
|
|
||||||
call s:validate_global_settings()
|
call s:validate_global_settings()
|
||||||
|
|
||||||
" non-configurable global variables
|
" non-configurable global variables:
|
||||||
|
|
||||||
" Scheme regexes should be defined even if syntax file is not loaded yet cause users should be
|
" 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
|
" able to <leader>w<leader>w without opening any vimwiki file first
|
||||||
let g:vimwiki_global_vars['schemes'] = 'wiki\d\+,diary,local'
|
let g:vimwiki_global_vars.schemes = 'wiki\d\+,diary,local'
|
||||||
let g:vimwiki_global_vars['web_schemes1'] = 'http,https,file,ftp,gopher,telnet,nntp,ldap,rsync'.
|
let g:vimwiki_global_vars.web_schemes1 = 'http,https,file,ftp,gopher,telnet,nntp,ldap,rsync'.
|
||||||
\ ',imap,pop,irc,ircs,cvs,svn,svn+ssh,git,ssh,fish,sftp'
|
\ ',imap,pop,irc,ircs,cvs,svn,svn+ssh,git,ssh,fish,sftp'
|
||||||
let web_schemes2 = 'mailto,news,xmpp,sip,sips,doi,urn,tel'
|
let web_schemes2 = 'mailto,news,xmpp,sip,sips,doi,urn,tel,data'
|
||||||
|
|
||||||
let rx_schemes = '\%('.
|
let rx_schemes = '\%('.
|
||||||
\ join(split(g:vimwiki_global_vars['schemes'], '\s*,\s*'), '\|').'\|'.
|
\ join(split(g:vimwiki_global_vars.schemes, '\s*,\s*'), '\|').'\|'.
|
||||||
\ join(split(g:vimwiki_global_vars['web_schemes1'], '\s*,\s*'), '\|').'\|'.
|
\ join(split(g:vimwiki_global_vars.web_schemes1, '\s*,\s*'), '\|').'\|'.
|
||||||
\ join(split(web_schemes2, '\s*,\s*'), '\|').
|
\ join(split(web_schemes2, '\s*,\s*'), '\|').
|
||||||
\ '\)'
|
\ '\)'
|
||||||
|
|
||||||
let g:vimwiki_global_vars['rxSchemeUrl'] = rx_schemes.':.*'
|
let g:vimwiki_global_vars.rxSchemeUrl = rx_schemes.':.*'
|
||||||
let g:vimwiki_global_vars['rxSchemeUrlMatchScheme'] = '\zs'.rx_schemes.'\ze:.*'
|
let g:vimwiki_global_vars.rxSchemeUrlMatchScheme = '\zs'.rx_schemes.'\ze:.*'
|
||||||
let g:vimwiki_global_vars['rxSchemeUrlMatchUrl'] = rx_schemes.':\zs.*\ze'
|
let g:vimwiki_global_vars.rxSchemeUrlMatchUrl = rx_schemes.':\zs.*\ze'
|
||||||
|
|
||||||
" match URL for common protocols; see http://en.wikipedia.org/wiki/URI_scheme
|
" match URL for common protocols; see http://en.wikipedia.org/wiki/URI_scheme
|
||||||
" http://tools.ietf.org/html/rfc3986
|
" http://tools.ietf.org/html/rfc3986
|
||||||
let rxWebProtocols =
|
let rxWebProtocols =
|
||||||
\ '\%('.
|
\ '\%('.
|
||||||
\ '\%('.
|
\ '\%('.
|
||||||
\ '\%('.join(split(g:vimwiki_global_vars['web_schemes1'], '\s*,\s*'), '\|').'\):'.
|
\ '\%('.join(split(g:vimwiki_global_vars.web_schemes1, '\s*,\s*'), '\|').'\):'.
|
||||||
\ '\%(//\)'.
|
\ '\%(//\)'.
|
||||||
\ '\)'.
|
\ '\)'.
|
||||||
\ '\|'.
|
\ '\|'.
|
||||||
@ -107,20 +132,20 @@ function! s:populate_global_variables()
|
|||||||
" non-Ascii characters
|
" non-Ascii characters
|
||||||
let g:vimwiki_global_vars.rxWord = '[^[:blank:]!"$%&''()*+,:;<=>?\[\]\\^`{}]\+'
|
let g:vimwiki_global_vars.rxWord = '[^[:blank:]!"$%&''()*+,:;<=>?\[\]\\^`{}]\+'
|
||||||
|
|
||||||
let g:vimwiki_global_vars.rx_wikilink_prefix1 = g:vimwiki_global_vars.rx_wikilink_prefix . g:vimwiki_global_vars.rxWikiLinkUrl .
|
let g:vimwiki_global_vars.rx_wikilink_prefix1 = g:vimwiki_global_vars.rx_wikilink_prefix .
|
||||||
\ g:vimwiki_global_vars.rx_wikilink_separator
|
\ 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.rx_wikilink_suffix1 = g:vimwiki_global_vars.rx_wikilink_suffix
|
||||||
|
|
||||||
let g:vimwiki_global_vars.rxWikiInclPrefix = '{{'
|
let g:vimwiki_global_vars.rxWikiInclPrefix = '{{'
|
||||||
let g:vimwiki_global_vars.rxWikiInclSuffix = '}}'
|
let g:vimwiki_global_vars.rxWikiInclSuffix = '}}'
|
||||||
let g:vimwiki_global_vars.rxWikiInclSeparator = '|'
|
let g:vimwiki_global_vars.rxWikiInclSeparator = '|'
|
||||||
" '{{__LinkUrl__}}'
|
" '{{__LinkUrl__}}'
|
||||||
let g:vimwiki_global_vars.WikiInclTemplate1 = g:vimwiki_global_vars.rxWikiInclPrefix . '__LinkUrl__'.
|
let g:vimwiki_global_vars.WikiInclTemplate1 = g:vimwiki_global_vars.rxWikiInclPrefix
|
||||||
\ g:vimwiki_global_vars.rxWikiInclSuffix
|
\ .'__LinkUrl__'. g:vimwiki_global_vars.rxWikiInclSuffix
|
||||||
" '{{__LinkUrl____LinkDescription__}}'
|
" '{{__LinkUrl____LinkDescription__}}'
|
||||||
let g:vimwiki_global_vars.WikiInclTemplate2 = g:vimwiki_global_vars.rxWikiInclPrefix . '__LinkUrl__'.
|
let g:vimwiki_global_vars.WikiInclTemplate2 = g:vimwiki_global_vars.rxWikiInclPrefix
|
||||||
\ '__LinkDescription__'.
|
\ . '__LinkUrl__' . g:vimwiki_global_vars.rxWikiInclSeparator . '__LinkDescription__'
|
||||||
\ g:vimwiki_global_vars.rxWikiInclSuffix
|
\ . g:vimwiki_global_vars.rxWikiInclSuffix
|
||||||
|
|
||||||
let valid_chars = '[^\\\}]'
|
let valid_chars = '[^\\\}]'
|
||||||
let g:vimwiki_global_vars.rxWikiInclUrl = valid_chars.'\{-}'
|
let g:vimwiki_global_vars.rxWikiInclUrl = valid_chars.'\{-}'
|
||||||
@ -143,14 +168,18 @@ function! s:populate_global_variables()
|
|||||||
let g:vimwiki_global_vars.rxWikiInclSuffix1 = g:vimwiki_global_vars.rxWikiInclArgs.
|
let g:vimwiki_global_vars.rxWikiInclSuffix1 = g:vimwiki_global_vars.rxWikiInclArgs.
|
||||||
\ g:vimwiki_global_vars.rxWikiInclSuffix
|
\ g:vimwiki_global_vars.rxWikiInclSuffix
|
||||||
|
|
||||||
let g:vimwiki_global_vars.rxTodo = '\C\%(TODO:\|DONE:\|STARTED:\|FIXME:\|FIXED:\|XXX:\)'
|
let g:vimwiki_global_vars.rxTodo = '\C\<\%(TODO\|DONE\|STARTED\|FIXME\|FIXED\|XXX\)\>'
|
||||||
|
|
||||||
" default colors when headers of different levels are highlighted differently
|
" default colors when headers of different levels are highlighted differently
|
||||||
" not making it yet another option; needed by ColorScheme autocommand
|
" 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_guifg_light = ['#aa5858', '#507030', '#1030a0', '#103040'
|
||||||
let g:vimwiki_global_vars.hcolor_ctermfg_light = ['DarkRed', 'DarkGreen', 'DarkBlue', 'Black', 'Black', 'Black']
|
\ , '#505050', '#636363']
|
||||||
let g:vimwiki_global_vars.hcolor_guifg_dark = ['#e08090', '#80e090', '#6090e0', '#c0c0f0', '#e0e0f0', '#f0f0f0']
|
let g:vimwiki_global_vars.hcolor_ctermfg_light = ['DarkRed', 'DarkGreen', 'DarkBlue', 'Black'
|
||||||
let g:vimwiki_global_vars.hcolor_ctermfg_dark = ['Red', 'Green', 'Blue', 'White', 'White', 'White']
|
\ , '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
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
@ -185,6 +214,7 @@ function! s:populate_wikilocal_options()
|
|||||||
\ 'automatic_nested_syntaxes': 1,
|
\ 'automatic_nested_syntaxes': 1,
|
||||||
\ 'css_name': 'style.css',
|
\ 'css_name': 'style.css',
|
||||||
\ 'custom_wiki2html': '',
|
\ 'custom_wiki2html': '',
|
||||||
|
\ 'custom_wiki2html_args': '',
|
||||||
\ 'diary_header': 'Diary',
|
\ 'diary_header': 'Diary',
|
||||||
\ 'diary_index': 'diary',
|
\ 'diary_index': 'diary',
|
||||||
\ 'diary_rel_path': 'diary/',
|
\ 'diary_rel_path': 'diary/',
|
||||||
@ -204,12 +234,22 @@ function! s:populate_wikilocal_options()
|
|||||||
|
|
||||||
let g:vimwiki_wikilocal_vars = []
|
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')
|
if exists('g:vimwiki_list')
|
||||||
for users_options in g:vimwiki_list
|
for users_wiki_settings in g:vimwiki_list
|
||||||
let new_wiki_settings = {}
|
let new_wiki_settings = {}
|
||||||
for key in keys(default_values)
|
for key in keys(default_values)
|
||||||
if has_key(users_options, key)
|
if has_key(users_wiki_settings, key)
|
||||||
let new_wiki_settings[key] = users_options[key]
|
let new_wiki_settings[key] = users_wiki_settings[key]
|
||||||
elseif exists('g:vimwiki_'.key)
|
elseif exists('g:vimwiki_'.key)
|
||||||
let new_wiki_settings[key] = g:vimwiki_{key}
|
let new_wiki_settings[key] = g:vimwiki_{key}
|
||||||
else
|
else
|
||||||
@ -217,24 +257,21 @@ function! s:populate_wikilocal_options()
|
|||||||
endif
|
endif
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
" is it a temporary wiki? No, it's not.
|
let new_wiki_settings.is_temporary_wiki = 0
|
||||||
let new_wiki_settings.temp = 0
|
|
||||||
|
|
||||||
call add(g:vimwiki_wikilocal_vars, new_wiki_settings)
|
call add(g:vimwiki_wikilocal_vars, new_wiki_settings)
|
||||||
endfor
|
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
|
endif
|
||||||
|
|
||||||
" default values for temporary wikis
|
" default values for temporary wikis
|
||||||
let temporary_options_dict = {}
|
let temporary_wiki_settings = deepcopy(default_wiki_settings)
|
||||||
for key in keys(default_values)
|
let temporary_wiki_settings.is_temporary_wiki = 1
|
||||||
if exists('g:vimwiki_'.key)
|
call add(g:vimwiki_wikilocal_vars, temporary_wiki_settings)
|
||||||
let temporary_options_dict[key] = g:vimwiki_{key}
|
|
||||||
else
|
|
||||||
let temporary_options_dict[key] = default_values[key]
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
let temporary_options_dict.temp = 1
|
|
||||||
call add(g:vimwiki_wikilocal_vars, temporary_options_dict)
|
|
||||||
|
|
||||||
call s:validate_wikilocal_settings()
|
call s:validate_wikilocal_settings()
|
||||||
endfunction
|
endfunction
|
||||||
@ -263,14 +300,28 @@ function! s:validate_wikilocal_settings()
|
|||||||
endfunction
|
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)
|
function! vimwiki#vars#populate_syntax_vars(syntax)
|
||||||
if !exists('g:vimwiki_syntax_variables')
|
if !exists('g:vimwiki_syntax_variables')
|
||||||
let g:vimwiki_syntax_variables = {}
|
let g:vimwiki_syntax_variables = {}
|
||||||
endif
|
endif
|
||||||
if !has_key(g:vimwiki_syntax_variables, a:syntax)
|
|
||||||
let g:vimwiki_syntax_variables[a:syntax] = {}
|
if has_key(g:vimwiki_syntax_variables, a:syntax)
|
||||||
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let g:vimwiki_syntax_variables[a:syntax] = {}
|
||||||
|
|
||||||
execute 'runtime! syntax/vimwiki_'.a:syntax.'.vim'
|
execute 'runtime! syntax/vimwiki_'.a:syntax.'.vim'
|
||||||
|
|
||||||
" generic stuff
|
" generic stuff
|
||||||
@ -278,33 +329,53 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
|
|||||||
if g:vimwiki_syntax_variables[a:syntax].symH
|
if g:vimwiki_syntax_variables[a:syntax].symH
|
||||||
" symmetric headers
|
" symmetric headers
|
||||||
for i in range(1,6)
|
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.'_Template'] =
|
||||||
let g:vimwiki_syntax_variables[a:syntax]['rxH'.i] = '^\s*'.header_symbol.'\{'.i.'}[^'.header_symbol.'].*[^'.header_symbol.']'.header_symbol.'\{'.i.'}\s*$'
|
\ repeat(header_symbol, i).' __Header__ '.repeat(header_symbol, i)
|
||||||
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] =
|
||||||
let g:vimwiki_syntax_variables[a:syntax]['rxH'.i.'_End'] = '^\s*'.header_symbol.'\{1,'.i.'}[^'.header_symbol.'].*[^'.header_symbol.']'.header_symbol.'\{1,'.i.'}\s*$'
|
\ '^\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
|
endfor
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxHeader = '^\s*\('.header_symbol.'\{1,6}\)\zs[^'.header_symbol.'].*[^'.header_symbol.']\ze\1\s*$'
|
let g:vimwiki_syntax_variables[a:syntax].rxHeader =
|
||||||
|
\ '^\s*\('.header_symbol.'\{1,6}\)\zs[^'.header_symbol.'].*[^'.header_symbol.']\ze\1\s*$'
|
||||||
else
|
else
|
||||||
" asymmetric
|
" asymmetric
|
||||||
for i in range(1,6)
|
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.'_Template'] =
|
||||||
let g:vimwiki_syntax_variables[a:syntax]['rxH'.i] = '^\s*'.header_symbol.'\{'.i.'}[^'.header_symbol.'].*$'
|
\ repeat(header_symbol, i).' __Header__'
|
||||||
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] =
|
||||||
let g:vimwiki_syntax_variables[a:syntax]['rxH'.i.'_End'] = '^\s*'.header_symbol.'\{1,'.i.'}[^'.header_symbol.'].*$'
|
\ '^\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
|
endfor
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxHeader = '^\s*\('.header_symbol.'\{1,6}\)\zs[^'.header_symbol.'].*\ze$'
|
let g:vimwiki_syntax_variables[a:syntax].rxHeader =
|
||||||
|
\ '^\s*\('.header_symbol.'\{1,6}\)\zs[^'.header_symbol.'].*\ze$'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxPreStart = '^\s*'.g:vimwiki_syntax_variables[a:syntax].rxPreStart
|
let g:vimwiki_syntax_variables[a:syntax].rxPreStart =
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxPreEnd = '^\s*'.g:vimwiki_syntax_variables[a:syntax].rxPreEnd.'\s*$'
|
\ '^\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].rxMathStart =
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxMathEnd = '^\s*'.g:vimwiki_syntax_variables[a:syntax].rxMathEnd.'\s*$'
|
\ '^\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
|
" 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].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].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_kinds = []
|
||||||
let g:vimwiki_syntax_variables[a:syntax].number_divisors = ''
|
let g:vimwiki_syntax_variables[a:syntax].number_divisors = ''
|
||||||
@ -318,8 +389,10 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
|
|||||||
|
|
||||||
"create regexp for bulleted list items
|
"create regexp for bulleted list items
|
||||||
if !empty(g:vimwiki_syntax_variables[a:syntax].bullet_types)
|
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,
|
let g:vimwiki_syntax_variables[a:syntax].rxListBullet =
|
||||||
\'vimwiki#u#escape(v:val).repeat("\\+", g:vimwiki_syntax_variables[a:syntax].recurring_bullets)'
|
\ 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
|
else
|
||||||
"regex that matches nothing
|
"regex that matches nothing
|
||||||
@ -333,7 +406,8 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
|
|||||||
let g:vimwiki_syntax_variables[a:syntax].rxListNumber .= char_to_rx[type[0]] .
|
let g:vimwiki_syntax_variables[a:syntax].rxListNumber .= char_to_rx[type[0]] .
|
||||||
\ vimwiki#u#escape(type[1]) . '\|'
|
\ vimwiki#u#escape(type[1]) . '\|'
|
||||||
endfor
|
endfor
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxListNumber .= char_to_rx[g:vimwiki_syntax_variables[a:syntax].number_types[-1][0]].
|
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]) . '\)'
|
\ vimwiki#u#escape(g:vimwiki_syntax_variables[a:syntax].number_types[-1][1]) . '\)'
|
||||||
else
|
else
|
||||||
"regex that matches nothing
|
"regex that matches nothing
|
||||||
@ -341,21 +415,43 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
"the user can set the listsyms as string, but vimwiki needs a list
|
"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')
|
let g:vimwiki_syntax_variables[a:syntax].listsyms_list =
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxListItemWithoutCB = '^\s*\%(\('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\)\|\('.g:vimwiki_syntax_variables[a:syntax].rxListNumber.'\)\)\s'
|
\ split(vimwiki#vars#get_global('listsyms'), '\zs')
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxListItem = g:vimwiki_syntax_variables[a:syntax].rxListItemWithoutCB . '\+\%(\[\(['.vimwiki#vars#get_global('listsyms').']\)\]\s\)\?'
|
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
|
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[4].'\]\s.*\%(\n\%(\1\%('.g:vimwiki_syntax_variables[a:syntax].rxListBullet.'\).*\|^$\|\s.*\)\)*'
|
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
|
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[4].'\]\s.*\%(\n\%(\1\s.*\|^$\)\)*'
|
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
|
endif
|
||||||
|
|
||||||
" 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L))
|
" 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L))
|
||||||
" let g:vimwiki_rxWeblink = '[\["(|]\@<!'. g:vimwiki_rxWeblinkUrl .
|
" let g:vimwiki_rxWeblink = '[\["(|]\@<!'. g:vimwiki_rxWeblinkUrl .
|
||||||
" \ '\%([),:;.!?]\=\%([ \t]\|$\)\)\@='
|
" \ '\%([),:;.!?]\=\%([ \t]\|$\)\)\@='
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxWeblink = '\<'. g:vimwiki_global_vars.rxWeblinkUrl . '\S*'
|
let g:vimwiki_syntax_variables[a:syntax].rxWeblink =
|
||||||
|
\ '\<'. g:vimwiki_global_vars.rxWeblinkUrl . '\S*'
|
||||||
" 0a) match URL within URL
|
" 0a) match URL within URL
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxWeblinkMatchUrl = g:vimwiki_syntax_variables[a:syntax].rxWeblink
|
let g:vimwiki_syntax_variables[a:syntax].rxWeblinkMatchUrl =
|
||||||
|
\ g:vimwiki_syntax_variables[a:syntax].rxWeblink
|
||||||
" 0b) match DESCRIPTION within URL
|
" 0b) match DESCRIPTION within URL
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxWeblinkMatchDescr = ''
|
let g:vimwiki_syntax_variables[a:syntax].rxWeblinkMatchDescr = ''
|
||||||
|
|
||||||
@ -375,16 +471,20 @@ function! vimwiki#vars#populate_syntax_vars(syntax)
|
|||||||
let g:vimwiki_syntax_variables[a:syntax].rxWikiLink = g:vimwiki_global_vars.rx_wikilink_prefix.
|
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.rxWikiLinkUrl.'\%('.g:vimwiki_global_vars.rx_wikilink_separator.
|
||||||
\ g:vimwiki_global_vars.rxWikiLinkDescr.'\)\?'.g:vimwiki_global_vars.rx_wikilink_suffix
|
\ 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.'\|'.
|
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
|
\ g:vimwiki_global_vars.rxWikiIncl.'\|'.g:vimwiki_syntax_variables[a:syntax].rxWeblink
|
||||||
" b) match URL within [[URL|DESCRIPTION]]
|
" b) match URL within [[URL|DESCRIPTION]]
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxWikiLinkMatchUrl = g:vimwiki_global_vars.rx_wikilink_prefix.
|
let g:vimwiki_syntax_variables[a:syntax].rxWikiLinkMatchUrl =
|
||||||
\ '\zs'. g:vimwiki_global_vars.rxWikiLinkUrl.'\ze\%('. g:vimwiki_global_vars.rx_wikilink_separator.
|
\ g:vimwiki_global_vars.rx_wikilink_prefix . '\zs'. g:vimwiki_global_vars.rxWikiLinkUrl
|
||||||
\ g:vimwiki_global_vars.rxWikiLinkDescr.'\)\?'.g:vimwiki_global_vars.rx_wikilink_suffix
|
\ .'\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]]
|
" c) match DESCRIPTION within [[URL|DESCRIPTION]]
|
||||||
let g:vimwiki_syntax_variables[a:syntax].rxWikiLinkMatchDescr = g:vimwiki_global_vars.rx_wikilink_prefix.
|
let g:vimwiki_syntax_variables[a:syntax].rxWikiLinkMatchDescr =
|
||||||
\ g:vimwiki_global_vars.rxWikiLinkUrl . g:vimwiki_global_vars.rx_wikilink_separator.'\%('.
|
\ g:vimwiki_global_vars.rx_wikilink_prefix . g:vimwiki_global_vars.rxWikiLinkUrl
|
||||||
\ '\zs'. g:vimwiki_global_vars.rxWikiLinkDescr. '\ze\)\?'. g:vimwiki_global_vars.rx_wikilink_suffix
|
\ . 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'
|
if a:syntax ==# 'markdown'
|
||||||
call s:populate_extra_markdown_vars()
|
call s:populate_extra_markdown_vars()
|
||||||
@ -530,9 +630,10 @@ function! s:populate_extra_markdown_vars()
|
|||||||
|
|
||||||
let mkd_syntax.rxMkdRef = '\['.g:vimwiki_global_vars.rxWikiLinkDescr.']:\%(\s\+\|\n\)'.
|
let mkd_syntax.rxMkdRef = '\['.g:vimwiki_global_vars.rxWikiLinkDescr.']:\%(\s\+\|\n\)'.
|
||||||
\ mkd_syntax.rxWeblink0
|
\ mkd_syntax.rxWeblink0
|
||||||
let mkd_syntax.rxMkdRefMatchDescr = '\[\zs'.g:vimwiki_global_vars.rxWikiLinkDescr.'\ze]:\%(\s\+\|\n\)'.
|
let mkd_syntax.rxMkdRefMatchDescr =
|
||||||
\ mkd_syntax.rxWeblink0
|
\ '\[\zs'.g:vimwiki_global_vars.rxWikiLinkDescr.'\ze]:\%(\s\+\|\n\)'. mkd_syntax.rxWeblink0
|
||||||
let mkd_syntax.rxMkdRefMatchUrl = '\['.g:vimwiki_global_vars.rxWikiLinkDescr.']:\%(\s\+\|\n\)\zs'.
|
let mkd_syntax.rxMkdRefMatchUrl =
|
||||||
|
\ '\['.g:vimwiki_global_vars.rxWikiLinkDescr.']:\%(\s\+\|\n\)\zs'.
|
||||||
\ mkd_syntax.rxWeblink0.'\ze'
|
\ mkd_syntax.rxWeblink0.'\ze'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@ -580,8 +681,6 @@ function! vimwiki#vars#get_bufferlocal(key, ...)
|
|||||||
\ vimwiki#base#get_wiki_directories(vimwiki#vars#get_bufferlocal('wiki_nr')))
|
\ vimwiki#base#get_wiki_directories(vimwiki#vars#get_bufferlocal('wiki_nr')))
|
||||||
elseif a:key ==# 'prev_link'
|
elseif a:key ==# 'prev_link'
|
||||||
call setbufvar(buffer, 'vimwiki_prev_link', [])
|
call setbufvar(buffer, 'vimwiki_prev_link', [])
|
||||||
elseif a:key ==# 'fs_rescan'
|
|
||||||
call setbufvar(buffer, 'vimwiki_fs_rescan', 0)
|
|
||||||
elseif a:key ==# 'markdown_refs'
|
elseif a:key ==# 'markdown_refs'
|
||||||
call setbufvar(buffer, 'vimwiki_markdown_refs', vimwiki#markdown_base#scan_reflinks())
|
call setbufvar(buffer, 'vimwiki_markdown_refs', vimwiki#markdown_base#scan_reflinks())
|
||||||
else
|
else
|
||||||
@ -636,7 +735,9 @@ function! vimwiki#vars#add_temporary_wiki(settings)
|
|||||||
call s:validate_wikilocal_settings()
|
call s:validate_wikilocal_settings()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" number of registered wikis + temporary
|
" number of registered wikis + temporary
|
||||||
function! vimwiki#vars#number_of_wikis()
|
function! vimwiki#vars#number_of_wikis()
|
||||||
return len(g:vimwiki_wikilocal_vars) - 1
|
return len(g:vimwiki_wikilocal_vars) - 1
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
313
doc/vimwiki.txt
313
doc/vimwiki.txt
@ -213,6 +213,22 @@ See also |:VimwikiTabMakeDiaryNote|
|
|||||||
<
|
<
|
||||||
See also |: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
|
3.2. Local mappings
|
||||||
@ -222,7 +238,7 @@ To remap one of these keys, either put it in your .vimrc like this >
|
|||||||
or, the better way, put it in a file .vim/ftplugin/vimwiki.vim like this >
|
or, the better way, put it in a file .vim/ftplugin/vimwiki.vim like this >
|
||||||
:nmap <silent><buffer> <Leader>wc <Plug>Vimwiki2HTML
|
:nmap <silent><buffer> <Leader>wc <Plug>Vimwiki2HTML
|
||||||
|
|
||||||
The latter has the advantage that the mapping is local to viwiki buffers in
|
The latter has the advantage that the mapping is local to Vimwiki buffers in
|
||||||
every case.
|
every case.
|
||||||
|
|
||||||
Also note that some keys work in normal mode as well as in visual mode. If you
|
Also note that some keys work in normal mode as well as in visual mode. If you
|
||||||
@ -324,6 +340,34 @@ NORMAL MODE *vimwiki-local-mappings*
|
|||||||
- Remove header level.
|
- Remove header level.
|
||||||
To remap: >
|
To remap: >
|
||||||
:nmap -- <Plug>VimwikiRemoveHeaderLevel
|
: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_+*
|
*vimwiki_+*
|
||||||
+ Create and/or decorate links. Depending on the
|
+ Create and/or decorate links. Depending on the
|
||||||
@ -351,6 +395,16 @@ gL<Space> Remove checkboxes from all sibling list items.
|
|||||||
:map <Leader><Space> <Plug>VimwikiRemoveSingleCB
|
:map <Leader><Space> <Plug>VimwikiRemoveSingleCB
|
||||||
:map <Leader><Space> <Plug>VimwikiRemoveCBInList
|
: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*
|
*vimwiki_gll* *vimwiki_gLl*
|
||||||
gll Increase the level of a list item.
|
gll Increase the level of a list item.
|
||||||
gLl Increase the level of a list item and all child items.
|
gLl Increase the level of a list item and all child items.
|
||||||
@ -363,7 +417,7 @@ glh Decrease the level of a list item.
|
|||||||
gLh Decrease the level of a list item and all child items.
|
gLh Decrease the level of a list item and all child items.
|
||||||
To remap: >
|
To remap: >
|
||||||
:map << <Plug>VimwikiDecreaseLvlSingleItem
|
:map << <Plug>VimwikiDecreaseLvlSingleItem
|
||||||
:map >>> <Plug>VimwikiDecreaseLvlWholeItem
|
:map <<< <Plug>VimwikiDecreaseLvlWholeItem
|
||||||
<
|
<
|
||||||
*vimwiki_glr* *vimwiki_gLr*
|
*vimwiki_glr* *vimwiki_gLr*
|
||||||
glr Renumber list items if the cursor is on a numbered
|
glr Renumber list items if the cursor is on a numbered
|
||||||
@ -445,6 +499,13 @@ gLI Change the symbol of the current list to
|
|||||||
To remap: >
|
To remap: >
|
||||||
noremap glo :VimwikiChangeSymbolTo I)<CR>
|
noremap glo :VimwikiChangeSymbolTo I)<CR>
|
||||||
noremap glO :VimwikiChangeSymbolInListTo 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*
|
*vimwiki_gqq* *vimwiki_gww*
|
||||||
gqq Format table. If you made some changes to a table
|
gqq Format table. If you made some changes to a table
|
||||||
@ -547,12 +608,22 @@ INSERT MODE *vimwiki-list-mappings*
|
|||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
3.3. Text objects *vimwiki-text-objects*
|
3.3. Text objects *vimwiki-text-objects*
|
||||||
|
|
||||||
ah A section segment (the area between two consecutive
|
ah A header including its content up to the next header.
|
||||||
headings) including trailing empty lines.
|
ih The content under a header (like 'ah', but excluding
|
||||||
ih A section segment without trailing empty lines.
|
the header itself and trailing empty lines).
|
||||||
|
|
||||||
You can type 'vah' to select a section segment with its contents or 'dah' to
|
aH A header including all of its subheaders. When [count]
|
||||||
delete it or 'yah' to yank it or 'cah' to change it.
|
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.
|
a\ A cell in a table.
|
||||||
i\ An inner cell in a table.
|
i\ An inner cell in a table.
|
||||||
@ -590,10 +661,15 @@ il A single list item.
|
|||||||
*:VimwikiMakeYesterdayDiaryNote*
|
*:VimwikiMakeYesterdayDiaryNote*
|
||||||
Open diary wiki-file for yesterday of the current wiki.
|
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*
|
4.2. Local commands *vimwiki-local-commands*
|
||||||
|
|
||||||
|
These commands are only available (and meaningful) when you are currently in a
|
||||||
|
Vimwiki file.
|
||||||
|
|
||||||
*:VimwikiFollowLink*
|
*:VimwikiFollowLink*
|
||||||
Follow wiki link (or create target wiki page if needed).
|
Follow wiki link (or create target wiki page if needed).
|
||||||
|
|
||||||
@ -643,6 +719,10 @@ il A single list item.
|
|||||||
Toggle checkbox of a list item on/off.
|
Toggle checkbox of a list item on/off.
|
||||||
See |vimwiki-todo-lists|.
|
See |vimwiki-todo-lists|.
|
||||||
|
|
||||||
|
*:VimwikiToggleRejectedListItem*
|
||||||
|
Toggle checkbox of a list item disabled/off.
|
||||||
|
See |vimwiki-todo-lists|.
|
||||||
|
|
||||||
*:VimwikiListChangeLevel* CMD
|
*:VimwikiListChangeLevel* CMD
|
||||||
Change the nesting level, or symbol, for a single-line list item.
|
Change the nesting level, or symbol, for a single-line list item.
|
||||||
CMD may be ">>" or "<<" to change the indentation of the item, or
|
CMD may be ">>" or "<<" to change the indentation of the item, or
|
||||||
@ -739,8 +819,38 @@ il A single list item.
|
|||||||
|
|
||||||
*:VimwikiGenerateTags* tagname1 tagname2 ...
|
*:VimwikiGenerateTags* tagname1 tagname2 ...
|
||||||
Creates or updates an overview on all tags of the wiki with links to all
|
Creates or updates an overview on all tags of the wiki with links to all
|
||||||
their instances. Supports |cmdline-completion|. If
|
their instances. Supports |cmdline-completion|. If no arguments (tags)
|
||||||
no arguments (tags) are specified, outputs all 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)
|
||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
@ -814,7 +924,7 @@ 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
|
When |vimwiki-option-maxhi| equals 1, a distinct highlighting style is used to
|
||||||
identify wikilinks whose targets are not found.
|
identify wikilinks whose targets are not found.
|
||||||
|
|
||||||
Interwiki:~
|
Interwiki~
|
||||||
|
|
||||||
If you maintain more than one wiki, you can create interwiki links between
|
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: >
|
them by adding a numbered prefix "wikiX:" in front of a link: >
|
||||||
@ -825,15 +935,11 @@ or: >
|
|||||||
The number behind "wiki" is in the range 0..N-1 and identifies the destination
|
The number behind "wiki" is in the range 0..N-1 and identifies the destination
|
||||||
wiki in |g:vimwiki_list|.
|
wiki in |g:vimwiki_list|.
|
||||||
|
|
||||||
Diary:~
|
Diary~
|
||||||
|
|
||||||
The "diary:" scheme is used to concisely link to diary entries: >
|
The "diary:" scheme is used to link to diary entries: >
|
||||||
[[diary:2012-03-05]]
|
[[diary:2012-03-05]]
|
||||||
|
|
||||||
This scheme precludes explicit inclusion of |vimwiki-option-diary_rel_path|,
|
|
||||||
and is most useful on subwiki pages to avoid links such as: >
|
|
||||||
[[../../diary/2012-03-05]]
|
|
||||||
|
|
||||||
Anchors~
|
Anchors~
|
||||||
|
|
||||||
A wikilink, interwiki link or diary link can be followed by a '#' and the name
|
A wikilink, interwiki link or diary link can be followed by a '#' and the name
|
||||||
@ -854,7 +960,7 @@ Raw URLs are also supported: >
|
|||||||
|
|
||||||
External files~
|
External files~
|
||||||
|
|
||||||
The "file:" and "local:" schemes allow you to directly link to arbitray
|
The "file:" and "local:" schemes allow you to directly link to arbitrary
|
||||||
resources using absolute or relative paths: >
|
resources using absolute or relative paths: >
|
||||||
[[file:/home/somebody/a/b/c/music.mp3]]
|
[[file:/home/somebody/a/b/c/music.mp3]]
|
||||||
[[file:C:/Users/somebody/d/e/f/music.mp3]]
|
[[file:C:/Users/somebody/d/e/f/music.mp3]]
|
||||||
@ -1144,7 +1250,8 @@ This might be useful for coloring program code with external JS tools
|
|||||||
such as Google's syntax highlighter.
|
such as Google's syntax highlighter.
|
||||||
|
|
||||||
You can setup Vimwiki to highlight code snippets in preformatted text.
|
You can setup Vimwiki to highlight code snippets in preformatted text.
|
||||||
See |vimwiki-option-nested_syntaxes|
|
See |vimwiki-option-nested_syntaxes| and
|
||||||
|
|vimwiki-option-automatic_nested_syntaxes|.
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
@ -1189,14 +1296,9 @@ LaTeX code).
|
|||||||
Note: the highlighting in Vim is automatic. For the rendering in HTML, you
|
Note: the highlighting in Vim is automatic. For the rendering in HTML, you
|
||||||
have two alternative options:
|
have two alternative options:
|
||||||
|
|
||||||
1. using the MathJax server for rendering (needs internet connection).
|
1. installing MathJax locally (Recommended: faster, no internet required).
|
||||||
Add to your HTML template the following line:
|
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="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
||||||
|
|
||||||
2. installing MathJax locally (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>
|
<script type="text/javascript" src="<mathjax_folder>/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
||||||
|
|
||||||
@ -1211,6 +1313,11 @@ template folder. For instance, a sensible folder structure could be:
|
|||||||
|
|
||||||
In this case, <mathjax_folder> would be "../mathjax" (without quotes).
|
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*
|
5.9. Blockquotes *vimwiki-syntax-blockquotes*
|
||||||
@ -1264,8 +1371,9 @@ which opens up a popup menu with all tags defined in the wiki starting with
|
|||||||
|
|
||||||
Tags are also treated as |vimwiki-anchors| (similar to bold text).
|
Tags are also treated as |vimwiki-anchors| (similar to bold text).
|
||||||
|
|
||||||
Note that tag search/jump/completion commands need certain metadata saved in
|
*vimwiki-build-tags*
|
||||||
the wiki folder. This metadata file can be manually updated by running
|
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,
|
|:VimwikiRebuildTags|. When the option |vimwiki-option-auto_tags| is enabled,
|
||||||
the tags metadata will be auto-updated on each page save.
|
the tags metadata will be auto-updated on each page save.
|
||||||
|
|
||||||
@ -1281,40 +1389,50 @@ Tags-related commands and options:
|
|||||||
6. Folding/Outline *vimwiki-folding*
|
6. Folding/Outline *vimwiki-folding*
|
||||||
|
|
||||||
Vimwiki can fold or outline sections using headers and preformatted blocks.
|
Vimwiki can fold or outline sections using headers and preformatted blocks.
|
||||||
Alternatively, one can fold list subitems instead.
|
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':
|
||||||
|
|
||||||
Example for list folding:
|
|
||||||
= My current task =
|
= My current task =
|
||||||
* [ ] Do stuff 1
|
* [ ] Do stuff 1
|
||||||
* [ ] Do substuff 1.1
|
* [ ] Do substuff 1.1
|
||||||
* [ ] Do substuff 1.2
|
* [ ] Do substuff 1.2
|
||||||
* [ ] Do substuff 1.2.1
|
* [ ] Do substuff 1.2.1
|
||||||
* [ ] Do substuff 1.2.2
|
* [ ] Do substuff 1.2.2
|
||||||
* [ ] Do substuff 1.3
|
* [ ] Do substuff 1.3
|
||||||
* [ ] Do stuff 2
|
* [ ] Do stuff 2
|
||||||
* [ ] Do stuff 3
|
* [ ] Do stuff 3
|
||||||
|
|
||||||
Hit |zM| :
|
Hit |zM| :
|
||||||
= My current task = [8] --------------------------------------~
|
= My current task =
|
||||||
|
* [ ] Do stuff 1 [6] --------------------------------------~
|
||||||
|
* [ ] Do stuff 2
|
||||||
|
* [ ] Do stuff 3
|
||||||
|
|
||||||
Hit |zr| :
|
Hit |zr| :
|
||||||
= My current task =~
|
= My current task =
|
||||||
* [ ] Do stuff 1 [5] --------------------------------------~
|
* [ ] Do stuff 1
|
||||||
* [ ] Do stuff 2~
|
* [ ] Do substuff 1.1
|
||||||
* [ ] Do stuff 3~
|
* [ ] Do substuff 1.2 [3] -------------------------------~
|
||||||
|
* [ ] Do substuff 1.3
|
||||||
|
* [ ] Do stuff 2
|
||||||
|
* [ ] Do stuff 3
|
||||||
|
|
||||||
Hit |zr| one more time:
|
Hit |zr| one more time :
|
||||||
= My current task =~
|
= My current task =
|
||||||
* [ ] Do stuff 1~
|
* [ ] Do stuff 1
|
||||||
* [ ] Do substuff 1.1~
|
* [ ] Do substuff 1.1
|
||||||
* [ ] Do substuff 1.2 [2] -------------------------------~
|
* [ ] Do substuff 1.2
|
||||||
* [ ] Do substuff 1.3~
|
* [ ] Do substuff 1.2.1
|
||||||
* [ ] Do stuff 2~
|
* [ ] Do substuff 1.2.2
|
||||||
* [ ] Do stuff 3~
|
* [ ] Do substuff 1.3
|
||||||
|
* [ ] Do stuff 2
|
||||||
|
* [ ] Do stuff 3
|
||||||
|
|
||||||
Note: If you use the default Vimwiki syntax, folding on list items will work
|
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'.
|
properly only if all of them are indented using the current 'shiftwidth'.
|
||||||
For MediaWiki, * or # should be in the first column.
|
For MediaWiki syntax, * or # should be in the first column.
|
||||||
|
|
||||||
To turn folding on/off check |g:vimwiki_folding|.
|
To turn folding on/off check |g:vimwiki_folding|.
|
||||||
|
|
||||||
@ -1354,6 +1472,18 @@ into it.
|
|||||||
|
|
||||||
See |vimwiki-option-template_path| for details.
|
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*
|
8. Lists *vimwiki-lists*
|
||||||
@ -1489,7 +1619,7 @@ See |vimwiki_glstar|, |vimwiki_gl#| |vimwiki_gl-|, |vimwiki_gl-|,
|
|||||||
|vimwiki_gl1|, |vimwiki_gla|, |vimwiki_glA|, |vimwiki_gli|, |vimwiki_glI|
|
|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
|
Use glr and gLr if the numbers of a numbered list are mixed up. See
|
||||||
|vimwiki_glr| and |vimwiki_gLr|.
|
|vimwiki_glr| and |vimwiki_gLr|.
|
||||||
|
|
||||||
|
|
||||||
@ -1542,6 +1672,9 @@ child items (see also |g:vimwiki_listsyms|): >
|
|||||||
[O] -- 67-99%
|
[O] -- 67-99%
|
||||||
[X] -- 100%
|
[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
|
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
|
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
|
first item is unchecked and all items get unchecked if the first item is
|
||||||
@ -1551,6 +1684,9 @@ 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
|
gL<Space> (see |vimwiki_gL<Space>|) to remove all checkboxes of the list the
|
||||||
cursor is in.
|
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*
|
9. Tables *vimwiki-tables*
|
||||||
@ -1905,11 +2041,13 @@ Each template could look like: >
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
%content%
|
%content%
|
||||||
</div>
|
</div>
|
||||||
|
<p><small>Page created on %date%</small></p>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
where
|
where
|
||||||
%title% is replaced by a wiki page name or by a |vimwiki-title|
|
%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:
|
%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
|
if you have wikilink [[dir1/dir2/dir3/my page in a subdir]] then
|
||||||
%root_path% is replaced by '../../../'.
|
%root_path% is replaced by '../../../'.
|
||||||
@ -2030,7 +2168,9 @@ Just write your preformatted text in your file like this >
|
|||||||
my preformatted text
|
my preformatted text
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
where xxx is a Vim filetype.
|
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.
|
Note that you may have to reload the file (|:edit|) to see the highlight.
|
||||||
|
|
||||||
@ -2100,8 +2240,12 @@ The following arguments, in this order, are passed to the script:
|
|||||||
10. root_path : a count of ../ for pages buried in subdirs
|
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]]
|
For example, if you have wikilink [[dir1/dir2/dir3/my page in a subdir]]
|
||||||
then this argument is '../../../'.
|
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-10 are experimental and may change in the future. If any of these
|
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.
|
parameters is empty, a hyphen "-" is passed to the script in its place.
|
||||||
|
|
||||||
For an example and further instructions, refer to the following script:
|
For an example and further instructions, refer to the following script:
|
||||||
@ -2114,6 +2258,17 @@ be located at https://github.com/vimwiki-backup/vimwiki/issues/384
|
|||||||
To use the internal wiki2html converter, use an empty string (the default).
|
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*
|
*vimwiki-option-list_margin*
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
Key Default value~
|
Key Default value~
|
||||||
@ -2245,17 +2400,30 @@ Default: 'Vimwiki'
|
|||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*g:vimwiki_listsyms*
|
*g:vimwiki_listsyms*
|
||||||
|
|
||||||
String of 5 symbols to show the progression of todo list items.
|
String of at least two symbols to show the progression of todo list items.
|
||||||
Default value is ' .oOX'.
|
Default value is ' .oOX'.
|
||||||
|
|
||||||
The first char is for 0% done items.
|
The first char is for 0% done items.
|
||||||
The fifth is for 100% done items.
|
The last is for 100% done items.
|
||||||
|
|
||||||
You can set it to some more fancy symbols like this:
|
You can set it to some more fancy symbols like this:
|
||||||
>
|
>
|
||||||
let g:vimwiki_listsyms = '✗○◐●✓'
|
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*
|
*g:vimwiki_use_mouse*
|
||||||
|
|
||||||
@ -2279,6 +2447,8 @@ Value Description~
|
|||||||
'expr' Folding based on expression (folds sections and code blocks)
|
'expr' Folding based on expression (folds sections and code blocks)
|
||||||
'syntax' Folding based on syntax (folds sections; slower than 'expr')
|
'syntax' Folding based on syntax (folds sections; slower than 'expr')
|
||||||
'list' Folding based on expression (folds list subitems; much slower)
|
'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: ''
|
Default: ''
|
||||||
|
|
||||||
@ -2288,6 +2458,8 @@ Limitations:
|
|||||||
- 'list' is intended to work with lists nicely indented with 'shiftwidth'.
|
- 'list' is intended to work with lists nicely indented with 'shiftwidth'.
|
||||||
- 'syntax' is only available for the default syntax so far.
|
- '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*
|
*g:vimwiki_list_ignore_newline*
|
||||||
@ -2302,6 +2474,19 @@ Value Description~
|
|||||||
Default: 1
|
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*
|
*g:vimwiki_use_calendar*
|
||||||
|
|
||||||
@ -2604,8 +2789,12 @@ Default: 2
|
|||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*g:vimwiki_autowriteall*
|
*g:vimwiki_autowriteall*
|
||||||
|
|
||||||
In Vim 'autowriteall' is a global setting. With g:vimwiki_autowriteall Vimwiki
|
Automatically save a modified wiki buffer when switching wiki pages. Has the
|
||||||
makes it local to its buffers.
|
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~
|
Value Description~
|
||||||
0 autowriteall is off
|
0 autowriteall is off
|
||||||
@ -2750,6 +2939,19 @@ Contributors and their Github usernames in roughly chronological order:
|
|||||||
- @wangzq
|
- @wangzq
|
||||||
- Jinzhou Zhang (@lotabout)
|
- Jinzhou Zhang (@lotabout)
|
||||||
- Michael Riley (@optik-aper)
|
- 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
|
||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
@ -2997,10 +3199,11 @@ http://code.google.com/p/vimwiki/issues/list
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
16. License *vimwiki-license*
|
16. License *vimwiki-license*
|
||||||
|
|
||||||
The MIT Licence
|
The MIT License
|
||||||
http://www.opensource.org/licenses/mit-license.php
|
http://www.opensource.org/licenses/mit-license.php
|
||||||
|
|
||||||
Copyright (c) 2008-2010 Maxim Kim
|
Copyright (c) 2008-2010 Maxim Kim
|
||||||
|
2013-2017 Daniel Schemala
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki filetype plugin file
|
" Vimwiki filetype plugin file
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
@ -8,15 +8,6 @@ endif
|
|||||||
let b:did_ftplugin = 1 " Don't load another plugin for this buffer
|
let b:did_ftplugin = 1 " Don't load another plugin for this buffer
|
||||||
|
|
||||||
|
|
||||||
" UNDO list {{{
|
|
||||||
" Reset the following options to undo this plugin.
|
|
||||||
let b:undo_ftplugin = "setlocal ".
|
|
||||||
\ "suffixesadd< isfname< formatlistpat< ".
|
|
||||||
\ "formatoptions< foldtext< ".
|
|
||||||
\ "foldmethod< foldexpr< commentstring< "
|
|
||||||
" UNDO }}}
|
|
||||||
|
|
||||||
" MISC STUFF {{{
|
|
||||||
|
|
||||||
setlocal commentstring=%%%s
|
setlocal commentstring=%%%s
|
||||||
|
|
||||||
@ -24,16 +15,14 @@ if vimwiki#vars#get_global('conceallevel') && exists("+conceallevel")
|
|||||||
let &l:conceallevel = vimwiki#vars#get_global('conceallevel')
|
let &l:conceallevel = vimwiki#vars#get_global('conceallevel')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" GOTO FILE: gf {{{
|
" This is for GOTO FILE: gf
|
||||||
execute 'setlocal suffixesadd='.vimwiki#vars#get_wikilocal('ext')
|
execute 'setlocal suffixesadd='.vimwiki#vars#get_wikilocal('ext')
|
||||||
setlocal isfname-=[,]
|
setlocal isfname-=[,]
|
||||||
" gf}}}
|
|
||||||
|
|
||||||
exe "setlocal tags+=" . escape(vimwiki#path#to_string(vimwiki#tags#metadata_file_path()), ' \|"')
|
exe "setlocal tags+=" . escape(vimwiki#path#to_string(vimwiki#tags#metadata_file_path()), ' \|"')
|
||||||
|
|
||||||
" MISC }}}
|
|
||||||
|
|
||||||
" COMPLETION {{{
|
|
||||||
function! Complete_wikifiles(findstart, base)
|
function! Complete_wikifiles(findstart, base)
|
||||||
if a:findstart == 1
|
if a:findstart == 1
|
||||||
let column = col('.')-2
|
let column = col('.')-2
|
||||||
@ -59,7 +48,7 @@ function! Complete_wikifiles(findstart, base)
|
|||||||
return -1
|
return -1
|
||||||
else
|
else
|
||||||
" Completion works for wikilinks/anchors, and for tags. s:line_content
|
" 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
|
" tells us which string came before a:base. There seems to be no easier
|
||||||
" solution, because calling col('.') here returns garbage.
|
" solution, because calling col('.') here returns garbage.
|
||||||
if s:line_context == ''
|
if s:line_context == ''
|
||||||
return []
|
return []
|
||||||
@ -129,9 +118,9 @@ function! Complete_wikifiles(findstart, base)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
setlocal omnifunc=Complete_wikifiles
|
setlocal omnifunc=Complete_wikifiles
|
||||||
" COMPLETION }}}
|
|
||||||
|
|
||||||
" LIST STUFF {{{
|
|
||||||
|
|
||||||
" settings necessary for the automatic formatting of lists
|
" settings necessary for the automatic formatting of lists
|
||||||
setlocal autoindent
|
setlocal autoindent
|
||||||
setlocal nosmartindent
|
setlocal nosmartindent
|
||||||
@ -143,7 +132,6 @@ setlocal formatoptions-=o
|
|||||||
setlocal formatoptions-=2
|
setlocal formatoptions-=2
|
||||||
setlocal formatoptions+=n
|
setlocal formatoptions+=n
|
||||||
|
|
||||||
"Create 'formatlistpat'
|
|
||||||
let &formatlistpat = vimwiki#vars#get_syntaxlocal('rxListItem')
|
let &formatlistpat = vimwiki#vars#get_syntaxlocal('rxListItem')
|
||||||
|
|
||||||
if !empty(&langmap)
|
if !empty(&langmap)
|
||||||
@ -159,17 +147,18 @@ if !empty(&langmap)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" LIST STUFF }}}
|
|
||||||
|
|
||||||
" FOLDING {{{
|
|
||||||
" Folding list items {{{
|
" ------------------------------------------------
|
||||||
function! VimwikiFoldListLevel(lnum) "{{{
|
" Folding stuff
|
||||||
|
" ------------------------------------------------
|
||||||
|
|
||||||
|
function! VimwikiFoldListLevel(lnum)
|
||||||
return vimwiki#lst#fold_level(a:lnum)
|
return vimwiki#lst#fold_level(a:lnum)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
" Folding list items }}}
|
|
||||||
|
|
||||||
" Folding sections and code blocks {{{
|
|
||||||
function! VimwikiFoldLevel(lnum) "{{{
|
function! VimwikiFoldLevel(lnum)
|
||||||
let line = getline(a:lnum)
|
let line = getline(a:lnum)
|
||||||
|
|
||||||
" Header/section folding...
|
" Header/section folding...
|
||||||
@ -183,26 +172,29 @@ function! VimwikiFoldLevel(lnum) "{{{
|
|||||||
else
|
else
|
||||||
return "="
|
return "="
|
||||||
endif
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
endfunction "}}}
|
|
||||||
|
|
||||||
" Constants used by VimwikiFoldText {{{
|
" Constants used by VimwikiFoldText
|
||||||
" use \u2026 and \u21b2 (or \u2424) if enc=utf-8 to save screen space
|
" use \u2026 and \u21b2 (or \u2424) if enc=utf-8 to save screen space
|
||||||
let s:ellipsis = (&enc ==? 'utf-8') ? "\u2026" : "..."
|
let s:ellipsis = (&enc ==? 'utf-8') ? "\u2026" : "..."
|
||||||
let s:ell_len = strlen(s:ellipsis)
|
let s:ell_len = strlen(s:ellipsis)
|
||||||
let s:newline = (&enc ==? 'utf-8') ? "\u21b2 " : " "
|
let s:newline = (&enc ==? 'utf-8') ? "\u21b2 " : " "
|
||||||
let s:tolerance = 5
|
let s:tolerance = 5
|
||||||
" }}}
|
|
||||||
|
|
||||||
function! s:shorten_text_simple(text, len) "{{{ unused
|
|
||||||
|
" unused
|
||||||
|
function! s:shorten_text_simple(text, len)
|
||||||
let spare_len = a:len - len(a:text)
|
let spare_len = a:len - len(a:text)
|
||||||
return (spare_len>=0) ? [a:text,spare_len] : [a:text[0:a:len].s:ellipsis, -1]
|
return (spare_len>=0) ? [a:text,spare_len] : [a:text[0:a:len].s:ellipsis, -1]
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" s:shorten_text(text, len) = [string, spare] with "spare" = len-strlen(string)
|
" 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"
|
" 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)
|
" (so that -s:tolerance <= spare <= s:tolerance, "string" ends with s:ellipsis)
|
||||||
function! s:shorten_text(text, len) "{{{ returns [string, spare]
|
function! s:shorten_text(text, len)
|
||||||
|
" returns [string, spare]
|
||||||
" strlen() returns lenght in bytes, not in characters, so we'll have to do a
|
" 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
|
" trick here -- replace all non-spaces with dot, calculate lengths and
|
||||||
" indexes on it, then use original string to break at selected index.
|
" indexes on it, then use original string to break at selected index.
|
||||||
@ -215,11 +207,11 @@ function! s:shorten_text(text, len) "{{{ returns [string, spare]
|
|||||||
let newlen = a:len - s:ell_len
|
let newlen = a:len - s:ell_len
|
||||||
let idx = strridx(text_pattern, ' ', newlen + s:tolerance)
|
let idx = strridx(text_pattern, ' ', newlen + s:tolerance)
|
||||||
let break_idx = (idx + s:tolerance >= newlen) ? idx : newlen
|
let break_idx = (idx + s:tolerance >= newlen) ? idx : newlen
|
||||||
return [matchstr(a:text, '\m^.\{'.break_idx.'\}').s:ellipsis,
|
return [matchstr(a:text, '\m^.\{'.break_idx.'\}').s:ellipsis, newlen - break_idx]
|
||||||
\ newlen - break_idx]
|
endfunction
|
||||||
endfunction "}}}
|
|
||||||
|
|
||||||
function! VimwikiFoldText() "{{{
|
|
||||||
|
function! VimwikiFoldText()
|
||||||
let line = getline(v:foldstart)
|
let line = getline(v:foldstart)
|
||||||
let main_text = substitute(line, '^\s*', repeat(' ',indent(v:foldstart)), '')
|
let main_text = substitute(line, '^\s*', repeat(' ',indent(v:foldstart)), '')
|
||||||
let fold_len = v:foldend - v:foldstart + 1
|
let fold_len = v:foldend - v:foldstart + 1
|
||||||
@ -239,18 +231,21 @@ function! VimwikiFoldText() "{{{
|
|||||||
endif
|
endif
|
||||||
return main_text.len_text.content_text
|
return main_text.len_text.content_text
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
" Folding sections and code blocks }}}
|
|
||||||
" FOLDING }}}
|
|
||||||
|
|
||||||
" COMMANDS {{{
|
|
||||||
|
" ------------------------------------------------
|
||||||
|
" Commands
|
||||||
|
" ------------------------------------------------
|
||||||
|
|
||||||
command! -buffer Vimwiki2HTML
|
command! -buffer Vimwiki2HTML
|
||||||
\ if filewritable(expand('%')) | silent noautocmd w | endif
|
\ if filewritable(expand('%')) | silent noautocmd w | endif
|
||||||
\ <bar>
|
\ <bar>
|
||||||
\ let res = vimwiki#html#Wiki2HTML(vimwiki#vars#get_wikilocal('path_html'), vimwiki#path#current_file())
|
\ let res = vimwiki#html#Wiki2HTML(vimwiki#vars#get_wikilocal('path_html'), vimwiki#path#current_file())
|
||||||
\ <bar>
|
\ <bar>
|
||||||
\ if res != '' | echo 'Vimwiki: HTML conversion is done, output: ' . vimwiki#path#to_string(vimwiki#vars#get_wikilocal('path_html')) | endif
|
\ if res != '' | echo 'Vimwiki: HTML conversion is done, output: '
|
||||||
|
\ . vimwiki#path#to_string(vimwiki#vars#get_wikilocal('path_html')) | endif
|
||||||
command! -buffer Vimwiki2HTMLBrowse
|
command! -buffer Vimwiki2HTMLBrowse
|
||||||
\ if filewritable(expand('%')) | silent noautocmd w | endif
|
\ if filewritable(expand('%')) | silent noautocmd w | endif
|
||||||
\ <bar>
|
\ <bar>
|
||||||
@ -266,14 +261,14 @@ command! -buffer VimwikiNextLink call vimwiki#base#find_next_link()
|
|||||||
command! -buffer VimwikiPrevLink call vimwiki#base#find_prev_link()
|
command! -buffer VimwikiPrevLink call vimwiki#base#find_prev_link()
|
||||||
command! -buffer VimwikiDeleteLink call vimwiki#base#delete_link()
|
command! -buffer VimwikiDeleteLink call vimwiki#base#delete_link()
|
||||||
command! -buffer VimwikiRenameLink call vimwiki#base#rename_link()
|
command! -buffer VimwikiRenameLink call vimwiki#base#rename_link()
|
||||||
command! -buffer VimwikiFollowLink call vimwiki#base#follow_link('nosplit')
|
command! -buffer VimwikiFollowLink call vimwiki#base#follow_link('nosplit', 0, 1)
|
||||||
command! -buffer VimwikiGoBackLink call vimwiki#base#go_back_link()
|
command! -buffer VimwikiGoBackLink call vimwiki#base#go_back_link()
|
||||||
command! -buffer VimwikiSplitLink call vimwiki#base#follow_link('split')
|
command! -buffer VimwikiSplitLink call vimwiki#base#follow_link('hsplit', 0, 1)
|
||||||
command! -buffer VimwikiVSplitLink call vimwiki#base#follow_link('vsplit')
|
command! -buffer VimwikiVSplitLink call vimwiki#base#follow_link('vsplit', 0, 1)
|
||||||
|
|
||||||
command! -buffer -nargs=? VimwikiNormalizeLink call vimwiki#base#normalize_link(<f-args>)
|
command! -buffer -nargs=? VimwikiNormalizeLink call vimwiki#base#normalize_link(<f-args>)
|
||||||
|
|
||||||
command! -buffer VimwikiTabnewLink call vimwiki#base#follow_link('tabnew')
|
command! -buffer VimwikiTabnewLink call vimwiki#base#follow_link('tab', 0, 1)
|
||||||
|
|
||||||
command! -buffer VimwikiGenerateLinks call vimwiki#base#generate_links()
|
command! -buffer VimwikiGenerateLinks call vimwiki#base#generate_links()
|
||||||
|
|
||||||
@ -293,11 +288,19 @@ command! -buffer VimwikiCheckLinks call vimwiki#base#check_links()
|
|||||||
|
|
||||||
" list commands
|
" list commands
|
||||||
command! -buffer -nargs=+ VimwikiReturn call <SID>CR(<f-args>)
|
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 VimwikiChangeSymbolTo
|
||||||
command! -buffer -range -nargs=1 VimwikiListChangeSymbolI call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>, 'i')
|
\ call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>, 'n')
|
||||||
command! -buffer -nargs=1 VimwikiChangeSymbolInListTo call vimwiki#lst#change_marker_in_list(<f-args>)
|
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 VimwikiToggleListItem call vimwiki#lst#toggle_cb(<line1>, <line2>)
|
||||||
command! -buffer -range -nargs=+ VimwikiListChangeLvl call vimwiki#lst#change_level(<line1>, <line2>, <f-args>)
|
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 -range VimwikiRemoveSingleCB call vimwiki#lst#remove_cb(<line1>, <line2>)
|
||||||
command! -buffer VimwikiRemoveCBInList call vimwiki#lst#remove_cb_in_list()
|
command! -buffer VimwikiRemoveCBInList call vimwiki#lst#remove_cb_in_list()
|
||||||
command! -buffer VimwikiRenumberList call vimwiki#lst#adjust_numbered_list()
|
command! -buffer VimwikiRenumberList call vimwiki#lst#adjust_numbered_list()
|
||||||
@ -316,20 +319,25 @@ command! -buffer VimwikiDiaryNextDay call vimwiki#diary#goto_next_day()
|
|||||||
command! -buffer VimwikiDiaryPrevDay call vimwiki#diary#goto_prev_day()
|
command! -buffer VimwikiDiaryPrevDay call vimwiki#diary#goto_prev_day()
|
||||||
|
|
||||||
" tags commands
|
" tags commands
|
||||||
command! -buffer -bang
|
command! -buffer -bang VimwikiRebuildTags call vimwiki#tags#update_tags(1, '<bang>')
|
||||||
\ VimwikiRebuildTags call vimwiki#tags#update_tags(1, '<bang>')
|
|
||||||
command! -buffer -nargs=* -complete=custom,vimwiki#tags#complete_tags
|
command! -buffer -nargs=* -complete=custom,vimwiki#tags#complete_tags
|
||||||
\ VimwikiSearchTags VimwikiSearch /:<args>:/
|
\ VimwikiSearchTags VimwikiSearch /:<args>:/
|
||||||
command! -buffer -nargs=* -complete=custom,vimwiki#tags#complete_tags
|
command! -buffer -nargs=* -complete=custom,vimwiki#tags#complete_tags
|
||||||
\ VimwikiGenerateTags call vimwiki#tags#generate_tags(<f-args>)
|
\ VimwikiGenerateTags call vimwiki#tags#generate_tags(<f-args>)
|
||||||
|
|
||||||
" COMMANDS }}}
|
command! -buffer VimwikiPasteUrl call vimwiki#html#PasteUrl(expand('%:p'))
|
||||||
|
command! -buffer VimwikiCatUrl call vimwiki#html#CatUrl(expand('%:p'))
|
||||||
|
|
||||||
|
|
||||||
|
" ------------------------------------------------
|
||||||
|
" Keybindings
|
||||||
|
" ------------------------------------------------
|
||||||
|
|
||||||
" KEYBINDINGS {{{
|
|
||||||
if vimwiki#vars#get_global('use_mouse')
|
if vimwiki#vars#get_global('use_mouse')
|
||||||
nmap <buffer> <S-LeftMouse> <NOP>
|
nmap <buffer> <S-LeftMouse> <NOP>
|
||||||
nmap <buffer> <C-LeftMouse> <NOP>
|
nmap <buffer> <C-LeftMouse> <NOP>
|
||||||
nnoremap <silent><buffer> <2-LeftMouse> :call vimwiki#base#follow_link("nosplit", "\<lt>2-LeftMouse>")<CR>
|
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> <S-2-LeftMouse> <LeftMouse>:VimwikiSplitLink<CR>
|
||||||
nnoremap <silent><buffer> <C-2-LeftMouse> <LeftMouse>:VimwikiVSplitLink<CR>
|
nnoremap <silent><buffer> <C-2-LeftMouse> <LeftMouse>:VimwikiVSplitLink<CR>
|
||||||
nnoremap <silent><buffer> <RightMouse><LeftMouse> :VimwikiGoBackLink<CR>
|
nnoremap <silent><buffer> <RightMouse><LeftMouse> :VimwikiGoBackLink<CR>
|
||||||
@ -339,44 +347,37 @@ endif
|
|||||||
if !hasmapto('<Plug>Vimwiki2HTML')
|
if !hasmapto('<Plug>Vimwiki2HTML')
|
||||||
exe 'nmap <buffer> '.vimwiki#vars#get_global('map_prefix').'h <Plug>Vimwiki2HTML'
|
exe 'nmap <buffer> '.vimwiki#vars#get_global('map_prefix').'h <Plug>Vimwiki2HTML'
|
||||||
endif
|
endif
|
||||||
nnoremap <script><buffer>
|
nnoremap <script><buffer> <Plug>Vimwiki2HTML :Vimwiki2HTML<CR>
|
||||||
\ <Plug>Vimwiki2HTML :Vimwiki2HTML<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>Vimwiki2HTMLBrowse')
|
if !hasmapto('<Plug>Vimwiki2HTMLBrowse')
|
||||||
exe 'nmap <buffer> '.vimwiki#vars#get_global('map_prefix').'hh <Plug>Vimwiki2HTMLBrowse'
|
exe 'nmap <buffer> '.vimwiki#vars#get_global('map_prefix').'hh <Plug>Vimwiki2HTMLBrowse'
|
||||||
endif
|
endif
|
||||||
nnoremap <script><buffer>
|
nnoremap <script><buffer> <Plug>Vimwiki2HTMLBrowse :Vimwiki2HTMLBrowse<CR>
|
||||||
\ <Plug>Vimwiki2HTMLBrowse :Vimwiki2HTMLBrowse<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiFollowLink')
|
if !hasmapto('<Plug>VimwikiFollowLink')
|
||||||
nmap <silent><buffer> <CR> <Plug>VimwikiFollowLink
|
nmap <silent><buffer> <CR> <Plug>VimwikiFollowLink
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiFollowLink :VimwikiFollowLink<CR>
|
||||||
\ <Plug>VimwikiFollowLink :VimwikiFollowLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiSplitLink')
|
if !hasmapto('<Plug>VimwikiSplitLink')
|
||||||
nmap <silent><buffer> <S-CR> <Plug>VimwikiSplitLink
|
nmap <silent><buffer> <S-CR> <Plug>VimwikiSplitLink
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiSplitLink :VimwikiSplitLink<CR>
|
||||||
\ <Plug>VimwikiSplitLink :VimwikiSplitLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiVSplitLink')
|
if !hasmapto('<Plug>VimwikiVSplitLink')
|
||||||
nmap <silent><buffer> <C-CR> <Plug>VimwikiVSplitLink
|
nmap <silent><buffer> <C-CR> <Plug>VimwikiVSplitLink
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiVSplitLink :VimwikiVSplitLink<CR>
|
||||||
\ <Plug>VimwikiVSplitLink :VimwikiVSplitLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiNormalizeLink')
|
if !hasmapto('<Plug>VimwikiNormalizeLink')
|
||||||
nmap <silent><buffer> + <Plug>VimwikiNormalizeLink
|
nmap <silent><buffer> + <Plug>VimwikiNormalizeLink
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiNormalizeLink :VimwikiNormalizeLink 0<CR>
|
||||||
\ <Plug>VimwikiNormalizeLink :VimwikiNormalizeLink 0<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiNormalizeLinkVisual')
|
if !hasmapto('<Plug>VimwikiNormalizeLinkVisual')
|
||||||
vmap <silent><buffer> + <Plug>VimwikiNormalizeLinkVisual
|
vmap <silent><buffer> + <Plug>VimwikiNormalizeLinkVisual
|
||||||
endif
|
endif
|
||||||
vnoremap <silent><script><buffer>
|
vnoremap <silent><script><buffer> <Plug>VimwikiNormalizeLinkVisual :<C-U>VimwikiNormalizeLink 1<CR>
|
||||||
\ <Plug>VimwikiNormalizeLinkVisual :<C-U>VimwikiNormalizeLink 1<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiNormalizeLinkVisualCR')
|
if !hasmapto('<Plug>VimwikiNormalizeLinkVisualCR')
|
||||||
vmap <silent><buffer> <CR> <Plug>VimwikiNormalizeLinkVisualCR
|
vmap <silent><buffer> <CR> <Plug>VimwikiNormalizeLinkVisualCR
|
||||||
@ -388,50 +389,42 @@ if !hasmapto('<Plug>VimwikiTabnewLink')
|
|||||||
nmap <silent><buffer> <D-CR> <Plug>VimwikiTabnewLink
|
nmap <silent><buffer> <D-CR> <Plug>VimwikiTabnewLink
|
||||||
nmap <silent><buffer> <C-S-CR> <Plug>VimwikiTabnewLink
|
nmap <silent><buffer> <C-S-CR> <Plug>VimwikiTabnewLink
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiTabnewLink :VimwikiTabnewLink<CR>
|
||||||
\ <Plug>VimwikiTabnewLink :VimwikiTabnewLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiGoBackLink')
|
if !hasmapto('<Plug>VimwikiGoBackLink')
|
||||||
nmap <silent><buffer> <BS> <Plug>VimwikiGoBackLink
|
nmap <silent><buffer> <BS> <Plug>VimwikiGoBackLink
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiGoBackLink :VimwikiGoBackLink<CR>
|
||||||
\ <Plug>VimwikiGoBackLink :VimwikiGoBackLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiNextLink')
|
if !hasmapto('<Plug>VimwikiNextLink')
|
||||||
nmap <silent><buffer> <TAB> <Plug>VimwikiNextLink
|
nmap <silent><buffer> <TAB> <Plug>VimwikiNextLink
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiNextLink :VimwikiNextLink<CR>
|
||||||
\ <Plug>VimwikiNextLink :VimwikiNextLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiPrevLink')
|
if !hasmapto('<Plug>VimwikiPrevLink')
|
||||||
nmap <silent><buffer> <S-TAB> <Plug>VimwikiPrevLink
|
nmap <silent><buffer> <S-TAB> <Plug>VimwikiPrevLink
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiPrevLink :VimwikiPrevLink<CR>
|
||||||
\ <Plug>VimwikiPrevLink :VimwikiPrevLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiDeleteLink')
|
if !hasmapto('<Plug>VimwikiDeleteLink')
|
||||||
exe 'nmap <silent><buffer> '.vimwiki#vars#get_global('map_prefix').'d <Plug>VimwikiDeleteLink'
|
exe 'nmap <silent><buffer> '.vimwiki#vars#get_global('map_prefix').'d <Plug>VimwikiDeleteLink'
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiDeleteLink :VimwikiDeleteLink<CR>
|
||||||
\ <Plug>VimwikiDeleteLink :VimwikiDeleteLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiRenameLink')
|
if !hasmapto('<Plug>VimwikiRenameLink')
|
||||||
exe 'nmap <silent><buffer> '.vimwiki#vars#get_global('map_prefix').'r <Plug>VimwikiRenameLink'
|
exe 'nmap <silent><buffer> '.vimwiki#vars#get_global('map_prefix').'r <Plug>VimwikiRenameLink'
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiRenameLink :VimwikiRenameLink<CR>
|
||||||
\ <Plug>VimwikiRenameLink :VimwikiRenameLink<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiDiaryNextDay')
|
if !hasmapto('<Plug>VimwikiDiaryNextDay')
|
||||||
nmap <silent><buffer> <C-Down> <Plug>VimwikiDiaryNextDay
|
nmap <silent><buffer> <C-Down> <Plug>VimwikiDiaryNextDay
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiDiaryNextDay :VimwikiDiaryNextDay<CR>
|
||||||
\ <Plug>VimwikiDiaryNextDay :VimwikiDiaryNextDay<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiDiaryPrevDay')
|
if !hasmapto('<Plug>VimwikiDiaryPrevDay')
|
||||||
nmap <silent><buffer> <C-Up> <Plug>VimwikiDiaryPrevDay
|
nmap <silent><buffer> <C-Up> <Plug>VimwikiDiaryPrevDay
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiDiaryPrevDay :VimwikiDiaryPrevDay<CR>
|
||||||
\ <Plug>VimwikiDiaryPrevDay :VimwikiDiaryPrevDay<CR>
|
|
||||||
|
|
||||||
" List mappings
|
" List mappings
|
||||||
if !hasmapto('<Plug>VimwikiToggleListItem')
|
if !hasmapto('<Plug>VimwikiToggleListItem')
|
||||||
@ -442,35 +435,50 @@ if !hasmapto('<Plug>VimwikiToggleListItem')
|
|||||||
vmap <silent><buffer> <C-@> <Plug>VimwikiToggleListItem
|
vmap <silent><buffer> <C-@> <Plug>VimwikiToggleListItem
|
||||||
endif
|
endif
|
||||||
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>
|
nnoremap <silent><script><buffer>
|
||||||
\ <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR>
|
\ <Plug>VimwikiToggleRejectedListItem :VimwikiToggleRejectedListItem<CR>
|
||||||
vnoremap <silent><script><buffer>
|
vnoremap <silent><script><buffer>
|
||||||
\ <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR>
|
\ <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')
|
if !hasmapto('<Plug>VimwikiDecreaseLvlSingleItem', 'i')
|
||||||
imap <silent><buffer> <C-D>
|
imap <silent><buffer> <C-D> <Plug>VimwikiDecreaseLvlSingleItem
|
||||||
\ <Plug>VimwikiDecreaseLvlSingleItem
|
|
||||||
endif
|
endif
|
||||||
inoremap <silent><script><buffer> <Plug>VimwikiDecreaseLvlSingleItem
|
inoremap <silent><script><buffer> <Plug>VimwikiDecreaseLvlSingleItem
|
||||||
\ <C-O>:VimwikiListChangeLvl decrease 0<CR>
|
\ <C-O>:VimwikiListChangeLvl decrease 0<CR>
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiIncreaseLvlSingleItem', 'i')
|
if !hasmapto('<Plug>VimwikiIncreaseLvlSingleItem', 'i')
|
||||||
imap <silent><buffer> <C-T>
|
imap <silent><buffer> <C-T> <Plug>VimwikiIncreaseLvlSingleItem
|
||||||
\ <Plug>VimwikiIncreaseLvlSingleItem
|
|
||||||
endif
|
endif
|
||||||
inoremap <silent><script><buffer> <Plug>VimwikiIncreaseLvlSingleItem
|
inoremap <silent><script><buffer> <Plug>VimwikiIncreaseLvlSingleItem
|
||||||
\ <C-O>:VimwikiListChangeLvl increase 0<CR>
|
\ <C-O>:VimwikiListChangeLvl increase 0<CR>
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiListNextSymbol', 'i')
|
if !hasmapto('<Plug>VimwikiListNextSymbol', 'i')
|
||||||
imap <silent><buffer> <C-L><C-J>
|
imap <silent><buffer> <C-L><C-J> <Plug>VimwikiListNextSymbol
|
||||||
\ <Plug>VimwikiListNextSymbol
|
|
||||||
endif
|
endif
|
||||||
inoremap <silent><script><buffer> <Plug>VimwikiListNextSymbol
|
inoremap <silent><script><buffer> <Plug>VimwikiListNextSymbol
|
||||||
\ <C-O>:VimwikiListChangeSymbolI next<CR>
|
\ <C-O>:VimwikiListChangeSymbolI next<CR>
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiListPrevSymbol', 'i')
|
if !hasmapto('<Plug>VimwikiListPrevSymbol', 'i')
|
||||||
imap <silent><buffer> <C-L><C-K>
|
imap <silent><buffer> <C-L><C-K> <Plug>VimwikiListPrevSymbol
|
||||||
\ <Plug>VimwikiListPrevSymbol
|
|
||||||
endif
|
endif
|
||||||
inoremap <silent><script><buffer> <Plug>VimwikiListPrevSymbol
|
inoremap <silent><script><buffer> <Plug>VimwikiListPrevSymbol
|
||||||
\ <C-O>:VimwikiListChangeSymbolI prev<CR>
|
\ <C-O>:VimwikiListChangeSymbolI prev<CR>
|
||||||
@ -480,21 +488,19 @@ if !hasmapto('<Plug>VimwikiListToggle', 'i')
|
|||||||
endif
|
endif
|
||||||
inoremap <silent><script><buffer> <Plug>VimwikiListToggle <Esc>:VimwikiListToggle<CR>
|
inoremap <silent><script><buffer> <Plug>VimwikiListToggle <Esc>:VimwikiListToggle<CR>
|
||||||
|
|
||||||
nnoremap <silent> <buffer> o :call vimwiki#lst#kbd_o()<CR>
|
nnoremap <silent> <buffer> o :<C-U>call vimwiki#lst#kbd_o()<CR>
|
||||||
nnoremap <silent> <buffer> O :call vimwiki#lst#kbd_O()<CR>
|
nnoremap <silent> <buffer> O :<C-U>call vimwiki#lst#kbd_O()<CR>
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiRenumberList')
|
if !hasmapto('<Plug>VimwikiRenumberList')
|
||||||
nmap <silent><buffer> glr <Plug>VimwikiRenumberList
|
nmap <silent><buffer> glr <Plug>VimwikiRenumberList
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiRenumberList :VimwikiRenumberList<CR>
|
||||||
\ <Plug>VimwikiRenumberList :VimwikiRenumberList<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiRenumberAllLists')
|
if !hasmapto('<Plug>VimwikiRenumberAllLists')
|
||||||
nmap <silent><buffer> gLr <Plug>VimwikiRenumberAllLists
|
nmap <silent><buffer> gLr <Plug>VimwikiRenumberAllLists
|
||||||
nmap <silent><buffer> gLR <Plug>VimwikiRenumberAllLists
|
nmap <silent><buffer> gLR <Plug>VimwikiRenumberAllLists
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiRenumberAllLists :VimwikiRenumberAllLists<CR>
|
||||||
\ <Plug>VimwikiRenumberAllLists :VimwikiRenumberAllLists<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiDecreaseLvlSingleItem')
|
if !hasmapto('<Plug>VimwikiDecreaseLvlSingleItem')
|
||||||
map <silent><buffer> glh <Plug>VimwikiDecreaseLvlSingleItem
|
map <silent><buffer> glh <Plug>VimwikiDecreaseLvlSingleItem
|
||||||
@ -525,14 +531,12 @@ noremap <silent><script><buffer>
|
|||||||
if !hasmapto('<Plug>VimwikiRemoveSingleCB')
|
if !hasmapto('<Plug>VimwikiRemoveSingleCB')
|
||||||
map <silent><buffer> gl<Space> <Plug>VimwikiRemoveSingleCB
|
map <silent><buffer> gl<Space> <Plug>VimwikiRemoveSingleCB
|
||||||
endif
|
endif
|
||||||
noremap <silent><script><buffer>
|
noremap <silent><script><buffer> <Plug>VimwikiRemoveSingleCB :VimwikiRemoveSingleCB<CR>
|
||||||
\ <Plug>VimwikiRemoveSingleCB :VimwikiRemoveSingleCB<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiRemoveCBInList')
|
if !hasmapto('<Plug>VimwikiRemoveCBInList')
|
||||||
map <silent><buffer> gL<Space> <Plug>VimwikiRemoveCBInList
|
map <silent><buffer> gL<Space> <Plug>VimwikiRemoveCBInList
|
||||||
endif
|
endif
|
||||||
noremap <silent><script><buffer>
|
noremap <silent><script><buffer> <Plug>VimwikiRemoveCBInList :VimwikiRemoveCBInList<CR>
|
||||||
\ <Plug>VimwikiRemoveCBInList :VimwikiRemoveCBInList<CR>
|
|
||||||
|
|
||||||
for s:char in vimwiki#vars#get_syntaxlocal('bullet_types')
|
for s:char in vimwiki#vars#get_syntaxlocal('bullet_types')
|
||||||
if !hasmapto(':VimwikiChangeSymbolTo '.s:char.'<CR>')
|
if !hasmapto(':VimwikiChangeSymbolTo '.s:char.'<CR>')
|
||||||
@ -553,8 +557,7 @@ for s:typ in vimwiki#vars#get_syntaxlocal('number_types')
|
|||||||
endfor
|
endfor
|
||||||
|
|
||||||
|
|
||||||
|
function! s:CR(normal, just_mrkr)
|
||||||
function! s:CR(normal, just_mrkr) "{{{
|
|
||||||
if vimwiki#vars#get_global('table_mappings')
|
if vimwiki#vars#get_global('table_mappings')
|
||||||
let res = vimwiki#tbl#kbd_cr()
|
let res = vimwiki#tbl#kbd_cr()
|
||||||
if res != ""
|
if res != ""
|
||||||
@ -564,7 +567,7 @@ function! s:CR(normal, just_mrkr) "{{{
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
call vimwiki#lst#kbd_cr(a:normal, a:just_mrkr)
|
call vimwiki#lst#kbd_cr(a:normal, a:just_mrkr)
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
if !hasmapto('VimwikiReturn', 'i')
|
if !hasmapto('VimwikiReturn', 'i')
|
||||||
if maparg('<CR>', 'i') !~? '<Esc>:VimwikiReturn'
|
if maparg('<CR>', 'i') !~? '<Esc>:VimwikiReturn'
|
||||||
@ -588,8 +591,7 @@ nnoremap <buffer> gww :VimwikiTableAlignW<CR>
|
|||||||
if !hasmapto('<Plug>VimwikiTableMoveColumnLeft')
|
if !hasmapto('<Plug>VimwikiTableMoveColumnLeft')
|
||||||
nmap <silent><buffer> <A-Left> <Plug>VimwikiTableMoveColumnLeft
|
nmap <silent><buffer> <A-Left> <Plug>VimwikiTableMoveColumnLeft
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><script><buffer>
|
nnoremap <silent><script><buffer> <Plug>VimwikiTableMoveColumnLeft :VimwikiTableMoveColumnLeft<CR>
|
||||||
\ <Plug>VimwikiTableMoveColumnLeft :VimwikiTableMoveColumnLeft<CR>
|
|
||||||
if !hasmapto('<Plug>VimwikiTableMoveColumnRight')
|
if !hasmapto('<Plug>VimwikiTableMoveColumnRight')
|
||||||
nmap <silent><buffer> <A-Right> <Plug>VimwikiTableMoveColumnRight
|
nmap <silent><buffer> <A-Right> <Plug>VimwikiTableMoveColumnRight
|
||||||
endif
|
endif
|
||||||
@ -598,12 +600,21 @@ nnoremap <silent><script><buffer>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
" Text objects {{{
|
" ------------------------------------------------
|
||||||
onoremap <silent><buffer> ah :<C-U>call vimwiki#base#TO_header(0, 0)<CR>
|
" Text objects
|
||||||
vnoremap <silent><buffer> ah :<C-U>call vimwiki#base#TO_header(0, 1)<CR>
|
" ------------------------------------------------
|
||||||
|
|
||||||
onoremap <silent><buffer> ih :<C-U>call vimwiki#base#TO_header(1, 0)<CR>
|
onoremap <silent><buffer> ah :<C-U>call vimwiki#base#TO_header(0, 0, v:count1)<CR>
|
||||||
vnoremap <silent><buffer> ih :<C-U>call vimwiki#base#TO_header(1, 1)<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>
|
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>
|
vnoremap <silent><buffer> a\ :<C-U>call vimwiki#base#TO_table_cell(0, 1)<CR>
|
||||||
@ -626,8 +637,7 @@ vnoremap <silent><buffer> il :<C-U>call vimwiki#lst#TO_list_item(1, 1)<CR>
|
|||||||
if !hasmapto('<Plug>VimwikiAddHeaderLevel')
|
if !hasmapto('<Plug>VimwikiAddHeaderLevel')
|
||||||
nmap <silent><buffer> = <Plug>VimwikiAddHeaderLevel
|
nmap <silent><buffer> = <Plug>VimwikiAddHeaderLevel
|
||||||
endif
|
endif
|
||||||
nnoremap <silent><buffer> <Plug>VimwikiAddHeaderLevel :
|
nnoremap <silent><buffer> <Plug>VimwikiAddHeaderLevel :<C-U>call vimwiki#base#AddHeaderLevel()<CR>
|
||||||
\<C-U>call vimwiki#base#AddHeaderLevel()<CR>
|
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiRemoveHeaderLevel')
|
if !hasmapto('<Plug>VimwikiRemoveHeaderLevel')
|
||||||
nmap <silent><buffer> - <Plug>VimwikiRemoveHeaderLevel
|
nmap <silent><buffer> - <Plug>VimwikiRemoveHeaderLevel
|
||||||
@ -635,12 +645,39 @@ endif
|
|||||||
nnoremap <silent><buffer> <Plug>VimwikiRemoveHeaderLevel :
|
nnoremap <silent><buffer> <Plug>VimwikiRemoveHeaderLevel :
|
||||||
\<C-U>call vimwiki#base#RemoveHeaderLevel()<CR>
|
\<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>
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" KEYBINDINGS }}}
|
|
||||||
|
|
||||||
" AUTOCOMMANDS {{{
|
|
||||||
if vimwiki#vars#get_wikilocal('auto_export')
|
if vimwiki#vars#get_wikilocal('auto_export')
|
||||||
" Automatically generate HTML on page write.
|
" Automatically generate HTML on page write.
|
||||||
augroup vimwiki
|
augroup vimwiki
|
||||||
@ -662,10 +699,4 @@ if vimwiki#vars#get_wikilocal('auto_tags')
|
|||||||
au BufWritePost <buffer> call vimwiki#tags#update_tags(0, '')
|
au BufWritePost <buffer> call vimwiki#tags#update_tags(0, '')
|
||||||
augroup END
|
augroup END
|
||||||
endif
|
endif
|
||||||
" AUTOCOMMANDS }}}
|
|
||||||
|
|
||||||
" PASTE, CAT URL {{{
|
|
||||||
" html commands
|
|
||||||
command! -buffer VimwikiPasteUrl call vimwiki#html#PasteUrl(vimwiki#path#current_file())
|
|
||||||
command! -buffer VimwikiCatUrl call vimwiki#html#CatUrl(vimwiki#path#current_file())
|
|
||||||
" }}}
|
|
||||||
|
@ -1,19 +1,21 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki plugin file
|
" Vimwiki plugin file
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
" GetLatestVimScripts: 2226 1 :AutoInstall: vimwiki
|
" GetLatestVimScripts: 2226 1 :AutoInstall: vimwiki
|
||||||
|
|
||||||
|
|
||||||
if exists("g:loaded_vimwiki") || &cp
|
if exists("g:loaded_vimwiki") || &cp
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_vimwiki = 1
|
let g:loaded_vimwiki = 1
|
||||||
|
|
||||||
|
|
||||||
let s:old_cpo = &cpo
|
let s:old_cpo = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
|
|
||||||
" this is called when the cursor leaves the buffer
|
" this is called when the cursor leaves the buffer
|
||||||
function! s:setup_buffer_leave() "{{{
|
function! s:setup_buffer_leave()
|
||||||
" don't do anything if it's not managed by Vimwiki (that is, when it's not in
|
" 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)
|
" a registered wiki and not a temporary wiki)
|
||||||
if vimwiki#vars#get_bufferlocal('wiki_nr') == -1
|
if vimwiki#vars#get_bufferlocal('wiki_nr') == -1
|
||||||
@ -25,7 +27,7 @@ function! s:setup_buffer_leave() "{{{
|
|||||||
if vimwiki#vars#get_global('menu') != ""
|
if vimwiki#vars#get_global('menu') != ""
|
||||||
exe 'nmenu disable '.vimwiki#vars#get_global('menu').'.Table'
|
exe 'nmenu disable '.vimwiki#vars#get_global('menu').'.Table'
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" create a new temporary wiki for the current buffer
|
" create a new temporary wiki for the current buffer
|
||||||
@ -50,8 +52,10 @@ function! s:create_temporary_wiki()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" this is called when Vim opens a new buffer with a known wiki extension
|
" This function is called when Vim opens a new buffer with a known wiki
|
||||||
function! s:setup_new_wiki_buffer() "{{{
|
" 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')
|
let wiki_nr = vimwiki#vars#get_bufferlocal('wiki_nr')
|
||||||
if wiki_nr == -1 " it's not in a known wiki directory
|
if wiki_nr == -1 " it's not in a known wiki directory
|
||||||
if vimwiki#vars#get_global('global_ext')
|
if vimwiki#vars#get_global('global_ext')
|
||||||
@ -62,79 +66,39 @@ function! s:setup_new_wiki_buffer() "{{{
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" this makes that ftplugin/vimwiki.vim is sourced
|
if vimwiki#vars#get_wikilocal('maxhi')
|
||||||
set filetype=vimwiki
|
call vimwiki#vars#set_bufferlocal('existing_wikifiles', vimwiki#base#get_wikilinks(wiki_nr, 1))
|
||||||
|
call vimwiki#vars#set_bufferlocal('existing_wikidirs',
|
||||||
" to force a rescan of the filesystem which may have changed
|
\ vimwiki#base#get_wiki_directories(wiki_nr))
|
||||||
" and update VimwikiLinks syntax group that depends on it;
|
|
||||||
" 'fs_rescan' indicates that setup_filetype() has not been run
|
|
||||||
if vimwiki#vars#get_bufferlocal('fs_rescan') == 1 && vimwiki#vars#get_wikilocal('maxhi')
|
|
||||||
set syntax=vimwiki
|
|
||||||
endif
|
endif
|
||||||
call vimwiki#vars#set_bufferlocal('fs_rescan', 1)
|
|
||||||
endfunction "}}}
|
" 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
|
" this is called when the cursor enters the buffer
|
||||||
function! s:setup_buffer_enter() "{{{
|
function! s:setup_buffer_enter()
|
||||||
" don't do anything if it's not managed by Vimwiki (that is, when it's not in
|
" 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)
|
" a registered wiki and not a temporary wiki)
|
||||||
if vimwiki#vars#get_bufferlocal('wiki_nr') == -1
|
if vimwiki#vars#get_bufferlocal('wiki_nr') == -1
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:vimwiki_autowriteall_saved = &autowriteall
|
if &filetype != 'vimwiki'
|
||||||
let &autowriteall = vimwiki#vars#get_global('autowriteall')
|
setfiletype vimwiki
|
||||||
|
|
||||||
if &filetype == ''
|
|
||||||
set filetype=vimwiki
|
|
||||||
elseif &syntax ==? 'vimwiki'
|
|
||||||
" to force a rescan of the filesystem which may have changed
|
|
||||||
" and update VimwikiLinks syntax group that depends on it;
|
|
||||||
" 'fs_rescan' indicates that setup_filetype() has not been run
|
|
||||||
if vimwiki#vars#get_bufferlocal('fs_rescan') == 1 && vimwiki#vars#get_wikilocal('maxhi')
|
|
||||||
set syntax=vimwiki
|
|
||||||
endif
|
|
||||||
call vimwiki#vars#set_bufferlocal('fs_rescan', 1)
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" The settings foldmethod, foldexpr and foldtext are local to window. Thus in
|
call s:set_global_options()
|
||||||
" a new tab with the same buffer folding is reset to vim defaults. So we
|
|
||||||
" insist vimwiki folding here.
|
|
||||||
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()
|
|
||||||
else
|
|
||||||
setlocal foldmethod=manual
|
|
||||||
normal! zE
|
|
||||||
endif
|
|
||||||
|
|
||||||
" And conceal level too.
|
call s:set_windowlocal_options()
|
||||||
if vimwiki#vars#get_global('conceallevel') && exists("+conceallevel")
|
endfunction
|
||||||
let &conceallevel = vimwiki#vars#get_global('conceallevel')
|
|
||||||
endif
|
|
||||||
|
|
||||||
" lcd as well
|
|
||||||
if vimwiki#vars#get_global('auto_chdir')
|
|
||||||
exe 'lcd' vimwiki#path#to_string(vimwiki#vars#get_wikilocal('path'))
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Set up menu
|
function! s:setup_cleared_syntax()
|
||||||
if vimwiki#vars#get_global('menu') !=# ''
|
" highlight groups that get cleared
|
||||||
exe 'nmenu enable '.vimwiki#vars#get_global('menu').'.Table'
|
|
||||||
endif
|
|
||||||
endfunction "}}}
|
|
||||||
|
|
||||||
function! s:setup_cleared_syntax() "{{{ highlight groups that get cleared
|
|
||||||
" on colorscheme change because they are not linked to Vim-predefined groups
|
" on colorscheme change because they are not linked to Vim-predefined groups
|
||||||
hi def VimwikiBold term=bold cterm=bold gui=bold
|
hi def VimwikiBold term=bold cterm=bold gui=bold
|
||||||
hi def VimwikiItalic term=italic cterm=italic gui=italic
|
hi def VimwikiItalic term=italic cterm=italic gui=italic
|
||||||
@ -142,13 +106,16 @@ function! s:setup_cleared_syntax() "{{{ highlight groups that get cleared
|
|||||||
hi def VimwikiUnderline gui=underline
|
hi def VimwikiUnderline gui=underline
|
||||||
if vimwiki#vars#get_global('hl_headers') == 1
|
if vimwiki#vars#get_global('hl_headers') == 1
|
||||||
for i in range(1,6)
|
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'
|
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
|
endfor
|
||||||
endif
|
endif
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
function! s:vimwiki_get_known_extensions() " {{{
|
function! s:vimwiki_get_known_extensions()
|
||||||
" Getting all extensions that different wikis could have
|
" Getting all extensions that different wikis could have
|
||||||
let extensions = {}
|
let extensions = {}
|
||||||
for idx in range(vimwiki#vars#number_of_wikis())
|
for idx in range(vimwiki#vars#number_of_wikis())
|
||||||
@ -160,40 +127,86 @@ function! s:vimwiki_get_known_extensions() " {{{
|
|||||||
let extensions[ext] = 1
|
let extensions[ext] = 1
|
||||||
endfor
|
endfor
|
||||||
return keys(extensions)
|
return keys(extensions)
|
||||||
endfunction " }}}
|
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#path#to_string(vimwiki#vars#get_wikilocal('path'))
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
|
|
||||||
" Initialization of Vimwiki starts here. Make sure everything below does not
|
" Initialization of Vimwiki starts here. Make sure everything below does not
|
||||||
" cause autoload/base to be loaded
|
" cause autoload/vimwiki/base.vim to be loaded
|
||||||
|
|
||||||
call vimwiki#vars#init()
|
call vimwiki#vars#init()
|
||||||
|
|
||||||
" CALLBACK functions "{{{
|
|
||||||
" User can redefine it.
|
" Define callback functions which the user can redefine
|
||||||
if !exists("*VimwikiLinkHandler") "{{{
|
if !exists("*VimwikiLinkHandler")
|
||||||
function VimwikiLinkHandler(url)
|
function VimwikiLinkHandler(url)
|
||||||
return 0
|
return 0
|
||||||
endfunction
|
endfunction
|
||||||
endif "}}}
|
endif
|
||||||
|
|
||||||
if !exists("*VimwikiLinkConverter") "{{{
|
if !exists("*VimwikiLinkConverter")
|
||||||
function VimwikiLinkConverter(url, source, target)
|
function VimwikiLinkConverter(url, source, target)
|
||||||
" Return the empty string when unable to process link
|
" Return the empty string when unable to process link
|
||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
endif "}}}
|
endif
|
||||||
|
|
||||||
if !exists("*VimwikiWikiIncludeHandler") "{{{
|
if !exists("*VimwikiWikiIncludeHandler")
|
||||||
function! VimwikiWikiIncludeHandler(value) "{{{
|
function! VimwikiWikiIncludeHandler(value)
|
||||||
return ''
|
return ''
|
||||||
endfunction "}}}
|
endfunction
|
||||||
endif "}}}
|
endif
|
||||||
" CALLBACK }}}
|
|
||||||
|
|
||||||
|
|
||||||
" AUTOCOMMANDS for all known wiki extensions {{{
|
|
||||||
|
" Define autocommands for all known wiki extensions
|
||||||
|
|
||||||
let s:known_extensions = s:vimwiki_get_known_extensions()
|
let s:known_extensions = s:vimwiki_get_known_extensions()
|
||||||
|
|
||||||
@ -207,8 +220,8 @@ endif
|
|||||||
augroup vimwiki
|
augroup vimwiki
|
||||||
autocmd!
|
autocmd!
|
||||||
for s:ext in s:known_extensions
|
for s:ext in s:known_extensions
|
||||||
exe 'autocmd BufEnter *'.s:ext.' call s:setup_buffer_enter()'
|
|
||||||
exe 'autocmd BufNewFile,BufRead *'.s:ext.' call s:setup_new_wiki_buffer()'
|
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 BufLeave *'.s:ext.' call s:setup_buffer_leave()'
|
||||||
exe 'autocmd ColorScheme *'.s:ext.' call s:setup_cleared_syntax()'
|
exe 'autocmd ColorScheme *'.s:ext.' call s:setup_cleared_syntax()'
|
||||||
" Format tables when exit from insert mode. Do not use textwidth to
|
" Format tables when exit from insert mode. Do not use textwidth to
|
||||||
@ -217,14 +230,24 @@ augroup vimwiki
|
|||||||
exe 'autocmd InsertLeave *'.s:ext.' call vimwiki#tbl#format(line("."))'
|
exe 'autocmd InsertLeave *'.s:ext.' call vimwiki#tbl#format(line("."))'
|
||||||
exe 'autocmd InsertEnter *'.s:ext.' call vimwiki#tbl#reset_tw(line("."))'
|
exe 'autocmd InsertEnter *'.s:ext.' call vimwiki#tbl#reset_tw(line("."))'
|
||||||
endif
|
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
|
endfor
|
||||||
augroup END
|
augroup END
|
||||||
"}}}
|
|
||||||
|
|
||||||
" COMMANDS {{{
|
|
||||||
|
|
||||||
command! VimwikiUISelect call vimwiki#base#ui_select()
|
command! VimwikiUISelect call vimwiki#base#ui_select()
|
||||||
" XXX: why not using <count> instead of v:count1?
|
" why not using <count> instead of v:count1?
|
||||||
" See Issue 324.
|
" See https://github.com/vimwiki-backup/vimwiki/issues/324
|
||||||
command! -count=1 VimwikiIndex
|
command! -count=1 VimwikiIndex
|
||||||
\ call vimwiki#base#goto_index(v:count1)
|
\ call vimwiki#base#goto_index(v:count1)
|
||||||
command! -count=1 VimwikiTabIndex
|
command! -count=1 VimwikiTabIndex
|
||||||
@ -237,13 +260,17 @@ command! -count=1 VimwikiMakeDiaryNote
|
|||||||
command! -count=1 VimwikiTabMakeDiaryNote
|
command! -count=1 VimwikiTabMakeDiaryNote
|
||||||
\ call vimwiki#diary#make_note(v:count1, 1)
|
\ call vimwiki#diary#make_note(v:count1, 1)
|
||||||
command! -count=1 VimwikiMakeYesterdayDiaryNote
|
command! -count=1 VimwikiMakeYesterdayDiaryNote
|
||||||
\ call vimwiki#diary#make_note(v:count1, 0, vimwiki#diary#diary_date_link(localtime() - 60*60*24))
|
\ call vimwiki#diary#make_note(v:count1, 0,
|
||||||
|
\ vimwiki#diary#diary_date_link(localtime() - 60*60*24))
|
||||||
|
command! -count=1 VimwikiMakeTomorrowDiaryNote
|
||||||
|
\ call vimwiki#diary#make_note(v:count1, 0,
|
||||||
|
\ vimwiki#diary#diary_date_link(localtime() + 60*60*24))
|
||||||
|
|
||||||
command! VimwikiDiaryGenerateLinks
|
command! VimwikiDiaryGenerateLinks
|
||||||
\ call vimwiki#diary#generate_diary_section()
|
\ call vimwiki#diary#generate_diary_section()
|
||||||
"}}}
|
|
||||||
|
|
||||||
" MAPPINGS {{{
|
|
||||||
|
|
||||||
let s:map_prefix = vimwiki#vars#get_global('map_prefix')
|
let s:map_prefix = vimwiki#vars#get_global('map_prefix')
|
||||||
|
|
||||||
if !hasmapto('<Plug>VimwikiIndex')
|
if !hasmapto('<Plug>VimwikiIndex')
|
||||||
@ -288,9 +315,15 @@ endif
|
|||||||
nnoremap <unique><script> <Plug>VimwikiMakeYesterdayDiaryNote
|
nnoremap <unique><script> <Plug>VimwikiMakeYesterdayDiaryNote
|
||||||
\ :VimwikiMakeYesterdayDiaryNote<CR>
|
\ :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>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" MENU {{{
|
|
||||||
function! s:build_menu(topmenu)
|
function! s:build_menu(topmenu)
|
||||||
for idx in range(vimwiki#vars#number_of_wikis())
|
for idx in range(vimwiki#vars#number_of_wikis())
|
||||||
let norm_path = vimwiki#path#to_string(vimwiki#vars#get_wikilocal('path', idx))
|
let norm_path = vimwiki#path#to_string(vimwiki#vars#get_wikilocal('path', idx))
|
||||||
@ -307,7 +340,8 @@ function! s:build_table_menu(topmenu)
|
|||||||
exe 'menu '.a:topmenu.'.Table.Create\ (enter\ cols\ rows) :VimwikiTable '
|
exe 'menu '.a:topmenu.'.Table.Create\ (enter\ cols\ rows) :VimwikiTable '
|
||||||
exe 'nmenu '.a:topmenu.'.Table.Format<tab>gqq gqq'
|
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\ left<tab><A-Left> :VimwikiTableMoveColumnLeft<CR>'
|
||||||
exe 'nmenu '.a:topmenu.'.Table.Move\ column\ right<tab><A-Right> :VimwikiTableMoveColumnRight<CR>'
|
exe 'nmenu '.a:topmenu.
|
||||||
|
\ '.Table.Move\ column\ right<tab><A-Right> :VimwikiTableMoveColumnRight<CR>'
|
||||||
exe 'nmenu disable '.a:topmenu.'.Table'
|
exe 'nmenu disable '.a:topmenu.'.Table'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@ -316,14 +350,13 @@ if !empty(vimwiki#vars#get_global('menu'))
|
|||||||
call s:build_menu(vimwiki#vars#get_global('menu'))
|
call s:build_menu(vimwiki#vars#get_global('menu'))
|
||||||
call s:build_table_menu(vimwiki#vars#get_global('menu'))
|
call s:build_table_menu(vimwiki#vars#get_global('menu'))
|
||||||
endif
|
endif
|
||||||
" }}}
|
|
||||||
|
|
||||||
" CALENDAR Hook "{{{
|
|
||||||
|
" Hook for calendar.vim
|
||||||
if vimwiki#vars#get_global('use_calendar')
|
if vimwiki#vars#get_global('use_calendar')
|
||||||
let g:calendar_action = 'vimwiki#diary#calendar_action'
|
let g:calendar_action = 'vimwiki#diary#calendar_action'
|
||||||
let g:calendar_sign = 'vimwiki#diary#calendar_sign'
|
let g:calendar_sign = 'vimwiki#diary#calendar_sign'
|
||||||
endif
|
endif
|
||||||
"}}}
|
|
||||||
|
|
||||||
|
|
||||||
let &cpo = s:old_cpo
|
let &cpo = s:old_cpo
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki syntax file
|
" Vimwiki syntax file
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
|
|
||||||
" Quit if syntax file is already loaded
|
" Quit if syntax file is already loaded
|
||||||
if version < 600
|
if v:version < 600
|
||||||
syntax clear
|
syntax clear
|
||||||
elseif exists("b:current_syntax")
|
elseif exists("b:current_syntax")
|
||||||
finish
|
finish
|
||||||
@ -12,35 +13,38 @@ endif
|
|||||||
|
|
||||||
let s:current_syntax = vimwiki#vars#get_wikilocal('syntax')
|
let s:current_syntax = vimwiki#vars#get_wikilocal('syntax')
|
||||||
|
|
||||||
|
|
||||||
call vimwiki#vars#populate_syntax_vars(s:current_syntax)
|
call vimwiki#vars#populate_syntax_vars(s:current_syntax)
|
||||||
|
|
||||||
|
|
||||||
" LINKS: highlighting is complicated due to "nonexistent" links feature {{{
|
" LINKS: highlighting is complicated due to "nonexistent" links feature
|
||||||
function! s:add_target_syntax_ON(target, type) " {{{
|
function! s:add_target_syntax_ON(target, type)
|
||||||
let prefix0 = 'syntax match '.a:type.' `'
|
let prefix0 = 'syntax match '.a:type.' `'
|
||||||
let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
|
let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
|
||||||
let prefix1 = 'syntax match '.a:type.'T `'
|
let prefix1 = 'syntax match '.a:type.'T `'
|
||||||
let suffix1 = '` display contained'
|
let suffix1 = '` display contained'
|
||||||
execute prefix0. a:target. suffix0
|
execute prefix0. a:target. suffix0
|
||||||
execute prefix1. a:target. suffix1
|
execute prefix1. a:target. suffix1
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:add_target_syntax_OFF(target) " {{{
|
|
||||||
|
function! s:add_target_syntax_OFF(target)
|
||||||
let prefix0 = 'syntax match VimwikiNoExistsLink `'
|
let prefix0 = 'syntax match VimwikiNoExistsLink `'
|
||||||
let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,VimwikiLinkChar'
|
let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,VimwikiLinkChar'
|
||||||
let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
|
let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
|
||||||
let suffix1 = '` display contained'
|
let suffix1 = '` display contained'
|
||||||
execute prefix0. a:target. suffix0
|
execute prefix0. a:target. suffix0
|
||||||
execute prefix1. a:target. suffix1
|
execute prefix1. a:target. suffix1
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:highlight_existing_links() "{{{
|
|
||||||
|
function! s:highlight_existing_links()
|
||||||
" Wikilink
|
" Wikilink
|
||||||
" Conditional highlighting that depends on the existence of a wiki file or
|
" Conditional highlighting that depends on the existence of a wiki file or
|
||||||
" directory is only available for *schemeless* wiki links
|
" directory is only available for *schemeless* wiki links
|
||||||
" Links are set up upon BufEnter (see plugin/...)
|
" Links are set up upon BufEnter (see plugin/...)
|
||||||
let safe_links = '\%('.vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikifiles')) .
|
let safe_links = '\%('.vimwiki#base#file_pattern(
|
||||||
\ '\%(#[^|]*\)\?\|#[^|]*\)'
|
\ vimwiki#vars#get_bufferlocal('existing_wikifiles')) . '\%(#[^|]*\)\?\|#[^|]*\)'
|
||||||
" Wikilink Dirs set up upon BufEnter (see plugin/...)
|
" Wikilink Dirs set up upon BufEnter (see plugin/...)
|
||||||
let safe_dirs = vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikidirs'))
|
let safe_dirs = vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikidirs'))
|
||||||
|
|
||||||
@ -75,7 +79,7 @@ function! s:highlight_existing_links() "{{{
|
|||||||
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate2')),
|
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate2')),
|
||||||
\ safe_dirs, vimwiki#vars#get_global('rxWikiLinkDescr'), '')
|
\ safe_dirs, vimwiki#vars#get_global('rxWikiLinkDescr'), '')
|
||||||
call s:add_target_syntax_ON(target, 'VimwikiLink')
|
call s:add_target_syntax_ON(target, 'VimwikiLink')
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" use max highlighting - could be quite slow if there are too many wikifiles
|
" use max highlighting - could be quite slow if there are too many wikifiles
|
||||||
@ -94,9 +98,11 @@ else
|
|||||||
call s:add_target_syntax_ON(vimwiki#vars#get_global('rxWikiIncl'), 'VimwikiLink')
|
call s:add_target_syntax_ON(vimwiki#vars#get_global('rxWikiIncl'), 'VimwikiLink')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
" Weblink
|
" Weblink
|
||||||
call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWeblink'), 'VimwikiLink')
|
call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWeblink'), 'VimwikiLink')
|
||||||
|
|
||||||
|
|
||||||
" WikiLink
|
" WikiLink
|
||||||
" All remaining schemes are highlighted automatically
|
" All remaining schemes are highlighted automatically
|
||||||
let s:rxSchemes = '\%('.
|
let s:rxSchemes = '\%('.
|
||||||
@ -107,62 +113,73 @@ let s:rxSchemes = '\%('.
|
|||||||
" a) match [[nonwiki-scheme-URL]]
|
" a) match [[nonwiki-scheme-URL]]
|
||||||
let s:target = vimwiki#base#apply_template(
|
let s:target = vimwiki#base#apply_template(
|
||||||
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate1')),
|
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate1')),
|
||||||
\ s:rxSchemes.vimwiki#vars#get_global('rxWikiLinkUrl'), vimwiki#vars#get_global('rxWikiLinkDescr'), '')
|
\ s:rxSchemes.vimwiki#vars#get_global('rxWikiLinkUrl'),
|
||||||
|
\ vimwiki#vars#get_global('rxWikiLinkDescr'), '')
|
||||||
call s:add_target_syntax_ON(s:target, 'VimwikiLink')
|
call s:add_target_syntax_ON(s:target, 'VimwikiLink')
|
||||||
" b) match [[nonwiki-scheme-URL|DESCRIPTION]]
|
" b) match [[nonwiki-scheme-URL|DESCRIPTION]]
|
||||||
let s:target = vimwiki#base#apply_template(
|
let s:target = vimwiki#base#apply_template(
|
||||||
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate2')),
|
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiLinkTemplate2')),
|
||||||
\ s:rxSchemes.vimwiki#vars#get_global('rxWikiLinkUrl'), vimwiki#vars#get_global('rxWikiLinkDescr'), '')
|
\ s:rxSchemes.vimwiki#vars#get_global('rxWikiLinkUrl'),
|
||||||
|
\ vimwiki#vars#get_global('rxWikiLinkDescr'), '')
|
||||||
call s:add_target_syntax_ON(s:target, 'VimwikiLink')
|
call s:add_target_syntax_ON(s:target, 'VimwikiLink')
|
||||||
|
|
||||||
" a) match {{nonwiki-scheme-URL}}
|
" a) match {{nonwiki-scheme-URL}}
|
||||||
let s:target = vimwiki#base#apply_template(
|
let s:target = vimwiki#base#apply_template(
|
||||||
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiInclTemplate1')),
|
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiInclTemplate1')),
|
||||||
\ s:rxSchemes.vimwiki#vars#get_global('rxWikiInclUrl'), vimwiki#vars#get_global('rxWikiInclArgs'), '')
|
\ s:rxSchemes.vimwiki#vars#get_global('rxWikiInclUrl'),
|
||||||
|
\ vimwiki#vars#get_global('rxWikiInclArgs'), '')
|
||||||
call s:add_target_syntax_ON(s:target, 'VimwikiLink')
|
call s:add_target_syntax_ON(s:target, 'VimwikiLink')
|
||||||
" b) match {{nonwiki-scheme-URL}[{...}]}
|
" b) match {{nonwiki-scheme-URL}[{...}]}
|
||||||
let s:target = vimwiki#base#apply_template(
|
let s:target = vimwiki#base#apply_template(
|
||||||
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiInclTemplate2')),
|
\ vimwiki#u#escape(vimwiki#vars#get_global('WikiInclTemplate2')),
|
||||||
\ s:rxSchemes.vimwiki#vars#get_global('rxWikiInclUrl'), vimwiki#vars#get_global('rxWikiInclArgs'), '')
|
\ s:rxSchemes.vimwiki#vars#get_global('rxWikiInclUrl'),
|
||||||
|
\ vimwiki#vars#get_global('rxWikiInclArgs'), '')
|
||||||
call s:add_target_syntax_ON(s:target, 'VimwikiLink')
|
call s:add_target_syntax_ON(s:target, 'VimwikiLink')
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" generic headers "{{{
|
|
||||||
|
|
||||||
" Header levels, 1-6
|
" Header levels, 1-6
|
||||||
for s:i in range(1,6)
|
for s:i in range(1,6)
|
||||||
|
execute 'syntax match VimwikiHeader'.s:i
|
||||||
execute 'syntax match VimwikiHeader'.s:i.' /'.vimwiki#vars#get_syntaxlocal('rxH'.s:i, s:current_syntax).'/ contains=VimwikiTodo,VimwikiHeaderChar,VimwikiNoExistsLink,VimwikiCode,VimwikiLink,@Spell'
|
\ . ' /'.vimwiki#vars#get_syntaxlocal('rxH'.s:i, s:current_syntax).
|
||||||
execute 'syntax region VimwikiH'.s:i.'Folding start=/'.vimwiki#vars#get_syntaxlocal('rxH'.s:i.'_Start', s:current_syntax).
|
\ '/ contains=VimwikiTodo,VimwikiHeaderChar,VimwikiNoExistsLink,VimwikiCode,'.
|
||||||
\ '/ end=/'.vimwiki#vars#get_syntaxlocal('rxH'.s:i.'_End', s:current_syntax).'/me=s-1 transparent fold'
|
\ '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
|
endfor
|
||||||
|
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
|
" possibly concealed chars
|
||||||
" possibly concealed chars " {{{
|
|
||||||
let s:conceal = exists("+conceallevel") ? ' conceal' : ''
|
let s:conceal = exists("+conceallevel") ? ' conceal' : ''
|
||||||
|
|
||||||
execute 'syn match VimwikiEqInChar contained /'.vimwiki#vars#get_syntaxlocal('char_eqin').'/'.s:conceal
|
execute 'syn match VimwikiEqInChar contained /'.
|
||||||
execute 'syn match VimwikiBoldChar contained /'.vimwiki#vars#get_syntaxlocal('char_bold').'/'.s:conceal
|
\ vimwiki#vars#get_syntaxlocal('char_eqin').'/'.s:conceal
|
||||||
execute 'syn match VimwikiItalicChar contained /'.vimwiki#vars#get_syntaxlocal('char_italic').'/'.s:conceal
|
execute 'syn match VimwikiBoldChar contained /'.
|
||||||
execute 'syn match VimwikiBoldItalicChar contained /'.vimwiki#vars#get_syntaxlocal('char_bolditalic').'/'.s:conceal
|
\ vimwiki#vars#get_syntaxlocal('char_bold').'/'.s:conceal
|
||||||
execute 'syn match VimwikiItalicBoldChar contained /'.vimwiki#vars#get_syntaxlocal('char_italicbold').'/'.s:conceal
|
execute 'syn match VimwikiItalicChar contained /'.
|
||||||
execute 'syn match VimwikiCodeChar contained /'.vimwiki#vars#get_syntaxlocal('char_code').'/'.s:conceal
|
\ vimwiki#vars#get_syntaxlocal('char_italic').'/'.s:conceal
|
||||||
execute 'syn match VimwikiDelTextChar contained /'.vimwiki#vars#get_syntaxlocal('char_deltext').'/'.s:conceal
|
execute 'syn match VimwikiBoldItalicChar contained /'.
|
||||||
execute 'syn match VimwikiSuperScript contained /'.vimwiki#vars#get_syntaxlocal('char_superscript').'/'.s:conceal
|
\ vimwiki#vars#get_syntaxlocal('char_bolditalic').'/'.s:conceal
|
||||||
execute 'syn match VimwikiSubScript contained /'.vimwiki#vars#get_syntaxlocal('char_subscript').'/'.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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" concealed link parts " {{{
|
|
||||||
|
|
||||||
" define the conceal attribute for links only if Vim is new enough to handle it
|
|
||||||
" and the user has g:vimwiki_url_maxsave > 0
|
|
||||||
|
|
||||||
let s:options = ' contained transparent contains=NONE'
|
let s:options = ' contained transparent contains=NONE'
|
||||||
"
|
|
||||||
" A shortener for long URLs: LinkRest (a middle part of the URL) is concealed
|
" 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
|
" VimwikiLinkRest group is left undefined if link shortening is not desired
|
||||||
if exists("+conceallevel") && vimwiki#vars#get_global('url_maxsave') > 0
|
if exists("+conceallevel") && vimwiki#vars#get_global('url_maxsave') > 0
|
||||||
@ -185,34 +202,41 @@ execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rxWikiInclPrefix'
|
|||||||
execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rxWikiInclSuffix').'/'.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('rxWikiInclPrefix1').'/'.s:options
|
||||||
execute 'syn match VimwikiLinkChar /'.vimwiki#vars#get_global('rxWikiInclSuffix1').'/'.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').'/'
|
|
||||||
|
|
||||||
" Emoticons
|
" non concealed chars
|
||||||
"syntax match VimwikiEmoticons /\%((.)\|:[()|$@]\|:-[DOPS()\]|$@]\|;)\|:'(\)/
|
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') .'/'
|
execute 'syntax match VimwikiTodo /'. vimwiki#vars#get_global('rxTodo') .'/'
|
||||||
" }}}
|
|
||||||
|
|
||||||
" main syntax groups {{{
|
|
||||||
|
|
||||||
" Tables
|
" Tables
|
||||||
syntax match VimwikiTableRow /^\s*|.\+|\s*$/
|
syntax match VimwikiTableRow /^\s*|.\+|\s*$/
|
||||||
\ transparent contains=VimwikiCellSeparator,
|
\ transparent contains=VimwikiCellSeparator,
|
||||||
\ VimwikiLinkT,
|
\ VimwikiLinkT,
|
||||||
\ VimwikiNoExistsLinkT,
|
\ VimwikiNoExistsLinkT,
|
||||||
\ VimwikiEmoticons,
|
|
||||||
\ VimwikiTodo,
|
\ VimwikiTodo,
|
||||||
\ VimwikiBoldT,
|
\ VimwikiBoldT,
|
||||||
\ VimwikiItalicT,
|
\ VimwikiItalicT,
|
||||||
@ -227,45 +251,69 @@ syntax match VimwikiTableRow /^\s*|.\+|\s*$/
|
|||||||
syntax match VimwikiCellSeparator
|
syntax match VimwikiCellSeparator
|
||||||
\ /\%(|\)\|\%(-\@<=+\-\@=\)\|\%([|+]\@<=-\+\)/ contained
|
\ /\%(|\)\|\%(-\@<=+\-\@=\)\|\%([|+]\@<=-\+\)/ contained
|
||||||
|
|
||||||
|
|
||||||
" Lists
|
" Lists
|
||||||
execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB').'/'
|
execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB').'/'
|
||||||
execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListDefine').'/'
|
execute 'syntax match VimwikiList /'.vimwiki#vars#get_syntaxlocal('rxListDefine').'/'
|
||||||
execute 'syntax match VimwikiListTodo /'.vimwiki#vars#get_syntaxlocal('rxListItem').'/'
|
execute 'syntax match VimwikiListTodo /'.vimwiki#vars#get_syntaxlocal('rxListItem').'/'
|
||||||
|
|
||||||
if vimwiki#vars#get_global('hl_cb_checked') == 1
|
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')[4].'\]\s.*$/ '.
|
execute 'syntax match VimwikiCheckBoxDone /'.vimwiki#vars#get_syntaxlocal('rxListItemWithoutCB')
|
||||||
\ 'contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
|
\ . '\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
|
elseif vimwiki#vars#get_global('hl_cb_checked') == 2
|
||||||
execute 'syntax match VimwikiCheckBoxDone /'.vimwiki#vars#get_syntaxlocal('rxListItemAndChildren').'/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
|
execute 'syntax match VimwikiCheckBoxDone /'
|
||||||
|
\ . vimwiki#vars#get_syntaxlocal('rxListItemAndChildren')
|
||||||
|
\ .'/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
execute 'syntax match VimwikiEqIn /'.vimwiki#vars#get_syntaxlocal('rxEqIn').'/ contains=VimwikiEqInChar'
|
execute 'syntax match VimwikiEqIn /'.vimwiki#vars#get_syntaxlocal('rxEqIn').
|
||||||
execute 'syntax match VimwikiEqInT /'.vimwiki#vars#get_syntaxlocal('rxEqIn').'/ contained contains=VimwikiEqInCharT'
|
\ '/ 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 VimwikiBold /'.vimwiki#vars#get_syntaxlocal('rxBold').
|
||||||
execute 'syntax match VimwikiBoldT /'.vimwiki#vars#get_syntaxlocal('rxBold').'/ contained contains=VimwikiBoldCharT,@Spell'
|
\ '/ 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 VimwikiItalic /'.vimwiki#vars#get_syntaxlocal('rxItalic').
|
||||||
execute 'syntax match VimwikiItalicT /'.vimwiki#vars#get_syntaxlocal('rxItalic').'/ contained contains=VimwikiItalicCharT,@Spell'
|
\ '/ 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 VimwikiBoldItalic /'.vimwiki#vars#get_syntaxlocal('rxBoldItalic').
|
||||||
execute 'syntax match VimwikiBoldItalicT /'.vimwiki#vars#get_syntaxlocal('rxBoldItalic').'/ contained contains=VimwikiBoldItalicChatT,VimwikiItalicBoldCharT,@Spell'
|
\ '/ 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 VimwikiItalicBold /'.vimwiki#vars#get_syntaxlocal('rxItalicBold').
|
||||||
execute 'syntax match VimwikiItalicBoldT /'.vimwiki#vars#get_syntaxlocal('rxItalicBold').'/ contained contains=VimwikiBoldItalicCharT,VimsikiItalicBoldCharT,@Spell'
|
\ '/ 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 VimwikiDelText /'.vimwiki#vars#get_syntaxlocal('rxDelText').
|
||||||
execute 'syntax match VimwikiDelTextT /'.vimwiki#vars#get_syntaxlocal('rxDelText').'/ contained contains=VimwikiDelTextChar,@Spell'
|
\ '/ 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 VimwikiSuperScript /'.vimwiki#vars#get_syntaxlocal('rxSuperScript').
|
||||||
execute 'syntax match VimwikiSuperScriptT /'.vimwiki#vars#get_syntaxlocal('rxSuperScript').'/ contained contains=VimwikiSuperScriptCharT,@Spell'
|
\ '/ 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 VimwikiSubScript /'.vimwiki#vars#get_syntaxlocal('rxSubScript').
|
||||||
execute 'syntax match VimwikiSubScriptT /'.vimwiki#vars#get_syntaxlocal('rxSubScript').'/ contained contains=VimwikiSubScriptCharT,@Spell'
|
\ '/ 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'
|
||||||
|
|
||||||
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
|
" <hr> horizontal rule
|
||||||
execute 'syntax match VimwikiHR /'.vimwiki#vars#get_syntaxlocal('rxHR').'/'
|
execute 'syntax match VimwikiHR /'.vimwiki#vars#get_syntaxlocal('rxHR').'/'
|
||||||
@ -279,9 +327,14 @@ execute 'syntax region VimwikiMath start=/'.vimwiki#vars#get_syntaxlocal('rxMath
|
|||||||
|
|
||||||
" placeholders
|
" placeholders
|
||||||
syntax match VimwikiPlaceholder /^\s*%nohtml\s*$/
|
syntax match VimwikiPlaceholder /^\s*%nohtml\s*$/
|
||||||
syntax match VimwikiPlaceholder /^\s*%title\%(\s.*\)\?$/ contains=VimwikiPlaceholderParam
|
syntax match VimwikiPlaceholder
|
||||||
syntax match VimwikiPlaceholder /^\s*%template\%(\s.*\)\?$/ contains=VimwikiPlaceholderParam
|
\ /^\s*%title\ze\%(\s.*\)\?$/ nextgroup=VimwikiPlaceholderParam skipwhite
|
||||||
syntax match VimwikiPlaceholderParam /\s.*/ contained
|
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
|
" html tags
|
||||||
if vimwiki#vars#get_global('valid_html_tags') != ''
|
if vimwiki#vars#get_global('valid_html_tags') != ''
|
||||||
@ -291,16 +344,16 @@ if vimwiki#vars#get_global('valid_html_tags') != ''
|
|||||||
execute 'syntax match VimwikiItalic #\c<i>.\{-}</i># contains=VimwikiHTMLTag'
|
execute 'syntax match VimwikiItalic #\c<i>.\{-}</i># contains=VimwikiHTMLTag'
|
||||||
execute 'syntax match VimwikiUnderline #\c<u>.\{-}</u># contains=VimwikiHTMLTag'
|
execute 'syntax match VimwikiUnderline #\c<u>.\{-}</u># contains=VimwikiHTMLTag'
|
||||||
|
|
||||||
execute 'syntax match VimwikiComment /'.vimwiki#vars#get_syntaxlocal('rxComment').'/ contains=@Spell'
|
execute 'syntax match VimwikiComment /'.vimwiki#vars#get_syntaxlocal('rxComment').
|
||||||
|
\ '/ contains=@Spell,VimwikiTodo'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" tags
|
" tags
|
||||||
execute 'syntax match VimwikiTag /'.vimwiki#vars#get_syntaxlocal('rxTags').'/'
|
execute 'syntax match VimwikiTag /'.vimwiki#vars#get_syntaxlocal('rxTags').'/'
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" header groups highlighting "{{{
|
|
||||||
|
|
||||||
|
" header groups highlighting
|
||||||
if vimwiki#vars#get_global('hl_headers') == 0
|
if vimwiki#vars#get_global('hl_headers') == 0
|
||||||
" Strangely in default colorscheme Title group is not set to bold for cterm...
|
" Strangely in default colorscheme Title group is not set to bold for cterm...
|
||||||
if !exists("g:colors_name")
|
if !exists("g:colors_name")
|
||||||
@ -311,12 +364,13 @@ if vimwiki#vars#get_global('hl_headers') == 0
|
|||||||
endfor
|
endfor
|
||||||
else
|
else
|
||||||
for s:i in range(1,6)
|
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('ctermfg_'.&bg)[s:i-1].' term=bold cterm=bold'
|
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
|
endfor
|
||||||
endif
|
endif
|
||||||
"}}}
|
|
||||||
|
|
||||||
" syntax group highlighting "{{{
|
|
||||||
|
|
||||||
hi def link VimwikiMarkers Normal
|
hi def link VimwikiMarkers Normal
|
||||||
|
|
||||||
@ -354,7 +408,6 @@ hi def link VimwikiLinkT VimwikiLink
|
|||||||
hi def link VimwikiList Identifier
|
hi def link VimwikiList Identifier
|
||||||
hi def link VimwikiListTodo VimwikiList
|
hi def link VimwikiListTodo VimwikiList
|
||||||
hi def link VimwikiCheckBoxDone Comment
|
hi def link VimwikiCheckBoxDone Comment
|
||||||
hi def link VimwikiEmoticons Character
|
|
||||||
hi def link VimwikiHR Identifier
|
hi def link VimwikiHR Identifier
|
||||||
hi def link VimwikiTag Keyword
|
hi def link VimwikiTag Keyword
|
||||||
|
|
||||||
@ -398,15 +451,17 @@ hi def link VimwikiCodeCharT VimwikiMarkers
|
|||||||
hi def link VimwikiHeaderCharT VimwikiMarkers
|
hi def link VimwikiHeaderCharT VimwikiMarkers
|
||||||
hi def link VimwikiLinkCharT VimwikiLinkT
|
hi def link VimwikiLinkCharT VimwikiLinkT
|
||||||
hi def link VimwikiNoExistsLinkCharT VimwikiNoExistsLinkT
|
hi def link VimwikiNoExistsLinkCharT VimwikiNoExistsLinkT
|
||||||
"}}}
|
|
||||||
|
|
||||||
" Load syntax-specific functionality
|
" Load syntax-specific functionality
|
||||||
call vimwiki#u#reload_regexes_custom()
|
call vimwiki#u#reload_regexes_custom()
|
||||||
|
|
||||||
|
|
||||||
" FIXME it now does not make sense to pretend there is a single syntax "vimwiki"
|
" FIXME it now does not make sense to pretend there is a single syntax "vimwiki"
|
||||||
let b:current_syntax="vimwiki"
|
let b:current_syntax="vimwiki"
|
||||||
|
|
||||||
" EMBEDDED syntax setup "{{{
|
|
||||||
|
" EMBEDDED syntax setup
|
||||||
let s:nested = vimwiki#vars#get_wikilocal('nested_syntaxes')
|
let s:nested = vimwiki#vars#get_wikilocal('nested_syntaxes')
|
||||||
if vimwiki#vars#get_wikilocal('automatic_nested_syntaxes')
|
if vimwiki#vars#get_wikilocal('automatic_nested_syntaxes')
|
||||||
let s:nested = extend(s:nested, vimwiki#base#detect_nested_syntax(), "keep")
|
let s:nested = extend(s:nested, vimwiki#base#detect_nested_syntax(), "keep")
|
||||||
@ -419,12 +474,14 @@ if !empty(s:nested)
|
|||||||
\ vimwiki#vars#get_syntaxlocal('rxPreEnd'), 'VimwikiPre')
|
\ vimwiki#vars#get_syntaxlocal('rxPreEnd'), 'VimwikiPre')
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
" LaTeX
|
" LaTeX
|
||||||
call vimwiki#base#nested_syntax('tex',
|
call vimwiki#base#nested_syntax('tex',
|
||||||
\ vimwiki#vars#get_syntaxlocal('rxMathStart').'\%(.*[[:blank:][:punct:]]\)\?'.
|
\ vimwiki#vars#get_syntaxlocal('rxMathStart').'\%(.*[[:blank:][:punct:]]\)\?'.
|
||||||
\ '\%([[:blank:][:punct:]].*\)\?',
|
\ '\%([[:blank:][:punct:]].*\)\?',
|
||||||
\ vimwiki#vars#get_syntaxlocal('rxMathEnd'), 'VimwikiMath')
|
\ vimwiki#vars#get_syntaxlocal('rxMathEnd'), 'VimwikiMath')
|
||||||
"}}}
|
|
||||||
|
|
||||||
|
|
||||||
syntax spell toplevel
|
syntax spell toplevel
|
||||||
|
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki syntax file
|
" Vimwiki syntax file
|
||||||
" Desc: Defines default syntax
|
" Description: Defines default syntax
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
|
|
||||||
" s:default_syntax is kind of a reference to the dict in
|
" s:default_syntax is kind of a reference to the dict in
|
||||||
" g:vimwiki_syntax_variables['default']. It is used here simply as an
|
" g:vimwiki_syntax_variables['default']. It is used here simply as an
|
||||||
" abbreviation for the latter.
|
" abbreviation for the latter.
|
||||||
let s:default_syntax = g:vimwiki_syntax_variables['default']
|
let s:default_syntax = g:vimwiki_syntax_variables['default']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" text: $ equation_inline $
|
" text: $ equation_inline $
|
||||||
let s:default_syntax.rxEqIn = '\$[^$`]\+\$'
|
let s:default_syntax.rxEqIn = '\$[^$`]\+\$'
|
||||||
let s:default_syntax.char_eqin = '\$'
|
let s:default_syntax.char_eqin = '\$'
|
||||||
@ -97,8 +100,11 @@ let s:default_syntax.rxTags = '\%(^\|\s\)\@<=:\%([^:''[:space:]]\+:\)\+\%(\s\|$\
|
|||||||
|
|
||||||
let s:default_syntax.header_search = '^\s*\(=\{1,6}\)\([^=].*[^=]\)\1\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.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_search = '\%(^\|\s\|[[:punct:]]\)\@<=\*\zs\%([^*`[:space:]][^*`]*'.
|
||||||
let s:default_syntax.bold_match = '\%(^\|\s\|[[:punct:]]\)\@<=\*__Text__\*\%([[:punct:]]\|\s\|$\)\@='
|
\ '[^*`[: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.wikilink = '\[\[\zs[^\\\]|]\+\ze\%(|[^\\\]]\+\)\?\]\]'
|
||||||
let s:default_syntax.tag_search = '\(^\|\s\)\zs:\([^:''[:space:]]\+:\)\+\ze\(\s\|$\)'
|
let s:default_syntax.tag_search = '\(^\|\s\)\zs:\([^:''[:space:]]\+:\)\+\ze\(\s\|$\)'
|
||||||
let s:default_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:\([^:[:space:]]\+:\)*\(\s\|$\)'
|
let s:default_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:'.
|
||||||
|
\ '\([^:[:space:]]\+:\)*\(\s\|$\)'
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki syntax file
|
" Vimwiki syntax file
|
||||||
" Desc: Defines markdown syntax
|
" Description: Defines markdown syntax
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
|
|
||||||
" see the comments in vimwiki_default.vim for some info about this file
|
" see the comments in vimwiki_default.vim for some info about this file
|
||||||
|
|
||||||
|
|
||||||
let s:markdown_syntax = g:vimwiki_syntax_variables['markdown']
|
let s:markdown_syntax = g:vimwiki_syntax_variables['markdown']
|
||||||
|
|
||||||
" text: $ equation_inline $
|
" text: $ equation_inline $
|
||||||
@ -87,13 +89,16 @@ let s:markdown_syntax.rxPreEnd = '```'
|
|||||||
let s:markdown_syntax.rxMathStart = '\$\$'
|
let s:markdown_syntax.rxMathStart = '\$\$'
|
||||||
let s:markdown_syntax.rxMathEnd = '\$\$'
|
let s:markdown_syntax.rxMathEnd = '\$\$'
|
||||||
|
|
||||||
let s:markdown_syntax.rxComment = '^\s*%%.*$'
|
let s:markdown_syntax.rxComment = '^\s*%%.*$\|<!--[^>]*-->'
|
||||||
let s:markdown_syntax.rxTags = '\%(^\|\s\)\@<=:\%([^:[:space:]]\+:\)\+\%(\s\|$\)\@='
|
let s:markdown_syntax.rxTags = '\%(^\|\s\)\@<=:\%([^:[:space:]]\+:\)\+\%(\s\|$\)\@='
|
||||||
|
|
||||||
let s:markdown_syntax.header_search = '^\s*\(#\{1,6}\)\([^#].*\)$'
|
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.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_search = '\%(^\|\s\|[[:punct:]]\)\@<=\*\zs'.
|
||||||
let s:markdown_syntax.bold_match = '\%(^\|\s\|[[:punct:]]\)\@<=\*__Text__\*\%([[:punct:]]\|\s\|$\)\@='
|
\ '\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)\ze\*\%([[:punct:]]\|\s\|$\)\@='
|
||||||
let s:markdown_syntax.wikilink = '\[\[\zs[^\\\]|]\+\ze\%(|[^\\\]]\+\)\?\]\]' "XXX plus markdown-style links
|
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_search = '\(^\|\s\)\zs:\([^:''[:space:]]\+:\)\+\ze\(\s\|$\)'
|
||||||
let s:markdown_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:\([^:[:space:]]\+:\)*\(\s\|$\)'
|
let s:markdown_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:'.
|
||||||
|
\ '\([^:[:space:]]\+:\)*\(\s\|$\)'
|
||||||
|
@ -4,41 +4,44 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function! s:add_target_syntax_ON(target, type)
|
||||||
" LINKS: highlighting is complicated due to "nonexistent" links feature {{{
|
|
||||||
function! s:add_target_syntax_ON(target, type) " {{{
|
|
||||||
let prefix0 = 'syntax match '.a:type.' `'
|
let prefix0 = 'syntax match '.a:type.' `'
|
||||||
let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
|
let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
|
||||||
let prefix1 = 'syntax match '.a:type.'T `'
|
let prefix1 = 'syntax match '.a:type.'T `'
|
||||||
let suffix1 = '` display contained'
|
let suffix1 = '` display contained'
|
||||||
execute prefix0. a:target. suffix0
|
execute prefix0. a:target. suffix0
|
||||||
execute prefix1. a:target. suffix1
|
execute prefix1. a:target. suffix1
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:add_target_syntax_OFF(target, type) " {{{
|
|
||||||
|
function! s:add_target_syntax_OFF(target, type)
|
||||||
let prefix0 = 'syntax match VimwikiNoExistsLink `'
|
let prefix0 = 'syntax match VimwikiNoExistsLink `'
|
||||||
let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
|
let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
|
||||||
let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
|
let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
|
||||||
let suffix1 = '` display contained'
|
let suffix1 = '` display contained'
|
||||||
execute prefix0. a:target. suffix0
|
execute prefix0. a:target. suffix0
|
||||||
execute prefix1. a:target. suffix1
|
execute prefix1. a:target. suffix1
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:wrap_wikilink1_rx(target) "{{{
|
|
||||||
|
function! s:wrap_wikilink1_rx(target)
|
||||||
return vimwiki#vars#get_syntaxlocal('rxWikiLink1InvalidPrefix') . a:target.
|
return vimwiki#vars#get_syntaxlocal('rxWikiLink1InvalidPrefix') . a:target.
|
||||||
\ vimwiki#vars#get_syntaxlocal('rxWikiLink1InvalidSuffix')
|
\ vimwiki#vars#get_syntaxlocal('rxWikiLink1InvalidSuffix')
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:existing_mkd_refs() "{{{
|
|
||||||
|
function! s:existing_mkd_refs()
|
||||||
return keys(vimwiki#markdown_base#scan_reflinks())
|
return keys(vimwiki#markdown_base#scan_reflinks())
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
function! s:highlight_existing_links() "{{{
|
|
||||||
|
function! s:highlight_existing_links()
|
||||||
" Wikilink1
|
" Wikilink1
|
||||||
" Conditional highlighting that depends on the existence of a wiki file or
|
" Conditional highlighting that depends on the existence of a wiki file or
|
||||||
" directory is only available for *schemeless* wiki links
|
" directory is only available for *schemeless* wiki links
|
||||||
" Links are set up upon BufEnter (see plugin/...)
|
" Links are set up upon BufEnter (see plugin/...)
|
||||||
let safe_links = '\%('.vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikifiles')) .
|
let safe_links = '\%('.
|
||||||
|
\ vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikifiles')) .
|
||||||
\ '\%(#[^|]*\)\?\|#[^|]*\)'
|
\ '\%(#[^|]*\)\?\|#[^|]*\)'
|
||||||
" Wikilink1 Dirs set up upon BufEnter (see plugin/...)
|
" Wikilink1 Dirs set up upon BufEnter (see plugin/...)
|
||||||
let safe_dirs = vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikidirs'))
|
let safe_dirs = vimwiki#base#file_pattern(vimwiki#vars#get_bufferlocal('existing_wikidirs'))
|
||||||
@ -78,7 +81,7 @@ function! s:highlight_existing_links() "{{{
|
|||||||
\ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
|
\ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
|
||||||
\ safe_reflinks, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
|
\ safe_reflinks, vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
|
||||||
call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
|
call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
|
||||||
endfunction "}}}
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
" use max highlighting - could be quite slow if there are too many wikifiles
|
" use max highlighting - could be quite slow if there are too many wikifiles
|
||||||
@ -93,9 +96,11 @@ else
|
|||||||
call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), 'VimwikiWikiLink1')
|
call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWikiLink1'), 'VimwikiWikiLink1')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
" Weblink
|
" Weblink
|
||||||
call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWeblink1'), 'VimwikiWeblink1')
|
call s:add_target_syntax_ON(vimwiki#vars#get_syntaxlocal('rxWeblink1'), 'VimwikiWeblink1')
|
||||||
|
|
||||||
|
|
||||||
" WikiLink
|
" WikiLink
|
||||||
" All remaining schemes are highlighted automatically
|
" All remaining schemes are highlighted automatically
|
||||||
let s:rxSchemes = '\%('.
|
let s:rxSchemes = '\%('.
|
||||||
@ -106,26 +111,28 @@ let s:rxSchemes = '\%('.
|
|||||||
" a) match [nonwiki-scheme-URL]
|
" a) match [nonwiki-scheme-URL]
|
||||||
let s:target = vimwiki#base#apply_template(
|
let s:target = vimwiki#base#apply_template(
|
||||||
\ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
|
\ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template1')),
|
||||||
\ s:rxSchemes . vimwiki#vars#get_syntaxlocal('rxWikiLink1Url'), vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
|
\ 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')
|
call s:add_target_syntax_ON(s:wrap_wikilink1_rx(s:target), 'VimwikiWikiLink1')
|
||||||
" b) match [DESCRIPTION][nonwiki-scheme-URL]
|
" b) match [DESCRIPTION][nonwiki-scheme-URL]
|
||||||
let s:target = vimwiki#base#apply_template(
|
let s:target = vimwiki#base#apply_template(
|
||||||
\ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
|
\ vimwiki#u#escape(vimwiki#vars#get_syntaxlocal('WikiLink1Template2')),
|
||||||
\ s:rxSchemes . vimwiki#vars#get_syntaxlocal('rxWikiLink1Url'), vimwiki#vars#get_syntaxlocal('rxWikiLink1Descr'), '')
|
\ 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')
|
call s:add_target_syntax_ON(s:wrap_wikilink1_rx(s:target), 'VimwikiWikiLink1')
|
||||||
" }}}
|
|
||||||
|
|
||||||
|
|
||||||
" generic headers "{{{
|
|
||||||
|
|
||||||
" Header levels, 1-6
|
" Header levels, 1-6
|
||||||
for s:i in range(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'
|
execute 'syntax match VimwikiHeader'.s:i.' /'.vimwiki#vars#get_syntaxlocal('rxH'.s:i).
|
||||||
|
\ '/ contains=VimwikiTodo,VimwikiHeaderChar,VimwikiNoExistsLink,VimwikiCode,'.
|
||||||
|
\ 'VimwikiLink,VimwikiWeblink1,VimwikiWikiLink1,@Spell'
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" concealed chars " {{{
|
|
||||||
|
" concealed chars
|
||||||
if exists("+conceallevel")
|
if exists("+conceallevel")
|
||||||
syntax conceal on
|
syntax conceal on
|
||||||
endif
|
endif
|
||||||
@ -136,24 +143,26 @@ syntax spell toplevel
|
|||||||
" is present) and may be concealed
|
" is present) and may be concealed
|
||||||
let s:options = ' contained transparent contains=NONE'
|
let s:options = ' contained transparent contains=NONE'
|
||||||
" conceal wikilink1
|
" conceal wikilink1
|
||||||
execute 'syn match VimwikiWikiLink1Char /'.vimwiki#vars#get_syntaxlocal('rx_wikilink_md_prefix').'/'.s:options
|
execute 'syn match VimwikiWikiLink1Char /'.
|
||||||
execute 'syn match VimwikiWikiLink1Char /'.vimwiki#vars#get_syntaxlocal('rx_wikilink_md_suffix').'/'.s:options
|
\ vimwiki#vars#get_syntaxlocal('rx_wikilink_md_prefix').'/'.s:options
|
||||||
execute 'syn match VimwikiWikiLink1Char /'.vimwiki#vars#get_syntaxlocal('rxWikiLink1Prefix1').'/'.s:options
|
execute 'syn match VimwikiWikiLink1Char /'.
|
||||||
execute 'syn match VimwikiWikiLink1Char /'.vimwiki#vars#get_syntaxlocal('rxWikiLink1Suffix1').'/'.s:options
|
\ 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
|
" conceal weblink1
|
||||||
execute 'syn match VimwikiWeblink1Char "'.vimwiki#vars#get_syntaxlocal('rxWeblink1Prefix1').'"'.s:options
|
execute 'syn match VimwikiWeblink1Char "'.
|
||||||
execute 'syn match VimwikiWeblink1Char "'.vimwiki#vars#get_syntaxlocal('rxWeblink1Suffix1').'"'.s:options
|
\ vimwiki#vars#get_syntaxlocal('rxWeblink1Prefix1').'"'.s:options
|
||||||
|
execute 'syn match VimwikiWeblink1Char "'.
|
||||||
|
\ vimwiki#vars#get_syntaxlocal('rxWeblink1Suffix1').'"'.s:options
|
||||||
|
|
||||||
if exists("+conceallevel")
|
if exists("+conceallevel")
|
||||||
syntax conceal off
|
syntax conceal off
|
||||||
endif
|
endif
|
||||||
" }}}
|
|
||||||
|
|
||||||
" non concealed chars " {{{
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" main syntax groups {{{
|
|
||||||
|
|
||||||
" Tables
|
" Tables
|
||||||
syntax match VimwikiTableRow /^\s*|.\+|\s*$/
|
syntax match VimwikiTableRow /^\s*|.\+|\s*$/
|
||||||
@ -162,7 +171,6 @@ syntax match VimwikiTableRow /^\s*|.\+|\s*$/
|
|||||||
\ VimwikiWeblink1T,
|
\ VimwikiWeblink1T,
|
||||||
\ VimwikiWikiLink1T,
|
\ VimwikiWikiLink1T,
|
||||||
\ VimwikiNoExistsLinkT,
|
\ VimwikiNoExistsLinkT,
|
||||||
\ VimwikiEmoticons,
|
|
||||||
\ VimwikiTodo,
|
\ VimwikiTodo,
|
||||||
\ VimwikiBoldT,
|
\ VimwikiBoldT,
|
||||||
\ VimwikiItalicT,
|
\ VimwikiItalicT,
|
||||||
@ -175,22 +183,12 @@ syntax match VimwikiTableRow /^\s*|.\+|\s*$/
|
|||||||
\ VimwikiEqInT,
|
\ VimwikiEqInT,
|
||||||
\ @Spell
|
\ @Spell
|
||||||
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" header groups highlighting "{{{
|
|
||||||
"}}}
|
|
||||||
|
|
||||||
|
|
||||||
" syntax group highlighting "{{{
|
" syntax group highlighting
|
||||||
hi def link VimwikiWeblink1 VimwikiLink
|
hi def link VimwikiWeblink1 VimwikiLink
|
||||||
hi def link VimwikiWeblink1T VimwikiLink
|
hi def link VimwikiWeblink1T VimwikiLink
|
||||||
|
|
||||||
hi def link VimwikiWikiLink1 VimwikiLink
|
hi def link VimwikiWikiLink1 VimwikiLink
|
||||||
hi def link VimwikiWikiLink1T VimwikiLink
|
hi def link VimwikiWikiLink1T VimwikiLink
|
||||||
"}}}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" EMBEDDED syntax setup "{{{
|
|
||||||
"}}}
|
|
||||||
"
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
|
" vim:tabstop=2:shiftwidth=2:expandtab:textwidth=99
|
||||||
" Vimwiki syntax file
|
" Vimwiki syntax file
|
||||||
" Desc: Defines mediaWiki syntax
|
" Description: Defines mediaWiki syntax
|
||||||
" Home: https://github.com/vimwiki/vimwiki/
|
" Home: https://github.com/vimwiki/vimwiki/
|
||||||
|
|
||||||
|
|
||||||
" see the comments in vimwiki_default.vim for some info about this file
|
" see the comments in vimwiki_default.vim for some info about this file
|
||||||
|
|
||||||
|
|
||||||
let s:media_syntax = g:vimwiki_syntax_variables['media']
|
let s:media_syntax = g:vimwiki_syntax_variables['media']
|
||||||
|
|
||||||
" text: $ equation_inline $
|
" text: $ equation_inline $
|
||||||
@ -78,5 +80,6 @@ let s:media_syntax.bold_match = '''''''__Text__'''''''
|
|||||||
" ^- this strange looking thing is equivalent to "'''__Text__'''" but since we later
|
" ^- 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
|
" 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.wikilink = '\[\[\zs[^\\\]|]\+\ze\%(|[^\\\]]\+\)\?\]\]'
|
||||||
let s:media_syntax.tag_search = '\(^\|\s\)\zs:\([^:''[:space:]]\+:\)\+\ze\(\s\|$\)' " XXX rework to mediawiki categories format?
|
let s:media_syntax.tag_search = '\(^\|\s\)\zs:\([^:''[:space:]]\+:\)\+\ze\(\s\|$\)'
|
||||||
let s:media_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:\([^:[:space:]]\+:\)*\(\s\|$\)' " XXX rework to mediawiki categories format?
|
let s:media_syntax.tag_match = '\(^\|\s\):\([^:''[:space:]]\+:\)*__Tag__:'.
|
||||||
|
\ '\([^:[:space:]]\+:\)*\(\s\|$\)'
|
||||||
|
Loading…
Reference in New Issue
Block a user