Version 0.9.9
* NEW: Diary. Help in making daily notes. See ':h vimwiki-diary'. Now you can really easy add information into vimwiki that should be sorted out later. * NEW: Tables are redesigned. Syntax is changed. Now they are auto-formattable. You can navigate them with <tab> and <cr> in insert mode. See 'vimwiki-syntax-tables' and 'vimwiki-tables' for more details. * NEW: Keyword STARTED: is added. * NEW: Words TODO:, DONE:, STARTED:, XXX:, FIXME:, FIXED: are highlighed inside headers. * FIX: Export to html external links with 'file://' protocol. Ex: '[file:///home/user1/book.pdf my book]'. * FIX: Menu is corrupted if wiki's path contains spaces. * FIX: Settings 'wrap' and 'linebreak' are removed from ftplugin. Add them into your personal settings file '.vim/after/ftplugin/vimwiki.vim' if needed. * NEW: Headers are highlighted in different colors by default. See ':h g:vimwiki_hl_headers' to turn it off. * FIX: Issue 40: Links with russian subdirs don't work. * NEW: It is now possible to generate HTML files automatically on page save. See ':h vimwiki-option-auto_export'.
This commit is contained in:
		@@ -23,10 +23,17 @@ function! s:chomp_slash(str) "{{{
 | 
				
			|||||||
  return substitute(a:str, '[/\\]\+$', '', '')
 | 
					  return substitute(a:str, '[/\\]\+$', '', '')
 | 
				
			||||||
endfunction "}}}
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:is_windows()
 | 
				
			||||||
 | 
					  return has("win32") || has("win64") || has("win95") || has("win16")
 | 
				
			||||||
 | 
					endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! vimwiki#mkdir(path) "{{{
 | 
					function! vimwiki#mkdir(path) "{{{
 | 
				
			||||||
  let path = expand(a:path)
 | 
					  let path = expand(a:path)
 | 
				
			||||||
  if !isdirectory(path) && exists("*mkdir")
 | 
					  if !isdirectory(path) && exists("*mkdir")
 | 
				
			||||||
    let path = s:chomp_slash(path)
 | 
					    let path = s:chomp_slash(path)
 | 
				
			||||||
 | 
					    if s:is_windows() && !empty(g:vimwiki_w32_dir_enc)
 | 
				
			||||||
 | 
					      let path = iconv(path, &enc, g:vimwiki_w32_dir_enc)
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
    call mkdir(path, "p")
 | 
					    call mkdir(path, "p")
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
@@ -62,6 +69,25 @@ function! vimwiki#current_subdir()"{{{
 | 
				
			|||||||
  return vimwiki#subdir(VimwikiGet('path'), expand('%:p'))
 | 
					  return vimwiki#subdir(VimwikiGet('path'), expand('%:p'))
 | 
				
			||||||
endfunction"}}}
 | 
					endfunction"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! vimwiki#open_link(cmd, link, ...) "{{{
 | 
				
			||||||
 | 
					  if s:is_link_to_non_wiki_file(a:link)
 | 
				
			||||||
 | 
					    call s:edit_file(a:cmd, a:link)
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    if a:0
 | 
				
			||||||
 | 
					      let vimwiki_prev_link = [a:1, []]
 | 
				
			||||||
 | 
					    elseif &ft == 'vimwiki'
 | 
				
			||||||
 | 
					      let vimwiki_prev_link = [expand('%:p'), getpos('.')]
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    call s:edit_file(a:cmd, VimwikiGet('path').a:link.VimwikiGet('ext'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if exists('vimwiki_prev_link')
 | 
				
			||||||
 | 
					      let b:vimwiki_prev_link = vimwiki_prev_link
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					endfunction
 | 
				
			||||||
 | 
					" }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:filename(link) "{{{
 | 
					function! s:filename(link) "{{{
 | 
				
			||||||
  let result = vimwiki#safe_link(a:link)
 | 
					  let result = vimwiki#safe_link(a:link)
 | 
				
			||||||
  if a:link =~ '|'
 | 
					  if a:link =~ '|'
 | 
				
			||||||
@@ -165,11 +191,13 @@ function! s:print_wiki_list() "{{{
 | 
				
			|||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
" }}}
 | 
					" }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:wiki_select(wnum)"{{{
 | 
					function! vimwiki#select(wnum)"{{{
 | 
				
			||||||
  if a:wnum < 1 || a:wnum > len(g:vimwiki_list)
 | 
					  if a:wnum < 1 || a:wnum > len(g:vimwiki_list)
 | 
				
			||||||
    return
 | 
					    return
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  let b:vimwiki_idx = g:vimwiki_current_idx
 | 
					  if &ft == 'vimwiki'
 | 
				
			||||||
 | 
					    let b:vimwiki_idx = g:vimwiki_current_idx
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
  let g:vimwiki_current_idx = a:wnum - 1
 | 
					  let g:vimwiki_current_idx = a:wnum - 1
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
" }}}
 | 
					" }}}
 | 
				
			||||||
@@ -260,7 +288,7 @@ function! s:get_wiki_buffers() "{{{
 | 
				
			|||||||
    if bufexists(bcount)
 | 
					    if bufexists(bcount)
 | 
				
			||||||
      let bname = fnamemodify(bufname(bcount), ":p")
 | 
					      let bname = fnamemodify(bufname(bcount), ":p")
 | 
				
			||||||
      if bname =~ VimwikiGet('ext')."$"
 | 
					      if bname =~ VimwikiGet('ext')."$"
 | 
				
			||||||
        let bitem = [bname, getbufvar(bname, "vimwiki_prev_word")]
 | 
					        let bitem = [bname, getbufvar(bname, "vimwiki_prev_link")]
 | 
				
			||||||
        call add(blist, bitem)
 | 
					        call add(blist, bitem)
 | 
				
			||||||
      endif
 | 
					      endif
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
@@ -273,7 +301,7 @@ endfunction
 | 
				
			|||||||
function! s:open_wiki_buffer(item) "{{{
 | 
					function! s:open_wiki_buffer(item) "{{{
 | 
				
			||||||
  call s:edit_file('e', a:item[0])
 | 
					  call s:edit_file('e', a:item[0])
 | 
				
			||||||
  if !empty(a:item[1])
 | 
					  if !empty(a:item[1])
 | 
				
			||||||
    call setbufvar(a:item[0], "vimwiki_prev_word", a:item[1])
 | 
					    call setbufvar(a:item[0], "vimwiki_prev_link", a:item[1])
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
" }}}
 | 
					" }}}
 | 
				
			||||||
@@ -388,8 +416,8 @@ function! vimwiki#WikiFollowWord(split) "{{{
 | 
				
			|||||||
    let cmd = ":e "
 | 
					    let cmd = ":e "
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let word = s:strip_word(s:get_word_at_cursor(g:vimwiki_rxWikiWord))
 | 
					  let link = s:strip_word(s:get_word_at_cursor(g:vimwiki_rxWikiWord))
 | 
				
			||||||
  if word == ""
 | 
					  if link == ""
 | 
				
			||||||
    let weblink = s:strip_word(s:get_word_at_cursor(g:vimwiki_rxWeblink))
 | 
					    let weblink = s:strip_word(s:get_word_at_cursor(g:vimwiki_rxWeblink))
 | 
				
			||||||
    if weblink != ""
 | 
					    if weblink != ""
 | 
				
			||||||
      call VimwikiWeblinkHandler(weblink)
 | 
					      call VimwikiWeblinkHandler(weblink)
 | 
				
			||||||
@@ -399,21 +427,16 @@ function! vimwiki#WikiFollowWord(split) "{{{
 | 
				
			|||||||
    return
 | 
					    return
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if s:is_link_to_non_wiki_file(word)
 | 
					  let subdir = vimwiki#current_subdir()
 | 
				
			||||||
    call s:edit_file(cmd, word)
 | 
					  call vimwiki#open_link(cmd, subdir.link)
 | 
				
			||||||
  else
 | 
					
 | 
				
			||||||
    let vimwiki_prev_word = [expand('%:p'), getpos('.')]
 | 
					 | 
				
			||||||
    let subdir = vimwiki#current_subdir()
 | 
					 | 
				
			||||||
    call s:edit_file(cmd, VimwikiGet('path').subdir.word.VimwikiGet('ext'))
 | 
					 | 
				
			||||||
    let b:vimwiki_prev_word = vimwiki_prev_word
 | 
					 | 
				
			||||||
  endif
 | 
					 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
" }}}
 | 
					" }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! vimwiki#WikiGoBackWord() "{{{
 | 
					function! vimwiki#WikiGoBackWord() "{{{
 | 
				
			||||||
  if exists("b:vimwiki_prev_word")
 | 
					  if exists("b:vimwiki_prev_link")
 | 
				
			||||||
    " go back to saved WikiWord
 | 
					    " go back to saved WikiWord
 | 
				
			||||||
    let prev_word = b:vimwiki_prev_word
 | 
					    let prev_word = b:vimwiki_prev_link
 | 
				
			||||||
    execute ":e ".substitute(prev_word[0], '\s', '\\\0', 'g')
 | 
					    execute ":e ".substitute(prev_word[0], '\s', '\\\0', 'g')
 | 
				
			||||||
    call setpos('.', prev_word[1])
 | 
					    call setpos('.', prev_word[1])
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
@@ -421,7 +444,7 @@ endfunction
 | 
				
			|||||||
" }}}
 | 
					" }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! vimwiki#WikiGoHome(index) "{{{
 | 
					function! vimwiki#WikiGoHome(index) "{{{
 | 
				
			||||||
  call s:wiki_select(a:index)
 | 
					  call vimwiki#select(a:index)
 | 
				
			||||||
  call vimwiki#mkdir(VimwikiGet('path'))
 | 
					  call vimwiki#mkdir(VimwikiGet('path'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  try
 | 
					  try
 | 
				
			||||||
@@ -523,7 +546,7 @@ function! vimwiki#WikiRenameWord() "{{{
 | 
				
			|||||||
  let &buftype="nofile"
 | 
					  let &buftype="nofile"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let cur_buffer = [expand('%:p'),
 | 
					  let cur_buffer = [expand('%:p'),
 | 
				
			||||||
        \getbufvar(expand('%:p'), "vimwiki_prev_word")]
 | 
					        \getbufvar(expand('%:p'), "vimwiki_prev_link")]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let blist = s:get_wiki_buffers()
 | 
					  let blist = s:get_wiki_buffers()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										216
									
								
								autoload/vimwiki_diary.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										216
									
								
								autoload/vimwiki_diary.vim
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,216 @@
 | 
				
			|||||||
 | 
					" Vimwiki autoload plugin file
 | 
				
			||||||
 | 
					" Desc: Handle diary notes
 | 
				
			||||||
 | 
					" Author: Maxim Kim <habamax@gmail.com>
 | 
				
			||||||
 | 
					" Home: http://code.google.com/p/vimwiki/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Load only once {{{
 | 
				
			||||||
 | 
					if exists("g:loaded_vimwiki_diary_auto") || &cp
 | 
				
			||||||
 | 
					  finish
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					let g:loaded_vimwiki_diary_auto = 1
 | 
				
			||||||
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:prefix_zero(num) "{{{
 | 
				
			||||||
 | 
					  if a:num < 10
 | 
				
			||||||
 | 
					    return '0'.a:num
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					  return a:num
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:desc(d1, d2) "{{{
 | 
				
			||||||
 | 
					  return a:d1 == a:d2 ? 0 : a:d1 < a:d2 ? 1 : -1
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:get_date_link(fmt) "{{{
 | 
				
			||||||
 | 
					  return strftime(a:fmt)
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:link_exists(lines, link) "{{{
 | 
				
			||||||
 | 
					  let link_exists = 0
 | 
				
			||||||
 | 
					  for line in a:lines
 | 
				
			||||||
 | 
					    if line =~ escape(a:link, '[]\')
 | 
				
			||||||
 | 
					      let link_exists = 1
 | 
				
			||||||
 | 
					      break
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					  return link_exists
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:diary_path() "{{{
 | 
				
			||||||
 | 
					  return VimwikiGet('path').VimwikiGet('diary_rel_path')
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:diary_index() "{{{
 | 
				
			||||||
 | 
					  return s:diary_path().VimwikiGet('diary_index').VimwikiGet('ext')
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:get_diary_range(lines, header) "{{{
 | 
				
			||||||
 | 
					  let rx = '\[\[\d\{4}-\d\d-\d\d\]\]'
 | 
				
			||||||
 | 
					  let idx = 0
 | 
				
			||||||
 | 
					  let ln_start = -1
 | 
				
			||||||
 | 
					  let ln_end = -1
 | 
				
			||||||
 | 
					  for line in a:lines
 | 
				
			||||||
 | 
					    if ln_start != -1
 | 
				
			||||||
 | 
					      if line =~ '^\s*\(=\)\+.*\1\s*$' || (line !~ rx && line !~ '^\s*$')
 | 
				
			||||||
 | 
					        break
 | 
				
			||||||
 | 
					      endif
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					    if line =~ '^\s*\(=\)\+\s*'.a:header.'\s*\1\s*$'
 | 
				
			||||||
 | 
					      let ln_start = idx + 1
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					    let idx += 1
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let ln_end = idx - 1
 | 
				
			||||||
 | 
					  return [ln_start, ln_end]
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:diary_date_link() "{{{
 | 
				
			||||||
 | 
					  return s:get_date_link(VimwikiGet('diary_link_fmt'))
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:get_file_contents(file_name) "{{{
 | 
				
			||||||
 | 
					  let lines = []
 | 
				
			||||||
 | 
					  let bufnr = bufnr(expand(a:file_name))
 | 
				
			||||||
 | 
					  if bufnr != -1
 | 
				
			||||||
 | 
					    let lines = getbufline(bufnr, 1, '$')
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    try
 | 
				
			||||||
 | 
					      let lines = readfile(expand(a:file_name))
 | 
				
			||||||
 | 
					    catch
 | 
				
			||||||
 | 
					    endtry
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					  return [lines, bufnr]
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:get_links() "{{{
 | 
				
			||||||
 | 
					  let rx = '\d\{4}-\d\d-\d\d'
 | 
				
			||||||
 | 
					  let s_links = glob(VimwikiGet('path').VimwikiGet('diary_rel_path').'*.wiki')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  "let s_links = substitute(s_links, '\'.VimwikiGet('ext'), "", "g")
 | 
				
			||||||
 | 
					  let s_links = substitute(s_links, '\.wiki', "", "g")
 | 
				
			||||||
 | 
					  let links = split(s_links, '\n')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " remove backup files (.wiki~)
 | 
				
			||||||
 | 
					  call filter(links, 'v:val !~ ''.*\~$''')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " remove paths
 | 
				
			||||||
 | 
					  call map(links, 'fnamemodify(v:val, ":t")')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  call filter(links, 'v:val =~ "'.escape(rx, '\').'"')
 | 
				
			||||||
 | 
					  call map(links, '"[[".v:val."]]"')
 | 
				
			||||||
 | 
					  return links
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:format_links(links) "{{{
 | 
				
			||||||
 | 
					  let lines = []
 | 
				
			||||||
 | 
					  let line = '| '
 | 
				
			||||||
 | 
					  let idx = 0
 | 
				
			||||||
 | 
					  let trigger = 0
 | 
				
			||||||
 | 
					  while idx < len(a:links)
 | 
				
			||||||
 | 
					    if idx/VimwikiGet('diary_link_count') > trigger
 | 
				
			||||||
 | 
					      let trigger = idx/VimwikiGet('diary_link_count')
 | 
				
			||||||
 | 
					      call add(lines, substitute(line, '\s\+$', '', ''))
 | 
				
			||||||
 | 
					      let line = '| '
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					    let line .= a:links[idx].' | '
 | 
				
			||||||
 | 
					    let idx += 1
 | 
				
			||||||
 | 
					  endwhile
 | 
				
			||||||
 | 
					  call add(lines, substitute(line, '\s\+$', '', ''))
 | 
				
			||||||
 | 
					  call extend(lines, [''])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return lines
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:add_link(page, header, link) "{{{
 | 
				
			||||||
 | 
					  let [lines, bufnr] = s:get_file_contents(a:page)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let [ln_start, ln_end] = s:get_diary_range(lines, a:header)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let link = '[['.a:link.']]'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let link_exists = s:link_exists(lines[ln_start : ln_end], link)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if !link_exists
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ln_start == -1
 | 
				
			||||||
 | 
					      call insert(lines, '= '.a:header.' =')
 | 
				
			||||||
 | 
					      let ln_start = 1
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    " removing 'old' links
 | 
				
			||||||
 | 
					    let idx = ln_end - ln_start
 | 
				
			||||||
 | 
					    while idx > 0
 | 
				
			||||||
 | 
					      call remove(lines, ln_start)
 | 
				
			||||||
 | 
					      let idx -= 1
 | 
				
			||||||
 | 
					    endwhile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    " get all diary links from filesystem
 | 
				
			||||||
 | 
					    let links = s:get_links()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    " add current link
 | 
				
			||||||
 | 
					    if index(links, link) == -1
 | 
				
			||||||
 | 
					      call add(links, link)
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let links = sort(links, 's:desc')
 | 
				
			||||||
 | 
					    call extend(lines, s:format_links(links), ln_start)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if bufnr != -1
 | 
				
			||||||
 | 
					      exe 'buffer '.bufnr
 | 
				
			||||||
 | 
					      if !&readonly
 | 
				
			||||||
 | 
					        1,$delete _
 | 
				
			||||||
 | 
					        call append(1, lines)
 | 
				
			||||||
 | 
					        1,1delete _
 | 
				
			||||||
 | 
					      endif
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      call writefile(lines, expand(a:page))
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:make_date_link(...) "{{{
 | 
				
			||||||
 | 
					  if a:0
 | 
				
			||||||
 | 
					    let link = a:1
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    let link = s:diary_date_link()
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					  let header = VimwikiGet('diary_header')
 | 
				
			||||||
 | 
					  call s:add_link(s:diary_index(), header, link)
 | 
				
			||||||
 | 
					  return VimwikiGet('diary_rel_path').link
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! vimwiki_diary#make_note(index, ...) "{{{
 | 
				
			||||||
 | 
					  call vimwiki#select(a:index)
 | 
				
			||||||
 | 
					  call vimwiki#mkdir(VimwikiGet('path').VimwikiGet('diary_rel_path'))
 | 
				
			||||||
 | 
					  if a:0
 | 
				
			||||||
 | 
					    let link = s:make_date_link(a:1)
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    let link = s:make_date_link()
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					  call vimwiki#open_link(':e ', link, s:diary_index())
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Calendar.vim callback.
 | 
				
			||||||
 | 
					function! vimwiki_diary#calendar_action(day, month, year, week, dir) "{{{
 | 
				
			||||||
 | 
					  let day = s:prefix_zero(a:day)
 | 
				
			||||||
 | 
					  let month = s:prefix_zero(a:month)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let link = a:year.'-'.month.'-'.day
 | 
				
			||||||
 | 
					  if winnr('#') == 0
 | 
				
			||||||
 | 
					    if a:dir == 'V'
 | 
				
			||||||
 | 
					      vsplit
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      split
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    wincmd p
 | 
				
			||||||
 | 
					    if !&hidden && &modified
 | 
				
			||||||
 | 
					      new
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " Create diary note for a selected date in default wiki.
 | 
				
			||||||
 | 
					  call vimwiki_diary#make_note(1, link)
 | 
				
			||||||
 | 
					endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -3,6 +3,8 @@
 | 
				
			|||||||
" Author: Maxim Kim <habamax@gmail.com>
 | 
					" Author: Maxim Kim <habamax@gmail.com>
 | 
				
			||||||
" Home: http://code.google.com/p/vimwiki/
 | 
					" Home: http://code.google.com/p/vimwiki/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" XXX: This file should be refactored!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Load only once {{{
 | 
					" Load only once {{{
 | 
				
			||||||
if exists("g:loaded_vimwiki_html_auto") || &cp
 | 
					if exists("g:loaded_vimwiki_html_auto") || &cp
 | 
				
			||||||
  finish
 | 
					  finish
 | 
				
			||||||
@@ -32,7 +34,7 @@ function! s:remove_blank_lines(lines) " {{{
 | 
				
			|||||||
endfunction "}}}
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:is_web_link(lnk) "{{{
 | 
					function! s:is_web_link(lnk) "{{{
 | 
				
			||||||
  if a:lnk =~ '^\%(https://\|http://\|www.\|ftp://\)'
 | 
					  if a:lnk =~ '^\%(https://\|http://\|www.\|ftp://\|file://\)'
 | 
				
			||||||
    return 1
 | 
					    return 1
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  return 0
 | 
					  return 0
 | 
				
			||||||
@@ -83,7 +85,8 @@ function! s:create_default_CSS(path) " {{{
 | 
				
			|||||||
    call add(lines, 'img {border: none;}')
 | 
					    call add(lines, 'img {border: none;}')
 | 
				
			||||||
    call add(lines, 'pre {border-left: 1px solid #ccc; margin-left: 2em; padding-left: 0.5em;}')
 | 
					    call add(lines, 'pre {border-left: 1px solid #ccc; margin-left: 2em; padding-left: 0.5em;}')
 | 
				
			||||||
    call add(lines, 'blockquote {padding: 0.4em; background-color: #f6f5eb;}')
 | 
					    call add(lines, 'blockquote {padding: 0.4em; background-color: #f6f5eb;}')
 | 
				
			||||||
    call add(lines, 'td {border: 1px solid #ccc; padding: 0.3em;}')
 | 
					    call add(lines, 'th, td {border: 1px solid #ccc; padding: 0.3em;}')
 | 
				
			||||||
 | 
					    call add(lines, 'th {background-color: #f0f0f0;}')
 | 
				
			||||||
    call add(lines, 'hr {border: none; border-top: 1px solid #ccc; width: 100%;}')
 | 
					    call add(lines, 'hr {border: none; border-top: 1px solid #ccc; width: 100%;}')
 | 
				
			||||||
    call add(lines, 'del {text-decoration: line-through; color: #777777;}')
 | 
					    call add(lines, 'del {text-decoration: line-through; color: #777777;}')
 | 
				
			||||||
    call add(lines, '.toc li {list-style-type: none;}')
 | 
					    call add(lines, '.toc li {list-style-type: none;}')
 | 
				
			||||||
@@ -515,9 +518,9 @@ function! s:close_tag_para(para, ldest) "{{{
 | 
				
			|||||||
endfunction "}}}
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:close_tag_table(table, ldest) "{{{
 | 
					function! s:close_tag_table(table, ldest) "{{{
 | 
				
			||||||
  if a:table
 | 
					  if len(a:table)
 | 
				
			||||||
    call insert(a:ldest, "</table>")
 | 
					    call insert(a:ldest, "</table>")
 | 
				
			||||||
    return 0
 | 
					    return []
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  return a:table
 | 
					  return a:table
 | 
				
			||||||
endfunction "}}}
 | 
					endfunction "}}}
 | 
				
			||||||
@@ -774,45 +777,54 @@ function! s:process_tag_hr(line) "{{{
 | 
				
			|||||||
endfunction "}}}
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:process_tag_table(line, table) "{{{
 | 
					function! s:process_tag_table(line, table) "{{{
 | 
				
			||||||
 | 
					  " XXX: This should be refactored!!!
 | 
				
			||||||
  let table = a:table
 | 
					  let table = a:table
 | 
				
			||||||
  let lines = []
 | 
					  let lines = []
 | 
				
			||||||
  let processed = 0
 | 
					  let processed = 0
 | 
				
			||||||
  if a:line =~ '^||.\+||.*'
 | 
					
 | 
				
			||||||
    if !table
 | 
					  if a:line =~ '^\s*|[-+]\+|\s*$' && len(table)
 | 
				
			||||||
      call add(lines, "<table>")
 | 
					    call add(table, [])
 | 
				
			||||||
      let table = 1
 | 
					    let processed = 1
 | 
				
			||||||
 | 
					  elseif a:line =~ '^\s*|.\+|\s*$'
 | 
				
			||||||
 | 
					    if empty(table)
 | 
				
			||||||
 | 
					      let table = [[]]
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      call add(table, [])
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    let processed = 1
 | 
					    let processed = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    call add(lines, "<tr>")
 | 
					    call extend(table[-1], split(a:line, '\s*|\s*'))
 | 
				
			||||||
    let pos1 = 0
 | 
					 | 
				
			||||||
    let pos2 = 0
 | 
					 | 
				
			||||||
    let done = 0
 | 
					 | 
				
			||||||
    while !done
 | 
					 | 
				
			||||||
      let pos1 = stridx(a:line, '||', pos2)
 | 
					 | 
				
			||||||
      let pos2 = stridx(a:line, '||', pos1+2)
 | 
					 | 
				
			||||||
      if pos1==-1 || pos2==-1
 | 
					 | 
				
			||||||
        let done = 1
 | 
					 | 
				
			||||||
        let pos2 = len(a:line)
 | 
					 | 
				
			||||||
      endif
 | 
					 | 
				
			||||||
      let line = strpart(a:line, pos1+2, pos2-pos1-2)
 | 
					 | 
				
			||||||
      if line == ''
 | 
					 | 
				
			||||||
        continue
 | 
					 | 
				
			||||||
      endif
 | 
					 | 
				
			||||||
      if strpart(line, 0, 1) == ' ' &&
 | 
					 | 
				
			||||||
            \ strpart(line, len(line) - 1, 1) == ' '
 | 
					 | 
				
			||||||
        call add(lines, '<td class="justcenter">'.line.'</td>')
 | 
					 | 
				
			||||||
      elseif strpart(line, 0, 1) == ' '
 | 
					 | 
				
			||||||
        call add(lines, '<td class="justright">'.line.'</td>')
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
        call add(lines, '<td class="justleft">'.line.'</td>')
 | 
					 | 
				
			||||||
      endif
 | 
					 | 
				
			||||||
    endwhile
 | 
					 | 
				
			||||||
    call add(lines, "</tr>")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  elseif table
 | 
					  elseif len(table)
 | 
				
			||||||
 | 
					    call add(lines, "<table>")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let head = 0
 | 
				
			||||||
 | 
					    for idx in range(len(table))
 | 
				
			||||||
 | 
					      if empty(table[idx])
 | 
				
			||||||
 | 
					        let head = idx
 | 
				
			||||||
 | 
					        break
 | 
				
			||||||
 | 
					      endif
 | 
				
			||||||
 | 
					    endfor
 | 
				
			||||||
 | 
					    if head > 0
 | 
				
			||||||
 | 
					      for row in table[: head-1]
 | 
				
			||||||
 | 
					        call add(lines, '<tr>')
 | 
				
			||||||
 | 
					        call extend(lines, map(row, '"<th>".v:val."</th>"'))
 | 
				
			||||||
 | 
					        call add(lines, '</tr>')
 | 
				
			||||||
 | 
					      endfor
 | 
				
			||||||
 | 
					      for row in table[head+1 :]
 | 
				
			||||||
 | 
					        call add(lines, '<tr>')
 | 
				
			||||||
 | 
					        call extend(lines, map(row, '"<td>".v:val."</td>"'))
 | 
				
			||||||
 | 
					        call add(lines, '</tr>')
 | 
				
			||||||
 | 
					      endfor
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      for row in table
 | 
				
			||||||
 | 
					        call add(lines, '<tr>')
 | 
				
			||||||
 | 
					        call extend(lines, map(row, '"<td>".v:val."</td>"'))
 | 
				
			||||||
 | 
					        call add(lines, '</tr>')
 | 
				
			||||||
 | 
					      endfor
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
    call add(lines, "</table>")
 | 
					    call add(lines, "</table>")
 | 
				
			||||||
    let table = 0
 | 
					    let table = []
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
  return [processed, lines, table]
 | 
					  return [processed, lines, table]
 | 
				
			||||||
endfunction "}}}
 | 
					endfunction "}}}
 | 
				
			||||||
@@ -820,12 +832,12 @@ endfunction "}}}
 | 
				
			|||||||
"}}}
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" WIKI2HTML "{{{
 | 
					" WIKI2HTML "{{{
 | 
				
			||||||
function! s:wiki2html(line, state) " {{{
 | 
					function! s:parse_line(line, state) " {{{
 | 
				
			||||||
  let state = {}
 | 
					  let state = {}
 | 
				
			||||||
  let state.para = a:state.para
 | 
					  let state.para = a:state.para
 | 
				
			||||||
  let state.quote = a:state.quote
 | 
					  let state.quote = a:state.quote
 | 
				
			||||||
  let state.pre = a:state.pre
 | 
					  let state.pre = a:state.pre
 | 
				
			||||||
  let state.table = a:state.table
 | 
					  let state.table = a:state.table[:]
 | 
				
			||||||
  let state.lists = a:state.lists[:]
 | 
					  let state.lists = a:state.lists[:]
 | 
				
			||||||
  let state.deflist = a:state.deflist
 | 
					  let state.deflist = a:state.deflist
 | 
				
			||||||
  let state.placeholder = a:state.placeholder
 | 
					  let state.placeholder = a:state.placeholder
 | 
				
			||||||
@@ -838,7 +850,7 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  let processed = 0
 | 
					  let processed = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " toc -- placeholder
 | 
					  " toc -- placeholder "{{{
 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
    if line =~ '^\s*%toc'
 | 
					    if line =~ '^\s*%toc'
 | 
				
			||||||
      let processed = 1
 | 
					      let processed = 1
 | 
				
			||||||
@@ -846,14 +858,15 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
      let state.placeholder = ['toc', param]
 | 
					      let state.placeholder = ['toc', param]
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " pres
 | 
					  " pres "{{{
 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
    let [processed, lines, state.pre] = s:process_tag_pre(line, state.pre)
 | 
					    let [processed, lines, state.pre] = s:process_tag_pre(line, state.pre)
 | 
				
			||||||
    if processed && len(state.lists)
 | 
					    if processed && len(state.lists)
 | 
				
			||||||
      call s:close_tag_list(state.lists, lines)
 | 
					      call s:close_tag_list(state.lists, lines)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if processed && state.table
 | 
					    if processed && len(state.table)
 | 
				
			||||||
      let state.table = s:close_tag_table(state.table, lines)
 | 
					      let state.table = s:close_tag_table(state.table, lines)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if processed && state.deflist
 | 
					    if processed && state.deflist
 | 
				
			||||||
@@ -867,8 +880,9 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
    endif
 | 
					    endif
 | 
				
			||||||
    call extend(res_lines, lines)
 | 
					    call extend(res_lines, lines)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " lists
 | 
					  " lists "{{{
 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
    let [processed, lines] = s:process_tag_list(line, state.lists)
 | 
					    let [processed, lines] = s:process_tag_list(line, state.lists)
 | 
				
			||||||
    if processed && state.quote
 | 
					    if processed && state.quote
 | 
				
			||||||
@@ -877,7 +891,7 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
    if processed && state.pre
 | 
					    if processed && state.pre
 | 
				
			||||||
      let state.pre = s:close_tag_pre(state.pre, lines)
 | 
					      let state.pre = s:close_tag_pre(state.pre, lines)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if processed && state.table
 | 
					    if processed && len(state.table)
 | 
				
			||||||
      let state.table = s:close_tag_table(state.table, lines)
 | 
					      let state.table = s:close_tag_table(state.table, lines)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if processed && state.deflist
 | 
					    if processed && state.deflist
 | 
				
			||||||
@@ -891,8 +905,9 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    call extend(res_lines, lines)
 | 
					    call extend(res_lines, lines)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " headers
 | 
					  " headers "{{{
 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
    let [processed, line, h_level, h_text, h_id] = s:process_tag_h(line, state.toc_id)
 | 
					    let [processed, line, h_level, h_text, h_id] = s:process_tag_h(line, state.toc_id)
 | 
				
			||||||
    if processed
 | 
					    if processed
 | 
				
			||||||
@@ -900,6 +915,9 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
      let state.table = s:close_tag_table(state.table, res_lines)
 | 
					      let state.table = s:close_tag_table(state.table, res_lines)
 | 
				
			||||||
      let state.pre = s:close_tag_pre(state.pre, res_lines)
 | 
					      let state.pre = s:close_tag_pre(state.pre, res_lines)
 | 
				
			||||||
      let state.quote = s:close_tag_quote(state.quote, res_lines)
 | 
					      let state.quote = s:close_tag_quote(state.quote, res_lines)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      let line = s:make_tag(line, g:vimwiki_rxTodo, 's:tag_todo')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      call add(res_lines, line)
 | 
					      call add(res_lines, line)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      " gather information for table of contents
 | 
					      " gather information for table of contents
 | 
				
			||||||
@@ -907,8 +925,9 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
      let state.toc_id += 1
 | 
					      let state.toc_id += 1
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " quotes
 | 
					  " quotes "{{{
 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
    let [processed, lines, state.quote] = s:process_tag_quote(line, state.quote)
 | 
					    let [processed, lines, state.quote] = s:process_tag_quote(line, state.quote)
 | 
				
			||||||
    if processed && len(state.lists)
 | 
					    if processed && len(state.lists)
 | 
				
			||||||
@@ -917,7 +936,7 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
    if processed && state.deflist
 | 
					    if processed && state.deflist
 | 
				
			||||||
      let state.deflist = s:close_tag_def_list(state.deflist, lines)
 | 
					      let state.deflist = s:close_tag_def_list(state.deflist, lines)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if processed && state.table
 | 
					    if processed && len(state.table)
 | 
				
			||||||
      let state.table = s:close_tag_table(state.table, lines)
 | 
					      let state.table = s:close_tag_table(state.table, lines)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if processed && state.pre
 | 
					    if processed && state.pre
 | 
				
			||||||
@@ -931,17 +950,9 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    call extend(res_lines, lines)
 | 
					    call extend(res_lines, lines)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " definition lists
 | 
					  " tables "{{{
 | 
				
			||||||
  if !processed
 | 
					 | 
				
			||||||
    let [processed, lines, state.deflist] = s:process_tag_def_list(line, state.deflist)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    call map(lines, 's:process_inline_tags(v:val)')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    call extend(res_lines, lines)
 | 
					 | 
				
			||||||
  endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  " tables
 | 
					 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
    let [processed, lines, state.table] = s:process_tag_table(line, state.table)
 | 
					    let [processed, lines, state.table] = s:process_tag_table(line, state.table)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -949,8 +960,9 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    call extend(res_lines, lines)
 | 
					    call extend(res_lines, lines)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  " horizontal lines
 | 
					  " horizontal rules "{{{
 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
    let [processed, line] = s:process_tag_hr(line)
 | 
					    let [processed, line] = s:process_tag_hr(line)
 | 
				
			||||||
    if processed
 | 
					    if processed
 | 
				
			||||||
@@ -960,8 +972,19 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
      call add(res_lines, line)
 | 
					      call add(res_lines, line)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  "" P
 | 
					  " definition lists "{{{
 | 
				
			||||||
 | 
					  if !processed
 | 
				
			||||||
 | 
					    let [processed, lines, state.deflist] = s:process_tag_def_list(line, state.deflist)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    call map(lines, 's:process_inline_tags(v:val)')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    call extend(res_lines, lines)
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  "" P "{{{
 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
    let [processed, lines, state.para] = s:process_tag_para(line, state.para)
 | 
					    let [processed, lines, state.para] = s:process_tag_para(line, state.para)
 | 
				
			||||||
    if processed && len(state.lists)
 | 
					    if processed && len(state.lists)
 | 
				
			||||||
@@ -973,7 +996,7 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
    if processed && state.pre
 | 
					    if processed && state.pre
 | 
				
			||||||
      let state.pre = s:close_tag_pre(state.pre, res_lines)
 | 
					      let state.pre = s:close_tag_pre(state.pre, res_lines)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
    if processed && state.table
 | 
					    if processed && len(state.table)
 | 
				
			||||||
      let state.table = s:close_tag_table(state.table, res_lines)
 | 
					      let state.table = s:close_tag_table(state.table, res_lines)
 | 
				
			||||||
    endif
 | 
					    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -981,6 +1004,7 @@ function! s:wiki2html(line, state) " {{{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    call extend(res_lines, lines)
 | 
					    call extend(res_lines, lines)
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					  "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  "" add the rest
 | 
					  "" add the rest
 | 
				
			||||||
  if !processed
 | 
					  if !processed
 | 
				
			||||||
@@ -1015,7 +1039,7 @@ function! vimwiki_html#Wiki2HTML(path, wikifile) "{{{
 | 
				
			|||||||
  let state.para = 0
 | 
					  let state.para = 0
 | 
				
			||||||
  let state.quote = 0
 | 
					  let state.quote = 0
 | 
				
			||||||
  let state.pre = 0
 | 
					  let state.pre = 0
 | 
				
			||||||
  let state.table = 0
 | 
					  let state.table = []
 | 
				
			||||||
  let state.deflist = 0
 | 
					  let state.deflist = 0
 | 
				
			||||||
  let state.lists = []
 | 
					  let state.lists = []
 | 
				
			||||||
  let state.placeholder = []
 | 
					  let state.placeholder = []
 | 
				
			||||||
@@ -1024,7 +1048,7 @@ function! vimwiki_html#Wiki2HTML(path, wikifile) "{{{
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  for line in lsource
 | 
					  for line in lsource
 | 
				
			||||||
    let oldquote = state.quote
 | 
					    let oldquote = state.quote
 | 
				
			||||||
    let [lines, state] = s:wiki2html(line, state)
 | 
					    let [lines, state] = s:parse_line(line, state)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    " Hack: There could be a lot of empty strings before s:process_tag_quote
 | 
					    " Hack: There could be a lot of empty strings before s:process_tag_quote
 | 
				
			||||||
    " find out `quote` is over. So we should delete them all. Think of the way
 | 
					    " find out `quote` is over. So we should delete them all. Think of the way
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										335
									
								
								autoload/vimwiki_tbl.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										335
									
								
								autoload/vimwiki_tbl.vim
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,335 @@
 | 
				
			|||||||
 | 
					" Vimwiki autoload plugin file
 | 
				
			||||||
 | 
					" Desc: Tables
 | 
				
			||||||
 | 
					" | Easily | manageable | text  | tables | !       |
 | 
				
			||||||
 | 
					" |--------+------------+-------+--------+---------|
 | 
				
			||||||
 | 
					" | Have   | fun!       | Drink | tea    | Period. |
 | 
				
			||||||
 | 
					"
 | 
				
			||||||
 | 
					" Author: Maxim Kim <habamax@gmail.com>
 | 
				
			||||||
 | 
					" Home: http://code.google.com/p/vimwiki/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Load only once {{{
 | 
				
			||||||
 | 
					if exists("g:loaded_vimwiki_tbl_auto") || &cp
 | 
				
			||||||
 | 
					  finish
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					let g:loaded_vimwiki_tbl_auto = 1
 | 
				
			||||||
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let s:textwidth = &tw
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Misc functions {{{
 | 
				
			||||||
 | 
					function! s:wide_len(str) "{{{
 | 
				
			||||||
 | 
					  return strlen(substitute(a:str, '.', 'x', 'g'))
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:is_table(line) "{{{
 | 
				
			||||||
 | 
					  return a:line =~ '^\s*\%(|[^|]\+\)\+|\s*$' || s:is_separator(a:line)
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:is_separator(line) "{{{
 | 
				
			||||||
 | 
					  return a:line =~ '^\s*|\s*-\+'
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:is_last_column(lnum, cnum) "{{{
 | 
				
			||||||
 | 
					  return strpart(getline(a:lnum), a:cnum - 1) =~ '^[^|]*|\s*$'
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:count_separators(lnum) "{{{
 | 
				
			||||||
 | 
					  let lnum = a:lnum + 1
 | 
				
			||||||
 | 
					  while lnum < line('$')
 | 
				
			||||||
 | 
					    if !s:is_separator(getline(lnum))
 | 
				
			||||||
 | 
					      break
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					    let lnum += 1
 | 
				
			||||||
 | 
					  endwhile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (lnum-a:lnum)
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:create_empty_row(cols) "{{{
 | 
				
			||||||
 | 
					  let first_cell = "|   |"
 | 
				
			||||||
 | 
					  let cell = "   |"
 | 
				
			||||||
 | 
					  let row = first_cell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for c in range(a:cols - 1)
 | 
				
			||||||
 | 
					    let row .= cell
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return row
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:create_row_sep(cols) "{{{
 | 
				
			||||||
 | 
					  let first_cell = "|---+"
 | 
				
			||||||
 | 
					  let cell = "---+"
 | 
				
			||||||
 | 
					  let last_cell = "---|"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if a:cols < 2
 | 
				
			||||||
 | 
					    return "|---|"
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let row = first_cell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for c in range(a:cols - 2)
 | 
				
			||||||
 | 
					    let row .= cell
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let row .= last_cell
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return row
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:get_values(line) "{{{
 | 
				
			||||||
 | 
					  let cells = []
 | 
				
			||||||
 | 
					  let cnt = 0
 | 
				
			||||||
 | 
					  let idx = 0
 | 
				
			||||||
 | 
					  while idx != -1 && idx < strlen(a:line) - 1
 | 
				
			||||||
 | 
					    let cell = matchstr(a:line, '|\zs[^|]\+\ze|', idx)
 | 
				
			||||||
 | 
					    let cell = substitute(cell, '^\s*\(.\{-}\)\s*$', '\1', 'g')
 | 
				
			||||||
 | 
					    call add(cells, [cnt, cell])
 | 
				
			||||||
 | 
					    let cnt += 1
 | 
				
			||||||
 | 
					    let idx = matchend(a:line, '|\zs[^|]\+\ze|', idx)
 | 
				
			||||||
 | 
					  endwhile
 | 
				
			||||||
 | 
					  return cells
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:get_rows(lnum) "{{{
 | 
				
			||||||
 | 
					  if !s:is_table(getline(a:lnum))
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let upper_rows = []
 | 
				
			||||||
 | 
					  let lower_rows = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let lnum = a:lnum - 1
 | 
				
			||||||
 | 
					  while lnum > 1
 | 
				
			||||||
 | 
					    let line = getline(lnum)
 | 
				
			||||||
 | 
					    if s:is_table(line)
 | 
				
			||||||
 | 
					      call add(upper_rows, [lnum, line])
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      break
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					    let lnum -= 1
 | 
				
			||||||
 | 
					  endwhile
 | 
				
			||||||
 | 
					  call reverse(upper_rows)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let lnum = a:lnum
 | 
				
			||||||
 | 
					  while lnum <= line('$')
 | 
				
			||||||
 | 
					    let line = getline(lnum)
 | 
				
			||||||
 | 
					    if s:is_table(line)
 | 
				
			||||||
 | 
					      call add(lower_rows, [lnum, line])
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      break
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					    let lnum += 1
 | 
				
			||||||
 | 
					  endwhile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return upper_rows + lower_rows
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:get_cell_max_lens(lnum) "{{{
 | 
				
			||||||
 | 
					  let max_lens = {}
 | 
				
			||||||
 | 
					  for [lnum, row] in s:get_rows(a:lnum)
 | 
				
			||||||
 | 
					    if s:is_separator(row)
 | 
				
			||||||
 | 
					      continue
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					    for [idx, cell] in s:get_values(row)
 | 
				
			||||||
 | 
					      if has_key(max_lens, idx)
 | 
				
			||||||
 | 
					        let max_lens[idx] = max([s:wide_len(cell), max_lens[idx]])
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        let max_lens[idx] = s:wide_len(cell)
 | 
				
			||||||
 | 
					      endif
 | 
				
			||||||
 | 
					    endfor
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					  return max_lens
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:get_aligned_rows(lnum, max_lens) "{{{
 | 
				
			||||||
 | 
					  let rows = []
 | 
				
			||||||
 | 
					  for [lnum, row] in s:get_rows(a:lnum)
 | 
				
			||||||
 | 
					    if s:is_separator(row)
 | 
				
			||||||
 | 
					      let new_row = s:fmt_sep(a:max_lens)
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      let new_row = s:fmt_row(row, a:max_lens)
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					    call add(rows, [lnum, new_row])
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					  return rows
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					" }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Format functions {{{
 | 
				
			||||||
 | 
					function! s:fmt_cell(cell, max_len) "{{{
 | 
				
			||||||
 | 
					  let cell = ' '.a:cell.' '
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let diff = a:max_len - s:wide_len(a:cell)
 | 
				
			||||||
 | 
					  if diff == 0 && empty(a:cell)
 | 
				
			||||||
 | 
					    let diff = 1
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let cell .= repeat(' ', diff)
 | 
				
			||||||
 | 
					  return cell
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:fmt_row(line, max_lens) "{{{
 | 
				
			||||||
 | 
					  let new_line = '|'
 | 
				
			||||||
 | 
					  let values = s:get_values(a:line)
 | 
				
			||||||
 | 
					  for [idx, cell] in values
 | 
				
			||||||
 | 
					    let new_line .= s:fmt_cell(cell, a:max_lens[idx]).'|'
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let idx = len(values)
 | 
				
			||||||
 | 
					  while idx < len(a:max_lens)
 | 
				
			||||||
 | 
					    let new_line .= s:fmt_cell('', a:max_lens[idx]).'|'
 | 
				
			||||||
 | 
					    let idx += 1
 | 
				
			||||||
 | 
					  endwhile
 | 
				
			||||||
 | 
					  return new_line
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:fmt_cell_sep(max_len) "{{{
 | 
				
			||||||
 | 
					  if a:max_len == 0
 | 
				
			||||||
 | 
					    return repeat('-', 3)
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    return repeat('-', a:max_len+2)
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:fmt_sep(max_lens) "{{{
 | 
				
			||||||
 | 
					  let sep = '|'
 | 
				
			||||||
 | 
					  for idx in range(len(a:max_lens))
 | 
				
			||||||
 | 
					    let sep .= s:fmt_cell_sep(a:max_lens[idx]).'+'
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					  let sep = substitute(sep, '+$', '|', '')
 | 
				
			||||||
 | 
					  return sep
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Keyboard functions "{{{
 | 
				
			||||||
 | 
					function! s:kbd_create_new_row(cols, goto_first) "{{{
 | 
				
			||||||
 | 
					  let cmd = "\<ESC>o".s:create_empty_row(a:cols)
 | 
				
			||||||
 | 
					  let cmd .= "\<ESC>:call vimwiki_tbl#format(line('.'))\<CR>"
 | 
				
			||||||
 | 
					  if a:goto_first
 | 
				
			||||||
 | 
					    let cmd .= "0f|T|a"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    let cmd .= "0".(col('.')-1)."lT|a"
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					  return cmd
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:kbd_goto_next_row() "{{{
 | 
				
			||||||
 | 
					  let cmd = "\<ESC>jt|T|a"
 | 
				
			||||||
 | 
					  return cmd
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:kbd_goto_next_col(last) "{{{
 | 
				
			||||||
 | 
					  if col('.') == 1
 | 
				
			||||||
 | 
					    let cmd = "\<ESC>la"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    if a:last
 | 
				
			||||||
 | 
					      let seps = s:count_separators(line('.'))
 | 
				
			||||||
 | 
					      let cmd = "\<ESC>".seps."j0f|F|la"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      let cmd = "\<ESC>f|la"
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					  return cmd
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Global functions {{{
 | 
				
			||||||
 | 
					function! vimwiki_tbl#kbd_cr() "{{{
 | 
				
			||||||
 | 
					  let lnum = line('.')
 | 
				
			||||||
 | 
					  if !s:is_table(getline(lnum))
 | 
				
			||||||
 | 
					    return "\<CR>"
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if s:is_separator(getline(lnum+1)) || !s:is_table(getline(lnum+1))
 | 
				
			||||||
 | 
					    let cols = len(s:get_values(getline(lnum)))
 | 
				
			||||||
 | 
					    return s:kbd_create_new_row(cols, 0)
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    return s:kbd_goto_next_row()
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! vimwiki_tbl#kbd_tab() "{{{
 | 
				
			||||||
 | 
					  let lnum = line('.')
 | 
				
			||||||
 | 
					  if !s:is_table(getline(lnum))
 | 
				
			||||||
 | 
					    return "\<Tab>"
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let last = s:is_last_column(lnum, col('.'))
 | 
				
			||||||
 | 
					  if last && !s:is_table(getline(lnum+1))
 | 
				
			||||||
 | 
					    let cols = len(s:get_values(getline(lnum)))
 | 
				
			||||||
 | 
					    return s:kbd_create_new_row(cols, 1)
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					  return s:kbd_goto_next_col(last)
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! vimwiki_tbl#format(lnum) "{{{
 | 
				
			||||||
 | 
					  let line = getline(a:lnum)
 | 
				
			||||||
 | 
					  if !s:is_table(line)
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let max_lens = s:get_cell_max_lens(a:lnum)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for [lnum, row] in s:get_aligned_rows(a:lnum, max_lens)
 | 
				
			||||||
 | 
					    call setline(lnum, row)
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let &tw = s:textwidth
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! vimwiki_tbl#create(...) "{{{
 | 
				
			||||||
 | 
					  if a:0 > 1
 | 
				
			||||||
 | 
					    let cols = a:1
 | 
				
			||||||
 | 
					    let rows = a:2
 | 
				
			||||||
 | 
					  elseif a:0 == 1
 | 
				
			||||||
 | 
					    let cols = a:1
 | 
				
			||||||
 | 
					    let rows = 2
 | 
				
			||||||
 | 
					  elseif a:0 == 0
 | 
				
			||||||
 | 
					    let cols = 5
 | 
				
			||||||
 | 
					    let rows = 2
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if cols < 1
 | 
				
			||||||
 | 
					    let cols = 5
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if rows < 1
 | 
				
			||||||
 | 
					    let rows = 2
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let lines = []
 | 
				
			||||||
 | 
					  let row = s:create_empty_row(cols)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  call add(lines, row)
 | 
				
			||||||
 | 
					  if rows > 1
 | 
				
			||||||
 | 
					    call add(lines, s:create_row_sep(cols))
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for r in range(rows - 1)
 | 
				
			||||||
 | 
					    call add(lines, row)
 | 
				
			||||||
 | 
					  endfor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  call append(line('.'), lines)
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! vimwiki_tbl#align_or_cmd(cmd) "{{{
 | 
				
			||||||
 | 
					  if s:is_table(getline('.'))
 | 
				
			||||||
 | 
					    call vimwiki_tbl#format(line('.'))
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    exe 'normal! '.a:cmd
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! vimwiki_tbl#reset_tw(lnum) "{{{
 | 
				
			||||||
 | 
					  let line = getline(a:lnum)
 | 
				
			||||||
 | 
					  if !s:is_table(line)
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  let s:textwidth = &tw
 | 
				
			||||||
 | 
					  let &tw = 0
 | 
				
			||||||
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"}}}
 | 
				
			||||||
							
								
								
									
										459
									
								
								doc/vimwiki.txt
									
									
									
									
									
								
							
							
						
						
									
										459
									
								
								doc/vimwiki.txt
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
*vimwiki.txt*  A Personal Wiki for Vim
 | 
					*vimwiki.txt*   A Personal Wiki for Vim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
     __  __  ______            __      __  ______   __  __   ______     ~
 | 
					     __  __  ______            __      __  ______   __  __   ______     ~
 | 
				
			||||||
    /\ \/\ \/\__  _\   /'\_/`\/\ \  __/\ \/\__  _\ /\ \/\ \ /\__  _\    ~
 | 
					    /\ \/\ \/\__  _\   /'\_/`\/\ \  __/\ \/\__  _\ /\ \/\ \ /\__  _\    ~
 | 
				
			||||||
@@ -8,39 +8,41 @@
 | 
				
			|||||||
       \ `\___/ /\_____\\ \_\\ \_\ `\___x___/ /\_____\\ \_\ \_\ /\_____\~
 | 
					       \ `\___/ /\_____\\ \_\\ \_\ `\___x___/ /\_____\\ \_\ \_\ /\_____\~
 | 
				
			||||||
        `\/__/  \/_____/ \/_/ \/_/'\/__//__/  \/_____/ \/_/\/_/ \/_____/~
 | 
					        `\/__/  \/_____/ \/_/ \/_/'\/__//__/  \/_____/ \/_/\/_/ \/_____/~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                               Version: 0.9.801 ~
 | 
					                               Version: 0.9.9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
CONTENTS                                                    *vimwiki-contents*
 | 
					CONTENTS                                                    *vimwiki-contents*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  1. Intro ...................................|vimwiki|
 | 
					    1. Intro                         |vimwiki|
 | 
				
			||||||
  2. Prerequisites ...........................|vimwiki-prerequisites|
 | 
					    2. Prerequisites                 |vimwiki-prerequisites|
 | 
				
			||||||
  3. Mappings ................................|vimwiki-mappings|
 | 
					    3. Mappings                      |vimwiki-mappings|
 | 
				
			||||||
    3.1. Global mappings .....................|vimwiki-global-mappings|
 | 
					        3.1. Global mappings         |vimwiki-global-mappings|
 | 
				
			||||||
    3.2. Local mappings ......................|vimwiki-local-mappings|
 | 
					        3.2. Local mappings          |vimwiki-local-mappings|
 | 
				
			||||||
    3.3. Text objects ........................|vimwiki-text-objects|
 | 
					        3.3. Text objects            |vimwiki-text-objects|
 | 
				
			||||||
  4. Commands ................................|vimwiki-commands|
 | 
					    4. Commands                      |vimwiki-commands|
 | 
				
			||||||
    4.1. Global commands .....................|vimwiki-global-commands|
 | 
					        4.1. Global commands         |vimwiki-global-commands|
 | 
				
			||||||
    4.2. Local commands ......................|vimwiki-local-commands|
 | 
					        4.2. Local commands          |vimwiki-local-commands|
 | 
				
			||||||
  5. Wiki syntax .............................|vimwiki-syntax|
 | 
					    5. Wiki syntax                   |vimwiki-syntax|
 | 
				
			||||||
    5.1. Typefaces ...........................|vimwiki-syntax-typefaces|
 | 
					        5.1. Typefaces               |vimwiki-syntax-typefaces|
 | 
				
			||||||
    5.2. Links ...............................|vimwiki-syntax-links|
 | 
					        5.2. Links                   |vimwiki-syntax-links|
 | 
				
			||||||
    5.3. Headers .............................|vimwiki-syntax-headers|
 | 
					        5.3. Headers                 |vimwiki-syntax-headers|
 | 
				
			||||||
    5.4. Paragraphs...........................|vimwiki-syntax-paragraphs|
 | 
					        5.4. Paragraphs              |vimwiki-syntax-paragraphs|
 | 
				
			||||||
    5.5. Lists ...............................|vimwiki-syntax-lists|
 | 
					        5.5. Lists                   |vimwiki-syntax-lists|
 | 
				
			||||||
    5.6. Tables ..............................|vimwiki-syntax-tables|
 | 
					        5.6. Tables                  |vimwiki-syntax-tables|
 | 
				
			||||||
    5.7. Preformatted text ...................|vimwiki-syntax-preformatted|
 | 
					        5.7. Preformatted text       |vimwiki-syntax-preformatted|
 | 
				
			||||||
    5.8. Blockquotes .........................|vimwiki-syntax-blockquotes|
 | 
					        5.8. Blockquotes             |vimwiki-syntax-blockquotes|
 | 
				
			||||||
    5.9. Comments ............................|vimwiki-syntax-comments|
 | 
					        5.9. Comments                |vimwiki-syntax-comments|
 | 
				
			||||||
  6. Folding/Outline .........................|vimwiki-folding|
 | 
					    6. Folding/Outline               |vimwiki-folding|
 | 
				
			||||||
  7. Placeholders ............................|vimwiki-placeholders|
 | 
					    7. Placeholders                  |vimwiki-placeholders|
 | 
				
			||||||
    7.1 Table of Contents ....................|vimwiki-table-of-contents|
 | 
					        7.1 Table of Contents        |vimwiki-table-of-contents|
 | 
				
			||||||
  8. Todo lists...............................|vimwiki-todo-lists|
 | 
					    8. Todo lists                    |vimwiki-todo-lists|
 | 
				
			||||||
  9. Options .................................|vimwiki-options|
 | 
					    9. Tables                        |vimwiki-tables|
 | 
				
			||||||
  10. Help ...................................|vimwiki-help|
 | 
					    10. Diary                        |vimwiki-diary|
 | 
				
			||||||
  11. Author .................................|vimwiki-author|
 | 
					    11. Options                      |vimwiki-options|
 | 
				
			||||||
  12. Changelog ..............................|vimwiki-changelog|
 | 
					    12. Help                         |vimwiki-help|
 | 
				
			||||||
  13. License ................................|vimwiki-license|
 | 
					    13. Author                       |vimwiki-author|
 | 
				
			||||||
 | 
					    14. Changelog                    |vimwiki-changelog|
 | 
				
			||||||
 | 
					    15. License                      |vimwiki-license|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
@@ -49,10 +51,10 @@ CONTENTS                                                    *vimwiki-contents*
 | 
				
			|||||||
Vimwiki is a personal wiki for Vim -- a number of linked text files that have
 | 
					Vimwiki is a personal wiki for Vim -- a number of linked text files that have
 | 
				
			||||||
their own syntax highlighting.
 | 
					their own syntax highlighting.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
With vimwiki you can
 | 
					With vimwiki you can:
 | 
				
			||||||
    - organize notes and ideas
 | 
					    - organize notes and ideas;
 | 
				
			||||||
    - manage todo-lists
 | 
					    - manage todo-lists;
 | 
				
			||||||
    - write documentation
 | 
					    - write documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To do a quick start press <Leader>ww (this is usually \ww) to go to your index
 | 
					To do a quick start press <Leader>ww (this is usually \ww) to go to your index
 | 
				
			||||||
wiki file. By default it is located in: >
 | 
					wiki file. By default it is located in: >
 | 
				
			||||||
@@ -71,8 +73,8 @@ errors. These are links in CamelCase form that do not exists yet. (CamelCase
 | 
				
			|||||||
form -- capitalized word connected with other capitalized words)
 | 
					form -- capitalized word connected with other capitalized words)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Place cursor on ProjectGutenberg and press <Enter>. Now you are in
 | 
					Place cursor on ProjectGutenberg and press <Enter>. Now you are in
 | 
				
			||||||
ProjectGutenberg. Edit and save it, then press Backspace to return to parent
 | 
					ProjectGutenberg. Edit and save it, then press Backspace to return to previous
 | 
				
			||||||
wiki page. You should see the difference now -- ProjectGutenberg is
 | 
					wiki file. You should see the difference now -- ProjectGutenberg is
 | 
				
			||||||
highlighted as a link.
 | 
					highlighted as a link.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -95,8 +97,9 @@ There are global and local mappings in vimwiki.
 | 
				
			|||||||
------------------------------------------------------------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
3.1. Global mappings                                 *vimwiki-global-mappings*
 | 
					3.1. Global mappings                                 *vimwiki-global-mappings*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Leader>ww or <Plug>VimwikiGoHome
 | 
					[count]<Leader>ww or <Plug>VimwikiGoHome
 | 
				
			||||||
        Open index file of the [count]'s wiki.
 | 
					        Open index file of the [count]'s wiki.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <Leader>ww opens first wiki from |g:vimwiki_list|.
 | 
					        <Leader>ww opens first wiki from |g:vimwiki_list|.
 | 
				
			||||||
        1<Leader>ww as above opens first wiki from |g:vimwiki_list|.
 | 
					        1<Leader>ww as above opens first wiki from |g:vimwiki_list|.
 | 
				
			||||||
        2<Leader>ww opens second wiki from |g:vimwiki_list|.
 | 
					        2<Leader>ww opens second wiki from |g:vimwiki_list|.
 | 
				
			||||||
@@ -107,8 +110,10 @@ There are global and local mappings in vimwiki.
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
See also|:VimwikiGoHome|
 | 
					See also|:VimwikiGoHome|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Leader>wt or <Plug>VimwikiTabGoHome
 | 
					
 | 
				
			||||||
 | 
					[count]<Leader>wt or <Plug>VimwikiTabGoHome
 | 
				
			||||||
        Open index file of the [count]'s wiki in a new tab.
 | 
					        Open index file of the [count]'s wiki in a new tab.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <Leader>wt tabopens first wiki from |g:vimwiki_list|.
 | 
					        <Leader>wt tabopens first wiki from |g:vimwiki_list|.
 | 
				
			||||||
        1<Leader>wt as above tabopens first wiki from |g:vimwiki_list|.
 | 
					        1<Leader>wt as above tabopens first wiki from |g:vimwiki_list|.
 | 
				
			||||||
        2<Leader>wt tabopens second wiki from |g:vimwiki_list|.
 | 
					        2<Leader>wt tabopens second wiki from |g:vimwiki_list|.
 | 
				
			||||||
@@ -119,6 +124,7 @@ See also|:VimwikiGoHome|
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
See also|:VimwikiTabGoHome|
 | 
					See also|:VimwikiTabGoHome|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<Leader>ws or <Plug>VimwikiUISelect
 | 
					<Leader>ws or <Plug>VimwikiUISelect
 | 
				
			||||||
        List and select available wikies.
 | 
					        List and select available wikies.
 | 
				
			||||||
        To remap: >
 | 
					        To remap: >
 | 
				
			||||||
@@ -127,10 +133,46 @@ See also|:VimwikiTabGoHome|
 | 
				
			|||||||
See also|:VimwikiUISelect|
 | 
					See also|:VimwikiUISelect|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
------------------------------------------------------------------------------
 | 
					[count]<Leader>w<Leader>w or <Plug>VimwikiMakeDiaryNote
 | 
				
			||||||
3.2. Local mappings                                   *vimwiki-local-mappings*
 | 
					        Open diary wiki-file for today of the [count]'s wiki.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Normal mode (Keyboard):~
 | 
					        <Leader>w<Leader>w opens diary wiki-file for today in the first wiki
 | 
				
			||||||
 | 
					        from |g:vimwiki_list|.
 | 
				
			||||||
 | 
					        1<Leader>w<Leader>w as above opens diary wiki-file for today in the
 | 
				
			||||||
 | 
					        first wiki from |g:vimwiki_list|.
 | 
				
			||||||
 | 
					        2<Leader>w<Leader>w opens diary wiki-file for today in the second wiki
 | 
				
			||||||
 | 
					        from |g:vimwiki_list|.
 | 
				
			||||||
 | 
					        3<Leader>w<Leader>w opens diary wiki-file for today in the third wiki
 | 
				
			||||||
 | 
					        from |g:vimwiki_list|.
 | 
				
			||||||
 | 
					        etc.
 | 
				
			||||||
 | 
					        To remap: >
 | 
				
			||||||
 | 
					        :map <Leader>d <Plug>VimwikiMakeDiaryNote
 | 
				
			||||||
 | 
					<
 | 
				
			||||||
 | 
					See also|:VimwikiMakeDiaryNote|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[count]<Leader>w<Leader>t or <Plug>VimwikiTabMakeDiaryNote
 | 
				
			||||||
 | 
					        Open diary wiki-file for today of the [count]'s wiki in a new tab.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Leader>w<Leader>t tabopens diary wiki-file for today in the first
 | 
				
			||||||
 | 
					        wiki from |g:vimwiki_list|.
 | 
				
			||||||
 | 
					        1<Leader>w<Leader>t as above tabopens diary wiki-file for today in the
 | 
				
			||||||
 | 
					        first wiki from |g:vimwiki_list|.
 | 
				
			||||||
 | 
					        2<Leader>w<Leader>t tabopens diary wiki-file for today in the second
 | 
				
			||||||
 | 
					        wiki from |g:vimwiki_list|.
 | 
				
			||||||
 | 
					        3<Leader>w<Leader>t tabopens diary wiki-file for today in the third
 | 
				
			||||||
 | 
					        wiki from |g:vimwiki_list|.
 | 
				
			||||||
 | 
					        etc.
 | 
				
			||||||
 | 
					        To remap: >
 | 
				
			||||||
 | 
					        :map <Leader>dt <Plug>VimwikiTabMakeDiaryNote
 | 
				
			||||||
 | 
					<
 | 
				
			||||||
 | 
					See also|:VimwikiTabMakeDiaryNote|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					3.2. Local mappings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NORMAL MODE                                           *vimwiki-local-mappings*
 | 
				
			||||||
                        *vimwiki_<CR>*
 | 
					                        *vimwiki_<CR>*
 | 
				
			||||||
<CR>                    Follow/Create WikiWord.
 | 
					<CR>                    Follow/Create WikiWord.
 | 
				
			||||||
                        Maps to|:VimwikiFollowWord|.
 | 
					                        Maps to|:VimwikiFollowWord|.
 | 
				
			||||||
@@ -194,15 +236,39 @@ Normal mode (Keyboard):~
 | 
				
			|||||||
                        *vimwiki_-*
 | 
					                        *vimwiki_-*
 | 
				
			||||||
-                       Remove header level.
 | 
					-                       Remove header level.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Normal mode (Mouse): ~
 | 
					
 | 
				
			||||||
 | 
					                        *vimwiki_gqq*  *vimwiki_gww*
 | 
				
			||||||
 | 
					gqq                     Format table. If you did some changes to a table
 | 
				
			||||||
 | 
					 or                     without swapping insert/normal modes this command
 | 
				
			||||||
 | 
					gww                     reformat it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Works only if |g:vimwiki_use_mouse| is set to 1.
 | 
					Works only if |g:vimwiki_use_mouse| is set to 1.
 | 
				
			||||||
<2-LeftMouse>           Follow/Create WikiWord
 | 
					<2-LeftMouse>           Follow/Create WikiWord
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<S-2-LeftMouse>         Split and follow/create WikiWord
 | 
					<S-2-LeftMouse>         Split and follow/create WikiWord
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<C-2-LeftMouse>         Vertical split and follow/create WikiWord
 | 
					<C-2-LeftMouse>         Vertical split and follow/create WikiWord
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<RightMouse><LeftMouse> Go back to previous WikiWord
 | 
					<RightMouse><LeftMouse> Go back to previous WikiWord
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note: <2-LeftMouse> is just left double click.
 | 
					Note: <2-LeftMouse> is just left double click.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					INSERT MODE                                           *vimwiki-table-mappings*
 | 
				
			||||||
 | 
					                        *vimwiki_i_<CR>*
 | 
				
			||||||
 | 
					<CR>                    Goto table cell down to the current, create new row if
 | 
				
			||||||
 | 
					                        on the last one.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        *vimwiki_i_<Tab>*
 | 
				
			||||||
 | 
					<Tab>                   Goto next table cell, create new row if on the last
 | 
				
			||||||
 | 
					                        cell.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
------------------------------------------------------------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
3.3. Text objects                                       *vimwiki-text-objects*
 | 
					3.3. Text objects                                       *vimwiki-text-objects*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -210,7 +276,7 @@ ah                      A Header with leading empty lines.
 | 
				
			|||||||
ih                      Inner Header without leading empty lines.
 | 
					ih                      Inner Header without leading empty lines.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You can 'vah' to select a header with its contents or 'dah' to delete it or
 | 
					You can 'vah' to select a header with its contents or 'dah' to delete it or
 | 
				
			||||||
'yah' to yank it or 'cah' to change it. ;)
 | 
					'yah' to yank it or 'cah' to change it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
@@ -228,48 +294,75 @@ You can 'vah' to select a header with its contents or 'dah' to delete it or
 | 
				
			|||||||
*:VimwikiUISelect*
 | 
					*:VimwikiUISelect*
 | 
				
			||||||
    Open index file of the selected wiki.
 | 
					    Open index file of the selected wiki.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*:VimwikiMakeDiaryNote*
 | 
				
			||||||
 | 
					    Open diary wiki-file for today of the current wiki.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*:VimwikiTabMakeDiaryNote*
 | 
				
			||||||
 | 
					    Open diary wiki-file for today of the current wiki in a new tab.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
------------------------------------------------------------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
4.2. Local commands                                   *vimwiki-local-commands*
 | 
					4.2. Local commands                                   *vimwiki-local-commands*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiFollowWord*
 | 
					*:VimwikiFollowWord*
 | 
				
			||||||
    Follow/create WikiWord.
 | 
					    Follow/create WikiWord.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiGoBackWord*
 | 
					*:VimwikiGoBackWord*
 | 
				
			||||||
    Go back to previous WikiWord you come from.
 | 
					    Go back to previous WikiWord you come from.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiSplitWord*
 | 
					*:VimwikiSplitWord*
 | 
				
			||||||
    Split and follow/create WikiWord.
 | 
					    Split and follow/create WikiWord.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiVSplitWord*
 | 
					*:VimwikiVSplitWord*
 | 
				
			||||||
    Vertical split and follow/create WikiWord.
 | 
					    Vertical split and follow/create WikiWord.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiNextWord*
 | 
					*:VimwikiNextWord*
 | 
				
			||||||
    Find next WikiWord.
 | 
					    Find next WikiWord.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiPrevWord*
 | 
					*:VimwikiPrevWord*
 | 
				
			||||||
    Find previous WikiWord.
 | 
					    Find previous WikiWord.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiDeleteWord*
 | 
					*:VimwikiDeleteWord*
 | 
				
			||||||
    Delete WikiWord you are in.
 | 
					    Delete WikiWord you are in.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiRenameWord*
 | 
					*:VimwikiRenameWord*
 | 
				
			||||||
    Rename WikiWord you are in.
 | 
					    Rename WikiWord you are in.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:Vimwiki2HTML*
 | 
					*:Vimwiki2HTML*
 | 
				
			||||||
    Convert current WikiPage to HTML.
 | 
					    Convert current WikiPage to HTML.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiAll2HTML*
 | 
					*:VimwikiAll2HTML*
 | 
				
			||||||
    Convert all WikiPages to HTML.
 | 
					    Convert all WikiPages to HTML.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiToggleListItem*
 | 
					*:VimwikiToggleListItem*
 | 
				
			||||||
    Toggle list item on/off (checked/unchecked)
 | 
					    Toggle list item on/off (checked/unchecked)
 | 
				
			||||||
    See |vimwiki-todo-lists|.
 | 
					    See |vimwiki-todo-lists|.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*:VimwikiSearch* /pattern/
 | 
					*:VimwikiSearch* /pattern/
 | 
				
			||||||
*:VWS* /pattern/
 | 
					*:VWS* /pattern/
 | 
				
			||||||
    Search for /pattern/ in current wiki.
 | 
					    Search for /pattern/ in current wiki.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*:VimwikiTable*
 | 
				
			||||||
 | 
					    Create a table with 5 cols and 2 rows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :VimwikiTable cols rows
 | 
				
			||||||
 | 
					    Create a table with a given cols and rows
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :VimwikiTable cols
 | 
				
			||||||
 | 
					    Create a table with a given cols and 2 rows
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
5. Wiki syntax                                                *vimwiki-syntax*
 | 
					5. Wiki syntax                                                *vimwiki-syntax*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -506,30 +599,31 @@ Term 2::
 | 
				
			|||||||
------------------------------------------------------------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
5.6. Tables                                            *vimwiki-syntax-tables*
 | 
					5.6. Tables                                            *vimwiki-syntax-tables*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Tables are created by entering the content of each cell separated by ||
 | 
					Tables are created by entering the content of each cell separated by |
 | 
				
			||||||
delimiters. You can insert other inline wiki syntax in table cells, including
 | 
					delimiters. You can insert other inline wiki syntax in table cells, including
 | 
				
			||||||
typeface formatting and links.
 | 
					typeface formatting and links.
 | 
				
			||||||
For example:
 | 
					For example: >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
||*Year*s||*Temperature (low)*||*Temperature (high)*||
 | 
					 | Year | Temperature (low) | Temperature (high) |
 | 
				
			||||||
||1900   ||-10                ||25                  ||
 | 
					 |------+-------------------+--------------------|
 | 
				
			||||||
||1910   ||-15                ||30                  ||
 | 
					 | 1900 | -10               | 25                 |
 | 
				
			||||||
||1920   ||-10                ||32                  ||
 | 
					 | 1910 | -15               | 30                 |
 | 
				
			||||||
||1930   ||_N/A_              ||_N/A_               ||
 | 
					 | 1920 | -10               | 32                 |
 | 
				
			||||||
||1940   ||-2                 ||40                  ||
 | 
					 | 1930 | _N/A_             | _N/A_              |
 | 
				
			||||||
 | 
					 | 1940 | -2                | 40                 |
 | 
				
			||||||
 | 
					>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In html the following part >
 | 
				
			||||||
 | 
					 | Year | Temperature (low) | Temperature (high) |
 | 
				
			||||||
 | 
					 |------+-------------------+--------------------|
 | 
				
			||||||
 | 
					>
 | 
				
			||||||
 | 
					is higlighted as a table header.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For HTML, contents of table cell could be aligned to the right, left and
 | 
					See |vimwiki-tables| for more details on how to manage tables.
 | 
				
			||||||
center:
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
|| Center || Center || Center ||
 | 
					Note: You can not use [[link|description]] type of links in tables. Use
 | 
				
			||||||
||Left    || Center ||   Right||
 | 
					[[link][description]] instead.
 | 
				
			||||||
||   Right||Left    || Center ||
 | 
					 | 
				
			||||||
|| Center ||   Right||Left    ||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
No spaces on the left side -- left alignment.
 | 
					 | 
				
			||||||
No spaces on the right side -- right alignment.
 | 
					 | 
				
			||||||
Spaces on the left and on the right -- center alignment.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
------------------------------------------------------------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
@@ -697,8 +791,89 @@ percentage of toggled child items(see also |g:vimwiki_listsyms|): >
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
It is possible to toggle several list items using visual mode.
 | 
					It is possible to toggle several list items using visual mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
9. Options                                                   *vimwiki-options*
 | 
					9. Tables                                                     *vimwiki-tables*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Use :VimwikiTable command to create default table with 5 columns and 2 rows: >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 |   |   |   |   |   |
 | 
				
			||||||
 | 
					 |---+---+---+---+---|
 | 
				
			||||||
 | 
					 |   |   |   |   |   |
 | 
				
			||||||
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Tables are auto-formattable. Let's add some text into first cell: >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | First Name  |   |   |   |   |
 | 
				
			||||||
 | 
					 |---+---+---+---+---|
 | 
				
			||||||
 | 
					 |   |   |   |   |   |
 | 
				
			||||||
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Whenever you press <TAB>, <CR> or leave Insert mode table is formatted: >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | First Name |   |   |   |   |
 | 
				
			||||||
 | 
					 |------------+---+---+---+---|
 | 
				
			||||||
 | 
					 |            |   |   |   |   |
 | 
				
			||||||
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can easily create nice looking text tables, just press <TAB> and enter new
 | 
				
			||||||
 | 
					values: >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | First Name | Last Name  | Age | City     | e-mail               |
 | 
				
			||||||
 | 
					 |------------+------------+-----+----------+----------------------|
 | 
				
			||||||
 | 
					 | Vladislav  | Pokrishkin | 31  | Moscow   | vlad_pok@smail.com   |
 | 
				
			||||||
 | 
					 | James      | Esfandiary | 27  | Istanbul | esfandiary@tmail.com |
 | 
				
			||||||
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					==============================================================================
 | 
				
			||||||
 | 
					10. Diary                                                      *vimwiki-diary*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Diary helps you make daily notes. You can really easy add information into
 | 
				
			||||||
 | 
					vimwiki that should be sorted out later. Just hit <Leader>w<Leader>w to create
 | 
				
			||||||
 | 
					new daily note with name based on current date. The link to this newly created
 | 
				
			||||||
 | 
					file is added to a diary wiki file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Usage example with default settings: >
 | 
				
			||||||
 | 
					  Consider today is 2010-01-27.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  Hit \w\w .
 | 
				
			||||||
 | 
					  ~/vimwiki/diary.wiki is created.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  2 following lines are added to ~/vimwiki/diary/diary.wiki :
 | 
				
			||||||
 | 
					  = Diary =
 | 
				
			||||||
 | 
					  | [[2010-01-27]] |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ~/vimwiki/diary/2010-01-27.wiki is created.
 | 
				
			||||||
 | 
					  You are ready to add your information there.
 | 
				
			||||||
 | 
					  -------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  On the next day.
 | 
				
			||||||
 | 
					  Hit \w\w .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  The first line after = Diary = is changed in ~/vimwiki/diary/diary.wiki :
 | 
				
			||||||
 | 
					  = Diary =
 | 
				
			||||||
 | 
					  | [[2010-01-28]] | [[2010-01-27]] |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ~/vimwiki/diary/2010-01-28.wiki is created.
 | 
				
			||||||
 | 
					  You are ready to add your information there.
 | 
				
			||||||
 | 
					>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					By default there are 4 links on the line. All links are sorted by their dates.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Calendar integration                                        *vimwiki-calendar*
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					If you have Calendar.vim installed you can use it to create diary notes.
 | 
				
			||||||
 | 
					Just open calendar with :Calendar and tap <Enter> on the date. Wiki file would
 | 
				
			||||||
 | 
					be created in default wiki's diary.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Get it from http://www.vim.org/scripts/script.php?script_id=52
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					==============================================================================
 | 
				
			||||||
 | 
					11. Options                                                  *vimwiki-options*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There are global and per wiki(local) options available to tune vimwiki.
 | 
					There are global and per wiki(local) options available to tune vimwiki.
 | 
				
			||||||
All global options are set using the following template: >
 | 
					All global options are set using the following template: >
 | 
				
			||||||
@@ -733,10 +908,12 @@ Empty |Dictionary| in the g:vimwiki_list is the wiki with default options: >
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Per wiki options
 | 
					PER WIKI OPTIONS                                       *viwmiki-local-options*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-path*
 | 
					*vimwiki-option-path*
 | 
				
			||||||
---------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value~
 | 
					Key             Default value~
 | 
				
			||||||
path            ~/vimwiki/
 | 
					path            ~/vimwiki/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -746,7 +923,7 @@ Wiki files location: >
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-path_html*
 | 
					*vimwiki-option-path_html*
 | 
				
			||||||
--------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value~
 | 
					Key             Default value~
 | 
				
			||||||
path_html       ~/vimwiki_html/
 | 
					path_html       ~/vimwiki_html/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -760,9 +937,20 @@ If you omit this option path_html would be path - '/' + '_html/': >
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ie, path_html = '~/okidoki_html/'
 | 
					ie, path_html = '~/okidoki_html/'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*vimwiki-option-auto_export*
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					Key             Default value     Values~
 | 
				
			||||||
 | 
					auto_export     0                 0, 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Description~
 | 
				
			||||||
 | 
					Set this option to 1 to automatically generate HTML file when corresponding
 | 
				
			||||||
 | 
					wiki page is saved: >
 | 
				
			||||||
 | 
					  let g:vimwiki_list = [{'path': '~/my_site/', 'auto_export': 1}]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This will keep you HTML files up to date.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-index*
 | 
					*vimwiki-option-index*
 | 
				
			||||||
----------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value~
 | 
					Key             Default value~
 | 
				
			||||||
index           index
 | 
					index           index
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -774,7 +962,7 @@ NOTE: Do not add extension.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-ext*
 | 
					*vimwiki-option-ext*
 | 
				
			||||||
--------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value~
 | 
					Key             Default value~
 | 
				
			||||||
ext             .wiki
 | 
					ext             .wiki
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -785,7 +973,7 @@ Extension of wiki files: >
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<
 | 
					<
 | 
				
			||||||
*vimwiki-option-syntax*
 | 
					*vimwiki-option-syntax*
 | 
				
			||||||
-----------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value     Values~
 | 
					Key             Default value     Values~
 | 
				
			||||||
syntax          default           default, media
 | 
					syntax          default           default, media
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -799,7 +987,7 @@ To use MediaWiki's wiki markup: >
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-html_header*
 | 
					*vimwiki-option-html_header*
 | 
				
			||||||
----------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value~
 | 
					Key             Default value~
 | 
				
			||||||
html_header
 | 
					html_header
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -826,7 +1014,7 @@ where
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-html_footer*
 | 
					*vimwiki-option-html_footer*
 | 
				
			||||||
----------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value~
 | 
					Key             Default value~
 | 
				
			||||||
html_footer
 | 
					html_footer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -842,7 +1030,7 @@ This footer.tpl could look like: >
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-css_name*
 | 
					*vimwiki-option-css_name*
 | 
				
			||||||
-------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value~
 | 
					Key             Default value~
 | 
				
			||||||
css_name        style.css
 | 
					css_name        style.css
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -857,7 +1045,7 @@ or even >
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-gohome*
 | 
					*vimwiki-option-gohome*
 | 
				
			||||||
-----------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value     Values~
 | 
					Key             Default value     Values~
 | 
				
			||||||
gohome          split             split, vsplit, tabe
 | 
					gohome          split             split, vsplit, tabe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -871,7 +1059,7 @@ Ex: >
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-maxhi*
 | 
					*vimwiki-option-maxhi*
 | 
				
			||||||
----------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value     Values~
 | 
					Key             Default value     Values~
 | 
				
			||||||
maxhi           1                 0, 1
 | 
					maxhi           1                 0, 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -884,7 +1072,7 @@ This disables filesystem checks for WikiWords.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*vimwiki-option-nested_syntaxes*
 | 
					*vimwiki-option-nested_syntaxes*
 | 
				
			||||||
--------------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
Key             Default value     Values~
 | 
					Key             Default value     Values~
 | 
				
			||||||
nested_syntaxes {}                pairs of highlight keyword and vim filetype
 | 
					nested_syntaxes {}                pairs of highlight keyword and vim filetype
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -927,7 +1115,51 @@ or in: >
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Global options
 | 
					*vimwiki-option-diary_rel_path*
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					Key             Default value~
 | 
				
			||||||
 | 
					diary_rel_path  diary/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Description~
 | 
				
			||||||
 | 
					Related to |vimwiki-option-path| path for diary wiki-files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*vimwiki-option-diary_index*
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					Key             Default value~
 | 
				
			||||||
 | 
					diary_index     diary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Description~
 | 
				
			||||||
 | 
					Name of wiki-file that holds all links to dated wiki-files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*vimwiki-option-diary_header*
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					Key             Default value~
 | 
				
			||||||
 | 
					diary_header    Diary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Description~
 | 
				
			||||||
 | 
					Name of the header in |vimwiki-option-diary_index| where links to dated
 | 
				
			||||||
 | 
					wiki-files are located.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*vimwiki-option-diary_link_count*
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					Key               Default value~
 | 
				
			||||||
 | 
					diary_link_count  4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Description~
 | 
				
			||||||
 | 
					Number of maximum dated links placed on one line.
 | 
				
			||||||
 | 
					Ex:
 | 
				
			||||||
 | 
					= Diary =
 | 
				
			||||||
 | 
					|| [[2010-01-30]] || [[2010-01-29]] || [[2010-01-28]] || [[2010-01-27]] ||
 | 
				
			||||||
 | 
					|| [[2010-01-26]] || [[2010-01-25]] ||
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					GLOBAL OPTIONS                                        *viwmiki-global-options*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Use: >
 | 
					Use: >
 | 
				
			||||||
    let g:option_name=option_value
 | 
					    let g:option_name=option_value
 | 
				
			||||||
to set them.
 | 
					to set them.
 | 
				
			||||||
@@ -942,7 +1174,7 @@ Value           Description~
 | 
				
			|||||||
0               Use |hl-Title| or  VimwikiHeader1-VimwikiHeader6 (if defined
 | 
					0               Use |hl-Title| or  VimwikiHeader1-VimwikiHeader6 (if defined
 | 
				
			||||||
                in a colorscheme)
 | 
					                in a colorscheme)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Default: 0
 | 
					Default: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
------------------------------------------------------------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
@@ -1115,6 +1347,19 @@ Value           Description~
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Default: 1
 | 
					Default: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					*g:vimwiki_use_calendar*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Create new or open existing diary wiki-file for the date selected in Calendar.
 | 
				
			||||||
 | 
					See |vimwiki-calendar|.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Value           Description~
 | 
				
			||||||
 | 
					0               Do not use calendar.
 | 
				
			||||||
 | 
					1               Use calendar.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Default: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
------------------------------------------------------------------------------
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
*g:vimwiki_browsers* *VimwikiWeblinkHandler*
 | 
					*g:vimwiki_browsers* *VimwikiWeblinkHandler*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1136,8 +1381,37 @@ or redefine VimwikiWeblinkHandler function: >
 | 
				
			|||||||
  endfunction
 | 
					  endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					*g:vimwiki_table_auto_fmt*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Turn on/off table auto-formatting.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Value           Description~
 | 
				
			||||||
 | 
					0               Do not auto-format tables.
 | 
				
			||||||
 | 
					1               Auto-format tables.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Default: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					*g:vimwiki_w32_dir_enc*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Convert directory name from current |encoding| into 'g:vimwiki_w32_dir_enc'
 | 
				
			||||||
 | 
					before it is created.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If have 'enc=utf-8' and you set up >
 | 
				
			||||||
 | 
					    let g:vimwiki_w32_dir_enc = 'cp1251'
 | 
				
			||||||
 | 
					<
 | 
				
			||||||
 | 
					then following the next link with <CR>: >
 | 
				
			||||||
 | 
					    [[привет/мир]]
 | 
				
			||||||
 | 
					>
 | 
				
			||||||
 | 
					would convert utf-8 'привет' to cp1251 and create directory with that name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Default value: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
10. Help                                                        *vimwiki-help*
 | 
					12. Help                                                        *vimwiki-help*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
As you could see I am not native English speaker (not a writer as well).
 | 
					As you could see I am not native English speaker (not a writer as well).
 | 
				
			||||||
Please send me correct phrases instead of that incorrect stuff I have used
 | 
					Please send me correct phrases instead of that incorrect stuff I have used
 | 
				
			||||||
@@ -1146,7 +1420,7 @@ here.
 | 
				
			|||||||
Any help is really appreciated!
 | 
					Any help is really appreciated!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
11. Author                                                    *vimwiki-author*
 | 
					13. Author                                                    *vimwiki-author*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
I live in Moscow and you may believe me -- there are no polar bears (no brown
 | 
					I live in Moscow and you may believe me -- there are no polar bears (no brown
 | 
				
			||||||
too) here in the streets.
 | 
					too) here in the streets.
 | 
				
			||||||
@@ -1165,7 +1439,30 @@ Vimwiki's website: http://code.google.com/p/vimwiki/
 | 
				
			|||||||
Vim plugins website: http://www.vim.org/scripts/script.php?script_id=2226
 | 
					Vim plugins website: http://www.vim.org/scripts/script.php?script_id=2226
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
12. Changelog                                              *vimwiki-changelog*
 | 
					14. Changelog                                              *vimwiki-changelog*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					0.9.9~
 | 
				
			||||||
 | 
					    * NEW: Diary. Help in making daily notes. See |vimwiki-diary|. Now you can
 | 
				
			||||||
 | 
					      really easy add information into vimwiki that should be sorted out
 | 
				
			||||||
 | 
					      later.
 | 
				
			||||||
 | 
					    * NEW: Tables are redesigned. Syntax is changed. Now they are
 | 
				
			||||||
 | 
					      auto-formattable. You can navigate them with <tab> and <cr> in insert
 | 
				
			||||||
 | 
					      mode. See |vimwiki-syntax-tables| and |vimwiki-tables| for more details.
 | 
				
			||||||
 | 
					    * NEW: Keyword STARTED: is added.
 | 
				
			||||||
 | 
					    * NEW: Words TODO:, DONE:, STARTED:, XXX:, FIXME:, FIXED: are highlighed
 | 
				
			||||||
 | 
					      inside headers.
 | 
				
			||||||
 | 
					    * FIX: Export to html external links with 'file://' protocol. Ex:
 | 
				
			||||||
 | 
					      [file:///home/user1/book.pdf my book].
 | 
				
			||||||
 | 
					    * FIX: Menu is corrupted if wiki's path contains spaces.
 | 
				
			||||||
 | 
					    * FIX: Settings |wrap| and |linebreak| are removed from ftplugin. Add them
 | 
				
			||||||
 | 
					      into your personal settings file `.vim/after/ftplugin/vimwiki.vim` if
 | 
				
			||||||
 | 
					      needed.
 | 
				
			||||||
 | 
					    * NEW: Headers are highlighted in different colors by default.
 | 
				
			||||||
 | 
					      See |g:vimwiki_hl_headers| to turn it off.
 | 
				
			||||||
 | 
					    * FIX: Issue 40: Links with russian subdirs don't work.
 | 
				
			||||||
 | 
					    * NEW: It is now possible to generate HTML files automatically on page
 | 
				
			||||||
 | 
					      save. See |vimwiki-option-auto_export|.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
0.9.8~
 | 
					0.9.8~
 | 
				
			||||||
    * NEW: Rename |g:vimwiki_fold_empty_lines| to
 | 
					    * NEW: Rename |g:vimwiki_fold_empty_lines| to
 | 
				
			||||||
@@ -1517,12 +1814,12 @@ Vim plugins website: http://www.vim.org/scripts/script.php?script_id=2226
 | 
				
			|||||||
    * First public version.
 | 
					    * First public version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
13. License                                                  *vimwiki-license*
 | 
					15. License                                                  *vimwiki-license*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The MIT Licence
 | 
					The MIT Licence
 | 
				
			||||||
http://www.opensource.org/licenses/mit-license.php
 | 
					http://www.opensource.org/licenses/mit-license.php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Copyright (c) 2009 Maxim Kim
 | 
					Copyright (c) 2010 Maxim Kim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ let b:did_ftplugin = 1  " Don't load another plugin for this buffer
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
" UNDO list {{{
 | 
					" UNDO list {{{
 | 
				
			||||||
" Reset the following options to undo this plugin.
 | 
					" Reset the following options to undo this plugin.
 | 
				
			||||||
let b:undo_ftplugin = "setlocal wrap< linebreak< ".
 | 
					let b:undo_ftplugin = "setlocal ".
 | 
				
			||||||
      \ "suffixesadd< isfname< comments< ".
 | 
					      \ "suffixesadd< isfname< comments< ".
 | 
				
			||||||
      \ "autowriteall< ".
 | 
					      \ "autowriteall< ".
 | 
				
			||||||
      \ "formatoptions< foldtext< ".
 | 
					      \ "formatoptions< foldtext< ".
 | 
				
			||||||
@@ -18,8 +18,6 @@ let b:undo_ftplugin = "setlocal wrap< linebreak< ".
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
" MISC STUFF {{{
 | 
					" MISC STUFF {{{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
setlocal wrap
 | 
					 | 
				
			||||||
setlocal linebreak
 | 
					 | 
				
			||||||
setlocal autowriteall
 | 
					setlocal autowriteall
 | 
				
			||||||
setlocal commentstring=<!--%s-->
 | 
					setlocal commentstring=<!--%s-->
 | 
				
			||||||
" MISC }}}
 | 
					" MISC }}}
 | 
				
			||||||
@@ -39,9 +37,9 @@ else
 | 
				
			|||||||
endif
 | 
					endif
 | 
				
			||||||
setlocal formatoptions=tnro
 | 
					setlocal formatoptions=tnro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
inoremap <expr> <CR> vimwiki_lst#insertCR()
 | 
					inoremap <buffer> <expr> <CR> vimwiki_lst#insertCR()
 | 
				
			||||||
nnoremap o :call vimwiki_lst#insertOo('o')<CR>a
 | 
					nnoremap <buffer> o :call vimwiki_lst#insertOo('o')<CR>a
 | 
				
			||||||
nnoremap O :call vimwiki_lst#insertOo('O')<CR>a
 | 
					nnoremap <buffer> O :call vimwiki_lst#insertOo('O')<CR>a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" COMMENTS }}}
 | 
					" COMMENTS }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -213,6 +211,11 @@ exe 'command! -buffer -nargs=* VimwikiSearch vimgrep <args> '.
 | 
				
			|||||||
exe 'command! -buffer -nargs=* VWS vimgrep <args> '.
 | 
					exe 'command! -buffer -nargs=* VWS vimgrep <args> '.
 | 
				
			||||||
      \ escape(VimwikiGet('path').'**/*'.VimwikiGet('ext'), ' ')
 | 
					      \ escape(VimwikiGet('path').'**/*'.VimwikiGet('ext'), ' ')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" table commands
 | 
				
			||||||
 | 
					command! -buffer -nargs=* VimwikiTable call vimwiki_tbl#create(<f-args>)
 | 
				
			||||||
 | 
					command! -buffer VimwikiTableAlignQ call vimwiki_tbl#align_or_cmd('gqq')
 | 
				
			||||||
 | 
					command! -buffer VimwikiTableAlignW call vimwiki_tbl#align_or_cmd('gww')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" COMMANDS }}}
 | 
					" COMMANDS }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" KEYBINDINGS {{{
 | 
					" KEYBINDINGS {{{
 | 
				
			||||||
@@ -284,6 +287,16 @@ noremap <silent><script><buffer>
 | 
				
			|||||||
      \ <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR>
 | 
					      \ <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Table mappings
 | 
				
			||||||
 | 
					if g:vimwiki_table_auto_fmt
 | 
				
			||||||
 | 
					  inoremap <expr> <buffer> <CR> vimwiki_tbl#kbd_cr()
 | 
				
			||||||
 | 
					  inoremap <expr> <buffer> <Tab> vimwiki_tbl#kbd_tab()
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nnoremap <buffer> gqq :VimwikiTableAlignQ<CR>
 | 
				
			||||||
 | 
					nnoremap <buffer> gww :VimwikiTableAlignW<CR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Text objects {{{
 | 
					" Text objects {{{
 | 
				
			||||||
omap <silent><buffer> ah :<C-U>call vimwiki#TO_header(0, 0)<CR>
 | 
					omap <silent><buffer> ah :<C-U>call vimwiki#TO_header(0, 0)<CR>
 | 
				
			||||||
vmap <silent><buffer> ah :<C-U>call vimwiki#TO_header(0, 1)<CR>
 | 
					vmap <silent><buffer> ah :<C-U>call vimwiki#TO_header(0, 1)<CR>
 | 
				
			||||||
@@ -297,3 +310,13 @@ nmap <silent><buffer> - :call vimwiki#RemoveHeaderLevel()<CR>
 | 
				
			|||||||
" }}}
 | 
					" }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" KEYBINDINGS }}}
 | 
					" KEYBINDINGS }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" AUTOCOMMANDS {{{
 | 
				
			||||||
 | 
					if VimwikiGet('auto_export')
 | 
				
			||||||
 | 
					  " Automatically generate HTML on page write.
 | 
				
			||||||
 | 
					  augroup vimwiki
 | 
				
			||||||
 | 
					    au BufWritePost <buffer> Vimwiki2HTML
 | 
				
			||||||
 | 
					  augroup END
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" AUTOCOMMANDS }}}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,6 +48,11 @@ function! s:setup_buffer_leave()"{{{
 | 
				
			|||||||
  if &filetype == 'vimwiki' && !exists("b:vimwiki_idx")
 | 
					  if &filetype == 'vimwiki' && !exists("b:vimwiki_idx")
 | 
				
			||||||
    let b:vimwiki_idx = g:vimwiki_current_idx
 | 
					    let b:vimwiki_idx = g:vimwiki_current_idx
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " Set up menu
 | 
				
			||||||
 | 
					  if g:vimwiki_menu != ""
 | 
				
			||||||
 | 
					    exe 'nmenu disable '.g:vimwiki_menu.'.Table'
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
endfunction"}}}
 | 
					endfunction"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:setup_buffer_enter() "{{{
 | 
					function! s:setup_buffer_enter() "{{{
 | 
				
			||||||
@@ -95,6 +100,11 @@ function! s:setup_buffer_enter() "{{{
 | 
				
			|||||||
    setlocal foldexpr=VimwikiFoldLevel(v:lnum)
 | 
					    setlocal foldexpr=VimwikiFoldLevel(v:lnum)
 | 
				
			||||||
    setlocal foldtext=VimwikiFoldText()
 | 
					    setlocal foldtext=VimwikiFoldText()
 | 
				
			||||||
  endif
 | 
					  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  " Set up menu
 | 
				
			||||||
 | 
					  if g:vimwiki_menu != ""
 | 
				
			||||||
 | 
					    exe 'nmenu enable '.g:vimwiki_menu.'.Table'
 | 
				
			||||||
 | 
					  endif
 | 
				
			||||||
endfunction "}}}
 | 
					endfunction "}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:setup_colors()"{{{
 | 
					function! s:setup_colors()"{{{
 | 
				
			||||||
@@ -197,6 +207,18 @@ let s:vimwiki_defaults.gohome = 'split'
 | 
				
			|||||||
let s:vimwiki_defaults.html_header = ''
 | 
					let s:vimwiki_defaults.html_header = ''
 | 
				
			||||||
let s:vimwiki_defaults.html_footer = ''
 | 
					let s:vimwiki_defaults.html_footer = ''
 | 
				
			||||||
let s:vimwiki_defaults.nested_syntaxes = {}
 | 
					let s:vimwiki_defaults.nested_syntaxes = {}
 | 
				
			||||||
 | 
					let s:vimwiki_defaults.auto_export = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" diary
 | 
				
			||||||
 | 
					let s:vimwiki_defaults.diary_rel_path = 'diary/'
 | 
				
			||||||
 | 
					let s:vimwiki_defaults.diary_index = 'diary'
 | 
				
			||||||
 | 
					let s:vimwiki_defaults.diary_header = 'Diary'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" Do not change this! Will wait till vim would be more datetime awareable.
 | 
				
			||||||
 | 
					let s:vimwiki_defaults.diary_link_fmt = '%Y-%m-%d'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let s:vimwiki_defaults.diary_link_count = 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"}}}
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" DEFAULT options {{{
 | 
					" DEFAULT options {{{
 | 
				
			||||||
@@ -218,7 +240,7 @@ call s:default('fold_trailing_empty_lines', 0)
 | 
				
			|||||||
call s:default('fold_lists', 0)
 | 
					call s:default('fold_lists', 0)
 | 
				
			||||||
call s:default('menu', 'Vimwiki')
 | 
					call s:default('menu', 'Vimwiki')
 | 
				
			||||||
call s:default('global_ext', 1)
 | 
					call s:default('global_ext', 1)
 | 
				
			||||||
call s:default('hl_headers', 0)
 | 
					call s:default('hl_headers', 1)
 | 
				
			||||||
call s:default('hl_cb_checked', 0)
 | 
					call s:default('hl_cb_checked', 0)
 | 
				
			||||||
call s:default('camel_case', 1)
 | 
					call s:default('camel_case', 1)
 | 
				
			||||||
call s:default('list_ignore_newline', 1)
 | 
					call s:default('list_ignore_newline', 1)
 | 
				
			||||||
@@ -240,6 +262,10 @@ else
 | 
				
			|||||||
        \ ])
 | 
					        \ ])
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					call s:default('use_calendar', 1)
 | 
				
			||||||
 | 
					call s:default('table_auto_fmt', 1)
 | 
				
			||||||
 | 
					call s:default('w32_dir_enc', '')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
call s:default('current_idx', 0)
 | 
					call s:default('current_idx', 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let upp = g:vimwiki_upper
 | 
					let upp = g:vimwiki_upper
 | 
				
			||||||
@@ -263,7 +289,7 @@ let g:vimwiki_rxWeblink = '\%("[^"(]\+\((\([^)]\+\))\)\?":\)\?'.
 | 
				
			|||||||
      \'\%(\%(\%(//\)\|\%(\\\\\)\)\+[A-Za-z0-9:#@%/;,$~()_?+=.&\\\-]*\)'
 | 
					      \'\%(\%(\%(//\)\|\%(\\\\\)\)\+[A-Za-z0-9:#@%/;,$~()_?+=.&\\\-]*\)'
 | 
				
			||||||
"}}}
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" FILETYPE setup for all known wiki extensions {{{
 | 
					" AUTOCOMMANDS for all known wiki extensions {{{
 | 
				
			||||||
" Getting all extensions that different wikies could have
 | 
					" Getting all extensions that different wikies could have
 | 
				
			||||||
let extensions = {}
 | 
					let extensions = {}
 | 
				
			||||||
for wiki in g:vimwiki_list
 | 
					for wiki in g:vimwiki_list
 | 
				
			||||||
@@ -282,12 +308,21 @@ augroup end
 | 
				
			|||||||
augroup vimwiki
 | 
					augroup vimwiki
 | 
				
			||||||
  autocmd!
 | 
					  autocmd!
 | 
				
			||||||
  for ext in keys(extensions)
 | 
					  for ext in keys(extensions)
 | 
				
			||||||
    execute 'autocmd BufEnter *'.ext.' call s:setup_buffer_enter()'
 | 
					    exe 'autocmd BufEnter *'.ext.' call s:setup_buffer_enter()'
 | 
				
			||||||
    execute 'autocmd BufLeave,BufHidden *'.ext.' call s:setup_buffer_leave()'
 | 
					    exe 'autocmd BufLeave,BufHidden *'.ext.' call s:setup_buffer_leave()'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    " ColorScheme could have or could have not a VimwikiHeader1..VimwikiHeader6
 | 
					    " ColorScheme could have or could have not a
 | 
				
			||||||
    " highlight groups. We need to refresh syntax after colorscheme change.
 | 
					    " VimwikiHeader1..VimwikiHeader6 highlight groups. We need to refresh
 | 
				
			||||||
    execute 'autocmd ColorScheme *'.ext.' call s:setup_colors() | set syntax=vimwiki'
 | 
					    " syntax after colorscheme change.
 | 
				
			||||||
 | 
					    exe 'autocmd ColorScheme *'.ext.' call s:setup_colors()'.
 | 
				
			||||||
 | 
					          \ ' | set syntax=vimwiki'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    " Format tables when exit from insert mode. Do not use textwidth to
 | 
				
			||||||
 | 
					    " autowrap tables.
 | 
				
			||||||
 | 
					    if g:vimwiki_table_auto_fmt
 | 
				
			||||||
 | 
					      exe 'autocmd InsertLeave *'.ext.' call vimwiki_tbl#format(line("."))'
 | 
				
			||||||
 | 
					      exe 'autocmd InsertEnter *'.ext.' call vimwiki_tbl#reset_tw(line("."))'
 | 
				
			||||||
 | 
					    endif
 | 
				
			||||||
  endfor
 | 
					  endfor
 | 
				
			||||||
augroup END
 | 
					augroup END
 | 
				
			||||||
"}}}
 | 
					"}}}
 | 
				
			||||||
@@ -298,6 +333,11 @@ command! -count VimwikiGoHome
 | 
				
			|||||||
      \ call vimwiki#WikiGoHome(v:count1)
 | 
					      \ call vimwiki#WikiGoHome(v:count1)
 | 
				
			||||||
command! -count VimwikiTabGoHome tabedit <bar>
 | 
					command! -count VimwikiTabGoHome tabedit <bar>
 | 
				
			||||||
      \ call vimwiki#WikiGoHome(v:count1)
 | 
					      \ call vimwiki#WikiGoHome(v:count1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					command! -count VimwikiMakeDiaryNote
 | 
				
			||||||
 | 
					      \ call vimwiki_diary#make_note(v:count1)
 | 
				
			||||||
 | 
					command! -count VimwikiTabMakeDiaryNote tabedit <bar>
 | 
				
			||||||
 | 
					      \ call vimwiki_diary#make_note(v:count1)
 | 
				
			||||||
"}}}
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" MAPPINGS {{{
 | 
					" MAPPINGS {{{
 | 
				
			||||||
@@ -316,21 +356,50 @@ if !hasmapto('<Plug>VimwikiUISelect')
 | 
				
			|||||||
endif
 | 
					endif
 | 
				
			||||||
noremap <unique><script> <Plug>VimwikiUISelect :VimwikiUISelect<CR>
 | 
					noremap <unique><script> <Plug>VimwikiUISelect :VimwikiUISelect<CR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if !hasmapto('<Plug>VimwikiMakeDiaryNote')
 | 
				
			||||||
 | 
					  map <silent><unique> <Leader>w<Leader>w <Plug>VimwikiMakeDiaryNote
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					noremap <unique><script> <Plug>VimwikiMakeDiaryNote :VimwikiMakeDiaryNote<CR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if !hasmapto('<Plug>VimwikiTabMakeDiaryNote')
 | 
				
			||||||
 | 
					  map <silent><unique> <Leader>w<Leader>t <Plug>VimwikiTabMakeDiaryNote
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					noremap <unique><script> <Plug>VimwikiTabMakeDiaryNote
 | 
				
			||||||
 | 
					      \ :VimwikiTabMakeDiaryNote<CR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"}}}
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" MENU {{{
 | 
					" MENU {{{
 | 
				
			||||||
function! s:build_menu(path)
 | 
					function! s:build_menu(topmenu)
 | 
				
			||||||
  let idx = 0
 | 
					  let idx = 0
 | 
				
			||||||
  while idx < len(g:vimwiki_list)
 | 
					  while idx < len(g:vimwiki_list)
 | 
				
			||||||
    execute 'menu '.a:path.'.'.VimwikiGet('path', idx).
 | 
					    let norm_path = fnamemodify(VimwikiGet('path', idx), ':h:t')
 | 
				
			||||||
 | 
					    let norm_path = escape(norm_path, '\ ')
 | 
				
			||||||
 | 
					    execute 'menu '.a:topmenu.'.Open\ index.'.norm_path.
 | 
				
			||||||
          \ ' :call vimwiki#WikiGoHome('.(idx + 1).')<CR>'
 | 
					          \ ' :call vimwiki#WikiGoHome('.(idx + 1).')<CR>'
 | 
				
			||||||
 | 
					    execute 'menu '.a:topmenu.'.Open/Create\ diary\ note.'.norm_path.
 | 
				
			||||||
 | 
					          \ ' :call vimwiki_diary#make_note('.(idx + 1).')<CR>'
 | 
				
			||||||
    let idx += 1
 | 
					    let idx += 1
 | 
				
			||||||
  endwhile
 | 
					  endwhile
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function! s:build_table_menu(topmenu)
 | 
				
			||||||
 | 
					  exe 'menu '.a:topmenu.'.-Sep- :'
 | 
				
			||||||
 | 
					  exe 'menu '.a:topmenu.'.Table.Create\ (enter\ cols\ rows) :VimwikiTable '
 | 
				
			||||||
 | 
					  exe 'nmenu '.a:topmenu.'.Table.Format<tab>gqq gqq'
 | 
				
			||||||
 | 
					  exe 'nmenu disable '.a:topmenu.'.Table'
 | 
				
			||||||
 | 
					endfunction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if !empty(g:vimwiki_menu)
 | 
					if !empty(g:vimwiki_menu)
 | 
				
			||||||
  call s:build_menu(g:vimwiki_menu)
 | 
					  call s:build_menu(g:vimwiki_menu)
 | 
				
			||||||
 | 
					  call s:build_table_menu(g:vimwiki_menu)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
" }}}
 | 
					" }}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					" CALENDAR Hook "{{{
 | 
				
			||||||
 | 
					if g:vimwiki_use_calendar
 | 
				
			||||||
 | 
					  let g:calendar_action = 'vimwiki_diary#calendar_action'
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let &cpo = s:old_cpo
 | 
					let &cpo = s:old_cpo
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,14 +32,21 @@ execute 'syntax match VimwikiLink `'.g:vimwiki_rxWeblink.'`'
 | 
				
			|||||||
" Emoticons
 | 
					" Emoticons
 | 
				
			||||||
syntax match VimwikiEmoticons /\%((.)\|:[()|$@]\|:-[DOPS()\]|$@]\|;)\|:'(\)/
 | 
					syntax match VimwikiEmoticons /\%((.)\|:[()|$@]\|:-[DOPS()\]|$@]\|;)\|:'(\)/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let g:vimwiki_rxTodo = '\C\%(TODO:\|DONE:\|FIXME:\|FIXED:\|XXX:\)'
 | 
					let g:vimwiki_rxTodo = '\C\%(TODO:\|DONE:\|STARTED:\|FIXME:\|FIXED:\|XXX:\)'
 | 
				
			||||||
execute 'syntax match VimwikiTodo /'. g:vimwiki_rxTodo .'/'
 | 
					execute 'syntax match VimwikiTodo /'. g:vimwiki_rxTodo .'/'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Load concrete Wiki syntax
 | 
					" Load concrete Wiki syntax
 | 
				
			||||||
execute 'runtime! syntax/vimwiki_'.VimwikiGet('syntax').'.vim'
 | 
					execute 'runtime! syntax/vimwiki_'.VimwikiGet('syntax').'.vim'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" Tables
 | 
					" Tables
 | 
				
			||||||
execute 'syntax match VimwikiTable /'.g:vimwiki_rxTable.'/'
 | 
					" execute 'syntax match VimwikiTable /'.g:vimwiki_rxTable.'/'
 | 
				
			||||||
 | 
					syntax match VimwikiTableRow /\s*|.\+|\s*/
 | 
				
			||||||
 | 
					      \ transparent contains=VimwikiCellSeparator,VimwikiWord,
 | 
				
			||||||
 | 
					      \ VimwikiNoExistsWord,VimwikiEmoticons,VimwikiTodo,
 | 
				
			||||||
 | 
					      \ VimwikiBold,VimwikiItalic,VimwikiBoldItalic,VimwikiItalicBold,
 | 
				
			||||||
 | 
					      \ VimwikiDelText,VimwikiSuperScript,VimwikiSubScript,VimwikiCode
 | 
				
			||||||
 | 
					syntax match VimwikiCellSeparator
 | 
				
			||||||
 | 
					      \ /\%(|\)\|\%(-\@<=+\-\@=\)\|\%([|+]\@<=-\+\)/ contained
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" List items
 | 
					" List items
 | 
				
			||||||
execute 'syntax match VimwikiList /'.g:vimwiki_rxListBullet.'/'
 | 
					execute 'syntax match VimwikiList /'.g:vimwiki_rxListBullet.'/'
 | 
				
			||||||
@@ -80,15 +87,15 @@ endif
 | 
				
			|||||||
syntax region VimwikiComment start='<!--' end='-->'
 | 
					syntax region VimwikiComment start='<!--' end='-->'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if !vimwiki#hl_exists("VimwikiHeader1")
 | 
					if !vimwiki#hl_exists("VimwikiHeader1")
 | 
				
			||||||
  execute 'syntax match VimwikiHeader /'.g:vimwiki_rxHeader.'/'
 | 
					  execute 'syntax match VimwikiHeader /'.g:vimwiki_rxHeader.'/ contains=VimwikiTodo'
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
  " Header levels, 1-6
 | 
					  " Header levels, 1-6
 | 
				
			||||||
  execute 'syntax match VimwikiHeader1 /'.g:vimwiki_rxH1.'/'
 | 
					  execute 'syntax match VimwikiHeader1 /'.g:vimwiki_rxH1.'/ contains=VimwikiTodo'
 | 
				
			||||||
  execute 'syntax match VimwikiHeader2 /'.g:vimwiki_rxH2.'/'
 | 
					  execute 'syntax match VimwikiHeader2 /'.g:vimwiki_rxH2.'/ contains=VimwikiTodo'
 | 
				
			||||||
  execute 'syntax match VimwikiHeader3 /'.g:vimwiki_rxH3.'/'
 | 
					  execute 'syntax match VimwikiHeader3 /'.g:vimwiki_rxH3.'/ contains=VimwikiTodo'
 | 
				
			||||||
  execute 'syntax match VimwikiHeader4 /'.g:vimwiki_rxH4.'/'
 | 
					  execute 'syntax match VimwikiHeader4 /'.g:vimwiki_rxH4.'/ contains=VimwikiTodo'
 | 
				
			||||||
  execute 'syntax match VimwikiHeader5 /'.g:vimwiki_rxH5.'/'
 | 
					  execute 'syntax match VimwikiHeader5 /'.g:vimwiki_rxH5.'/ contains=VimwikiTodo'
 | 
				
			||||||
  execute 'syntax match VimwikiHeader6 /'.g:vimwiki_rxH6.'/'
 | 
					  execute 'syntax match VimwikiHeader6 /'.g:vimwiki_rxH6.'/ contains=VimwikiTodo'
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
" group names "{{{
 | 
					" group names "{{{
 | 
				
			||||||
@@ -117,13 +124,14 @@ hi def link VimwikiLink Underlined
 | 
				
			|||||||
hi def link VimwikiList Function
 | 
					hi def link VimwikiList Function
 | 
				
			||||||
hi def link VimwikiCheckBox VimwikiList
 | 
					hi def link VimwikiCheckBox VimwikiList
 | 
				
			||||||
hi def link VimwikiCheckBoxDone Comment
 | 
					hi def link VimwikiCheckBoxDone Comment
 | 
				
			||||||
hi def link VimwikiTable PreProc
 | 
					 | 
				
			||||||
hi def link VimwikiEmoticons Character
 | 
					hi def link VimwikiEmoticons Character
 | 
				
			||||||
hi def link VimwikiDelText Constant
 | 
					hi def link VimwikiDelText Constant
 | 
				
			||||||
hi def link VimwikiSuperScript Number
 | 
					hi def link VimwikiSuperScript Number
 | 
				
			||||||
hi def link VimwikiSubScript Number
 | 
					hi def link VimwikiSubScript Number
 | 
				
			||||||
hi def link VimwikiTodo Todo
 | 
					hi def link VimwikiTodo Todo
 | 
				
			||||||
hi def link VimwikiComment Comment
 | 
					hi def link VimwikiComment Comment
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					hi def link VimwikiCellSeparator SpecialKey
 | 
				
			||||||
"}}}
 | 
					"}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let b:current_syntax="vimwiki"
 | 
					let b:current_syntax="vimwiki"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user