Finally introduce commands for all list keys

and update the documentation
This commit is contained in:
EinfachToll 2014-01-06 14:11:16 +01:00
parent 41d46eb42a
commit 74c3372c44
2 changed files with 458 additions and 175 deletions

View File

@ -199,6 +199,21 @@ See also |:VimwikiTabMakeDiaryNote|
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
3.2. Local mappings 3.2. Local mappings
To remap one of these keys, either put it in your .vimrc like this >
:nmap <Leader>wc <Plug>Vimwiki2HTML
or, the better way, put it in a file .vim/ftplugin/vimwiki.vim like this >
:nmap <silent><buffer> <Leader>wc <Plug>Vimwiki2HTML
The latter has the advantage that the mapping is local to viwiki buffers in
every case.
Also note that some keys work in normal mode as well as in visual mode. If you
remap them using :map, they will also run in operator-pending mode. If you
don't want that, use >
:nmap <Leader>tt <Plug>VimwikiToggleCheckbox
:vmap <Leader>tt <Plug>VimwikiToggleCheckbox
NORMAL MODE *vimwiki-local-mappings* NORMAL MODE *vimwiki-local-mappings*
*vimwiki_<Leader>wh* *vimwiki_<Leader>wh*
<Leader>wh Convert current wiki page to HTML. <Leader>wh Convert current wiki page to HTML.
@ -302,80 +317,118 @@ NORMAL MODE *vimwiki-local-mappings*
the selected text . the selected text .
*vimwiki_<C-Space>* *vimwiki_<C-Space>*
<C-Space> Toggle list item on/off (checked/unchecked) <C-Space> Toggle checkbox of a list item on/off
Maps to |:VimwikiToggleListItem|. Maps to |:VimwikiToggleCheckbox|.
See |vimwiki-todo-lists|.
To remap: > To remap: >
:nmap <leader>tt <Plug>VimwikiToggleListItem :map <Leader>tt <Plug>VimwikiToggleCheckbox
< See |vimwiki-todo-lists|. <
*vimwiki_gl<Space>* *vimwiki_gL<Space>*
*vimwiki_gl<Space>*
gl<Space> Remove checkbox from list item. gl<Space> Remove checkbox from list item.
*vimwiki_gL<Space>*
gL<Space> Remove checkboxes from all sibling list items. gL<Space> Remove checkboxes from all sibling list items.
To remap: >
:map <Leader><Space> <Plug>VimwikiRemoveSingleCB
:map <Leader><Space> <Plug>VimwikiRemoveCBInList
<
*vimwiki_gll* *vimwiki_gLl* *vimwiki_gll* *vimwiki_gLl*
gll Increase the level of a list item. gll Increase the level of a list item.
gLl Increase the level of a list item and all child items. gLl Increase the level of a list item and all child items.
To remap: >
:map >> <Plug>VimwikiIncreaseLvlSingleItem
:map >>> <Plug>VimwikiIncreaseLvlWholeItem
<
*vimwiki_glh* *vimwiki_gLh* *vimwiki_glh* *vimwiki_gLh*
glh Decrease the level of a list item. glh Decrease the level of a list item.
gLh Decrease the level of a list item and all child items. gLh Decrease the level of a list item and all child items.
To remap: >
:map << <Plug>VimwikiDecreaseLvlSingleItem
:map >>> <Plug>VimwikiDecreaseLvlWholeItem
<
*vimwiki_glr* *vimwiki_gLr* *vimwiki_glr* *vimwiki_gLr*
glr Renumber list items for the current list. glr Renumber list items in the current list.
gLr Renumber list items for the whole buffer. gLr Renumber list items in the whole buffer.
Also readjust checkboxes.
To remap: >
:nmap <c-r> <Plug>VimwikiRenumberList
:nmap <c-r> <Plug>VimwikiRenumberAllLists
<
*vimwiki_glstar* *vimwiki_gLstar* *vimwiki_glstar* *vimwiki_gLstar*
gl* Make a list item out of normal line or change the marker gl* Make a list item out of normal line or change the symbol
of the current item to *. of the current item to *.
gL* Change the marker of the current list to *. gL* Change the symbol of the current list to *.
To remap: >
noremap glo :VimwikiChangeSymbolTo *<CR>
noremap glO :VimwikiChangeSymbolInListTo *<CR>
<
*vimwiki_gl#* *vimwiki_gL#* *vimwiki_gl#* *vimwiki_gL#*
gl# Make a list item out of normal line or change the marker gl# Make a list item out of normal line or change the symbol
of the current item to #. of the current item to #.
gL# Change the marker of the current list to #. gL# Change the symbol of the current list to #.
To remap: >
noremap glo :VimwikiChangeSymbolTo #<CR>
noremap glO :VimwikiChangeSymbolInListTo #<CR>
<
*vimwiki_gl-* *vimwiki_gL-* *vimwiki_gl-* *vimwiki_gL-*
gl- Make a list item out of normal line or change the marker gl- Make a list item out of normal line or change the symbol
of the current item to -. of the current item to -.
gL- Change the marker of the current list to -. gL- Change the symbol of the current list to -.
To remap: >
noremap glo :VimwikiChangeSymbolTo -<CR>
noremap glO :VimwikiChangeSymbolInListTo -<CR>
<
*vimwiki_gl.* *vimwiki_gL.* *vimwiki_gl.* *vimwiki_gL.*
gl. Make a list item out of normal line or change the marker gl. Make a list item out of normal line or change the symbol
of the current item to •. of the current item to •.
gL. Change the marker of the current list to •. gL. Change the symbol of the current list to •.
To remap: >
noremap glo :VimwikiChangeSymbolTo •<CR>
noremap glO :VimwikiChangeSymbolInListTo •<CR>
<
*vimwiki_gl1* *vimwiki_gL1* *vimwiki_gl1* *vimwiki_gL1*
gl1 Make a list item out of normal line or change the marker gl1 Make a list item out of normal line or change the symbol
of the current item to 1., the numbering is adjusted of the current item to 1., the numbering is adjusted
according to the surrounding list items. according to the surrounding list items.
gL1 Change the marker of the current list to 1. 2. 3. ... gL1 Change the symbol of the current list to 1. 2. 3. ...
To remap: >
noremap glo :VimwikiChangeSymbolTo 1.<CR>
noremap glO :VimwikiChangeSymbolInListTo 1.<CR>
<
*vimwiki_gla* *vimwiki_gLa* *vimwiki_gla* *vimwiki_gLa*
gla Make a list item out of normal line or change the marker gla Make a list item out of normal line or change the symbol
of the current item to a), the numbering is adjusted of the current item to a), the numbering is adjusted
according to the surrounding list items. according to the surrounding list items.
gLa Change the marker of the current list to a) b) c) ... gLa Change the symbol of the current list to a) b) c) ...
To remap: >
noremap glo :VimwikiChangeSymbolTo a)<CR>
noremap glO :VimwikiChangeSymbolInListTo a)<CR>
<
*vimwiki_glA* *vimwiki_gLA* *vimwiki_glA* *vimwiki_gLA*
glA Make a list item out of normal line or change the marker glA Make a list item out of normal line or change the symbol
of the current item to A), the numbering is adjusted of the current item to A), the numbering is adjusted
according to the surrounding list items. according to the surrounding list items.
gLA Change the marker of the current list to A) B) C) ... gLA Change the symbol of the current list to A) B) C) ...
To remap: >
noremap glo :VimwikiChangeSymbolTo A)<CR>
noremap glO :VimwikiChangeSymbolInListTo A)<CR>
<
*vimwiki_gli* *vimwiki_gLi* *vimwiki_gli* *vimwiki_gLi*
gli Make a list item out of normal line or change the marker gli Make a list item out of normal line or change the symbol
of the current item to i), the numbering is adjusted of the current item to i), the numbering is adjusted
according to the surrounding list items. according to the surrounding list items.
gLi Change the marker of the current list to i) ii) iii) ... gLi Change the symbol of the current list to i) ii) iii) ...
To remap: >
noremap glo :VimwikiChangeSymbolTo i)<CR>
noremap glO :VimwikiChangeSymbolInListTo i)<CR>
<
*vimwiki_glI* *vimwiki_gLI* *vimwiki_glI* *vimwiki_gLI*
glI Make a list item out of normal line or change the marker glI Make a list item out of normal line or change the symbol
of the current item to I), the numbering is adjusted of the current item to I), the numbering is adjusted
according to the surrounding list items. according to the surrounding list items.
gLI Change the marker of the current list to I) II) III) ... gLI Change the symbol of the current list to I) II) III) ...
To remap: >
noremap glo :VimwikiChangeSymbolTo I)<CR>
noremap glO :VimwikiChangeSymbolInListTo I)<CR>
<
*vimwiki_gqq* *vimwiki_gww* *vimwiki_gqq* *vimwiki_gww*
gqq Format table. If you made some changes to a table gqq Format table. If you made some changes to a table
or without swapping insert/normal modes this command or without swapping insert/normal modes this command
@ -428,33 +481,47 @@ INSERT MODE *vimwiki-table-mappings*
See |g:vimwiki_table_mappings| to turn them off. See |g:vimwiki_table_mappings| to turn them off.
INSERT MODE *vimwiki-list-mappings* INSERT MODE *vimwiki-list-mappings*
*vimwiki_i_<CR>_list* *vimwiki_i_<CR>*
<CR> In a list item, insert a new bullet or number in the <CR> In a list item, insert a new bullet or number in the
next line, numbers are incremented. next line, numbers are incremented.
In an empty list item, delete the item marker. This is In an empty list item, delete the item symbol. This is
useful to end a list, you simply press <CR> twice. useful to end a list, simply press <CR> twice.
See |vimwiki-lists| for details and for how to
configure the behavior.
*vimwiki_i_<S-CR>_list* *vimwiki_i_<S-CR>*
<S-CR> Does not insert a new list item, useful to create <S-CR> Does not insert a new list item, useful to create
multilined list items. multilined list items.
See |vimwiki-lists| for details and for how to
configure the behavior.
*vimwiki_i_<C-T>_list* *vimwiki_i_<C-T>*
<C-T> Increase the level of a list item. <C-T> Increase the level of a list item.
To remap: >
*vimwiki_i_<C-D>_list* :imap <C-E> <Plug>VimwikiIncreaseLvlSingleItem
<
*vimwiki_i_<C-D>*
<C-D> Decrease the level of a list item. <C-D> Decrease the level of a list item.
To remap: >
*vimwiki_i_<C-L>_<C-J>_list* :imap <C-E> <Plug>VimwikiDecreaseLvlSingleItem
<C-L><C-J> Change the marker of the current list item to the next <
*vimwiki_i_<C-L>_<C-J>*
<C-L><C-J> Change the symbol of the current list item to the next
available. From - to • to 1. to * to I) to a). available. From - to • to 1. to * to I) to a).
To remap: >
*vimwiki_i_<C-L>_<C-K>_list* :imap <C-A> <Plug>VimwikiListNextSymbol
<C-L><C-K> Change the marker of the current list item to the prev <
*vimwiki_i_<C-L>_<C-K>*
<C-L><C-K> Change the symbol of the current list item to the prev
available. From - to a) to I) to * to 1. to •. available. From - to a) to I) to * to 1. to •.
To remap: >
*vimwiki_i_<C-L>_<C-M>_list* :imap <C-S> <Plug>VimwikiListPrevSymbol
<C-L><C-M> Create/remove a marker from a list item. <
*vimwiki_i_<C-L>_<C-M>*
<C-L><C-M> Create/remove a symbol from a list item.
To remap: >
:imap <C-K> <Plug>VimwikiListToggle
<
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
3.3. Text objects *vimwiki-text-objects* 3.3. Text objects *vimwiki-text-objects*
@ -546,8 +613,8 @@ il A single list item.
Convert all wiki pages to HTML. Convert all wiki pages to HTML.
Default css file (style.css) is created if there is no one. Default css file (style.css) is created if there is no one.
*:VimwikiToggleListItem* *:VimwikiToggleCheckbox*
Toggle list item on/off (checked/unchecked) Toggle checkbox of a list item on/off
See |vimwiki-todo-lists|. See |vimwiki-todo-lists|.
*:VimwikiListChangeLevel* CMD *:VimwikiListChangeLevel* CMD
@ -803,6 +870,8 @@ or: >
II) Numbered list item 2 II) Numbered list item 2
III) Numbered list item 3 III) Numbered list item 3
Note that a space after the list item symbols (-, *, 1. etc.) is essential.
You can nest and mix the various types: > You can nest and mix the various types: >
- Bulleted list item 1 - Bulleted list item 1
- Bulleted list item 2 - Bulleted list item 2
@ -816,9 +885,6 @@ You can nest and mix the various types: >
d) etc. d) etc.
- Bulleted list item 3 - Bulleted list item 3
Note that a space after the list item markers (-, *, 1. etc.) is essential
List items can span multiple lines: > List items can span multiple lines: >
* Item 1 * Item 1
Item 1 continued line. Item 1 continued line.
@ -1220,11 +1286,149 @@ See |vimwiki-option-template_path| for details.
============================================================================== ==============================================================================
8. Todo lists *vimwiki-todo-lists* 8. Lists *vimwiki-lists*
While writing lists, the keys <CR>, o and O insert new bullets or numbers as
you would expect it. A new bullet/number is inserted if and only if the cursor
is in a list item. To make a list item with more than one line, press <S-CR>
or press <CR> and <C-L><C-M>.
Note that the mapping <S-CR> is not available in all terminals.
Furthermore, <CR> and <S-CR> have different behavior when the cursor is behind
an empty list item. See the table below.
You can configure the behavior of <CR> and of <S-CR> like this: >
inoremap <CR> <Esc>:VimwikiReturn 1 5<CR>
inoremap <S-CR> <Esc>:VimwikiReturn 2 2<CR>
The first argument of the command :VimwikiReturn is a number that specifies
when to insert a new bullet/number and when not, depending on whether the
cursor is in a list item or in a normal line: >
Number │ Before │ After
======================================
1 │ 1. item| │ 1. item
│ │ 2. |
│–––––––––––––––––––––––––––––– ← default for <CR>
│ 1. item │ 1. item
│ continue| │ continue
│ │ |
======================================
2 │ 1. item| │ 1. item
│ │ |
│–––––––––––––––––––––––––––––– ← default for <S-CR>
│ 1. item │ 1. item
│ continue| │ continue
│ │ 2. |
======================================
3 │ 1. item| │ 1. item
│ │ 2. |
│––––––––––––––––––––––––––––––
│ 1. item │ 1. item
│ continue| │ continue
│ │ 2. |
======================================
4 │ 1. item| │ 1. item
│ │ |
│––––––––––––––––––––––––––––––
│ 1. item │ 1. item
│ continue| │ continue
│ │ |
<
The second argument is a number that specifies what should happen when you
press <CR> or <S-CR> behind an empty list item. There are no less than five
possibilities:
>
Number │ Before │ After
======================================
1 │ 1. | │ 1.
│ │ 2. |
======================================
2 │ 1. | │ ← default for <S-CR>
│ │ 1. |
======================================
3 │ 1. | │ |
│ │
======================================
4 │ 1. | │
│ │ |
======================================
5 │ 1. | │ 1. |
│ │
│–––––––––––––––––––––––––––––– ← default for <CR>
│ 1. | │ |
│ │
<
*vimwiki-list-manipulation*
The level of a list item is determined by its indentation (default and
markdown syntax) or by the number of list symbols (media syntax).
Use gll and glh in normal mode to increase or decrease the level of a list
item. The symbols are adjusted automatically to the list items around it.
Use gLl and gLh to increase or decrease the level of a list item plus all
list items of lower level below it, that is, all child items.
Use <C-T> and <C-D> to change the level of a list item in insert mode.
See |vimwiki_gll|, |vimwiki_gLl|, |vimwiki_glh|, |vimwiki_gLh|,
|vimwiki_i_<C-T>|, |vimwiki_i_<C-D>|
Use gl followed by the desired symbol to change the symbol of a list item or
create one. Type gL and the symbol to change all items of the current list.
For default syntax, the following types are available: >
- hyphen
* asterisk
# hash
• dot, use gl. to create it
1. number with period
1) number with parenthesis
a) lower-case letter with parenthesis
A) upper-case letter with parenthesis
i) lower-case Roman numerals with parenthesis
I) upper-case Roman numerals with parenthesis
Markdown syntax has the following types: >
- hyphen
* asterisk
+ plus
1. number with period
Media syntax only has: >
* asterisk
# hash
In insert mode, use the keys <C-L><C-J> and <C-L><C-K> to switch between
symbols. For convenience, only the commonly used symbols can be reached
through these keys for default syntax.
Note that such a list: a) b) c) … only goes up to zz), to avoid confusion with
normal text followed by a parenthesis.
Also note that you can, of course, mix different list symbols in one list, but
if you have the strange idea of putting a list with Romanian numerals right
after a list using characters or vice versa, vimwiki will get confused because
it cannot distinguish which is which (at least if the types are both upper
case or both lower case).
See |vimwiki_glstar|, |vimwiki_gl#| |vimwiki_gl-|, |vimwiki_gl.|,
|vimwiki_gl-|, |vimwiki_gl1|, |vimwiki_gla|, |vimwiki_glA|, |vimwiki_gli|,
|vimwiki_glI|
Use glr and gLr, if the numbers of a numbered list are mixed up. See
|vimwiki_glr| and |vimwiki_gLr|.
Todo lists *vimwiki-todo-lists*
------------------------------------------------------------------------------
You can have todo lists -- lists of items you can check/uncheck. You can have todo lists -- lists of items you can check/uncheck.
Consider the following example: Consider the following example: >
= Toggleable list of todo items = = Toggleable list of todo items =
* [X] Toggle list item on/off. * [X] Toggle list item on/off.
* [X] Simple toggling between [ ] and [X]. * [X] Simple toggling between [ ] and [X].
@ -1233,10 +1437,10 @@ Consider the following example:
* [X] Parent list item should be toggled depending on it's child items. * [X] Parent list item should be toggled depending on it's child items.
* [X] Make numbered list items toggleable too * [X] Make numbered list items toggleable too
* [X] Add highlighting to list item boxes * [X] Add highlighting to list item boxes
* [X] Add [ ] to the next created with o, O and <CR> list item. * [X] Add [ ] to the next list item created with o, O and <CR>.
Pressing <C-Space> on the first list item will toggle it and all of its child Pressing <C-Space> on the first list item will toggle it and all of its child
items: items: >
= Toggleable list of todo items = = Toggleable list of todo items =
* [ ] Toggle list item on/off. * [ ] Toggle list item on/off.
* [ ] Simple toggling between [ ] and [X]. * [ ] Simple toggling between [ ] and [X].
@ -1248,7 +1452,7 @@ items:
* [X] Add [ ] to the next list item created using o, O or <CR>. * [X] Add [ ] to the next list item created using o, O or <CR>.
Pressing <C-Space> on the third list item will toggle it and adjust all of its Pressing <C-Space> on the third list item will toggle it and adjust all of its
parent items: parent items: >
= Toggleable list of todo items = = Toggleable list of todo items =
* [.] Toggle list item on/off. * [.] Toggle list item on/off.
* [ ] Simple toggling between [ ] and [X]. * [ ] Simple toggling between [ ] and [X].
@ -1259,34 +1463,25 @@ parent items:
* [ ] Add highlighting to list item boxes. * [ ] Add highlighting to list item boxes.
* [ ] Add [ ] to the next list item created using o, O or <CR>. * [ ] Add [ ] to the next list item created using o, O or <CR>.
Parent items could be changed when their child items change. The symbol Parent items could be changed when their child items change. If not, use
between [ ] depends on the percentage of toggled child items (see also |vimwiki_glr|. The symbol between [ ] depends on the percentage of toggled
|g:vimwiki_listsyms|): > child items (see also |g:vimwiki_listsyms|): >
[ ] -- 0% [ ] -- 0%
[.] -- 1-33% [.] -- 1-33%
[o] -- 34-66% [o] -- 34-66%
[O] -- 67-99% [O] -- 67-99%
[X] -- 100% [X] -- 100%
It is possible to toggle several list items using visual mode. It is possible to toggle several list items using visual mode. But note that
instead of toggling every item individually, all items get checked if the
first item is unchecked and all items get unchecked if the first item is
checked.
*vimwiki-list-manipulation* Use gl<Space> (see |vimwiki_gl<Space>|) to remove a single checkbox and
The indentation and bullet symbols for list items can be manipulated using gL<Space> (see |vimwiki_gL<Space>|) to remove all checkboxes of the list the
several mappings. Examples below demonstrate this behavior for the 'default' cursor is in.
syntax and with |vimwiki-option-list_margin| = 1. >
Mapping | Input | Output
----------------------------------------------------
glm | ^item | ^ - item
glm | ^ item | ^ - item
gll | ^ - item | ^item
glm | ^ # item | ^ item
gl* | ^ item | ^ * item
gl- | ^ item | ^ - item
gl3 | ^ item | ^ # item
See |vimwiki_gll|, |vimwiki_glm|, |vimwiki_glstar|, |vimwiki_gl8|
|vimwiki_gl#|, |vimwiki_gl3|, |vimwiki_gl-|, |vimwiki_gl1|
============================================================================== ==============================================================================
9. Tables *vimwiki-tables* 9. Tables *vimwiki-tables*
@ -1752,10 +1947,12 @@ list_margin -1
Description~ Description~
Width of left-hand margin for lists. When negative, the current |shiftwidth| Width of left-hand margin for lists. When negative, the current |shiftwidth|
is used. This affects the behavior of the list manipulation commands is used. This affects the appearance of the generated links (see
|VimwikiListChangeLevel| and local mappings |vimwiki_gll|, |vimwiki_glm|, |:VimwikiGenerateLinks|) and the behavior of the list manipulation commands
|vimwiki_glstar|, |vimwiki_gl8|, |vimwiki_gl#|, |vimwiki_gl3|, |:VimwikiListChangeLevel| and the local mappings |vimwiki_glstar|,
|vimwiki_gl-| and |vimwiki_gl1|. |vimwiki_gl#| |vimwiki_gl-|, |vimwiki_gl.|, |vimwiki_gl-|, |vimwiki_gl1|,
|vimwiki_gla|, |vimwiki_glA|, |vimwiki_gli|, |vimwiki_glI| and
|vimwiki_i_<C-L>_<C-M>|.
@ -1798,10 +1995,10 @@ Default: 0
Note: Option 2 does not work perfectly. Specifically, it might break on Note: Option 2 does not work perfectly. Specifically, it might break on
preformatted text or if you mix tabs and spaces for indenting, and indented preformatted text or if you mix tabs and spaces for indenting, and indented
headers will erroneously be highlighted. headers can be highlighted erroneously.
Furthermore, if your list is long, Vim's highlight can break. Consider putting Furthermore, if your list is long, Vim's highlight can break. To solve this,
> consider putting >
au BufEnter file.wiki :syntax sync fromstart au BufEnter *.wiki :syntax sync fromstart
in your .vimrc in your .vimrc
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
@ -1855,7 +2052,7 @@ Value Description~
Default: 1 Default: 1
E.g.: E.g.:
Press <C-Space> (|:VimwikiToggleListItem|) on a list item without checkbox to Press <C-Space> (|:VimwikiToggleCheckbox|) on a list item without checkbox to
create it: > create it: >
* List item * List item
Result: > Result: >

View File

@ -33,8 +33,8 @@ execute 'setlocal suffixesadd='.VimwikiGet('ext')
setlocal isfname-=[,] setlocal isfname-=[,]
" gf}}} " gf}}}
" Autocreate list items {{{ " LIST STUFF {{{
" for bulleted and numbered list items, and list items with checkboxes " settings necessary for the automatic formatting of lists
setlocal autoindent setlocal autoindent
setlocal nosmartindent setlocal nosmartindent
setlocal nocindent setlocal nocindent
@ -45,25 +45,23 @@ setlocal formatoptions-=o
setlocal formatoptions-=2 setlocal formatoptions-=2
setlocal formatoptions+=n setlocal formatoptions+=n
"Create 'formatlistpat' "Create 'formatlistpat'
let &formatlistpat = g:vimwiki_rxListItem let &formatlistpat = g:vimwiki_rxListItem
if !empty(&langmap) if !empty(&langmap)
" Valid only if langmap is a comma separated pairs of chars " Valid only if langmap is a comma separated pairs of chars
let l_o = matchstr(&langmap, '\C,\zs.\zeo,') let l_o = matchstr(&langmap, '\C,\zs.\zeo,')
if l_o if l_o
exe 'nnoremap <buffer> '.l_o.' :call vimwiki#lst#kbd_o()<CR>a' exe 'nnoremap <silent> <buffer> '.l_o.' :call vimwiki#lst#kbd_o()<CR>a'
endif endif
let l_O = matchstr(&langmap, '\C,\zs.\zeO,') let l_O = matchstr(&langmap, '\C,\zs.\zeO,')
if l_O if l_O
exe 'nnoremap <buffer> '.l_O.' :call vimwiki#lst#kbd_O()<CR>a' exe 'nnoremap <silent> <buffer> '.l_O.' :call vimwiki#lst#kbd_O()<CR>a'
endif endif
endif endif
" COMMENTS }}} " LIST STUFF }}}
" FOLDING {{{ " FOLDING {{{
" Folding list items {{{ " Folding list items {{{
@ -171,8 +169,6 @@ command! -buffer -nargs=? VimwikiNormalizeLink call vimwiki#base#normalize_link(
command! -buffer VimwikiTabnewLink call vimwiki#base#follow_link('tabnew') command! -buffer VimwikiTabnewLink call vimwiki#base#follow_link('tabnew')
command! -buffer -range VimwikiToggleCheckbox call vimwiki#lst#toggle_cb(<line1>, <line2>)
command! -buffer VimwikiGenerateLinks call vimwiki#base#generate_links() command! -buffer VimwikiGenerateLinks call vimwiki#base#generate_links()
command! -buffer -nargs=0 VimwikiBacklinks call vimwiki#base#backlinks() command! -buffer -nargs=0 VimwikiBacklinks call vimwiki#base#backlinks()
@ -188,12 +184,17 @@ command! -buffer -nargs=1 VimwikiGoto call vimwiki#base#goto("<args>")
" list commands " list commands
command! -buffer -range -nargs=+ VimwikiListChangeMarker call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>) command! -buffer -nargs=+ VimwikiReturn call <SID>CR(<f-args>)
command! -buffer -nargs=1 VimwikiListChangeMarkerInList call vimwiki#lst#change_marker_in_list(<f-args>) command! -buffer -range -nargs=1 VimwikiChangeSymbolTo call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>, 'n')
command! -buffer -nargs=+ VimwikiListLineBreak call <SID>CR(<f-args>) command! -buffer -range -nargs=1 VimwikiListChangeSymbolI call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>, 'i')
command! -buffer -range -nargs=1 VimwikiListIncreaseLvl call vimwiki#lst#change_level(<line1>, <line2>, 'increase', <f-args>) command! -buffer -nargs=1 VimwikiChangeSymbolInListTo call vimwiki#lst#change_marker_in_list(<f-args>)
command! -buffer -range -nargs=1 VimwikiListDecreaseLvl call vimwiki#lst#change_level(<line1>, <line2>, 'decrease', <f-args>) command! -buffer -range VimwikiToggleCheckbox call vimwiki#lst#toggle_cb(<line1>, <line2>)
command! -buffer -range VimwikiListRemoveCB call vimwiki#lst#remove_cb(<line1>, <line2>) command! -buffer -range -nargs=+ VimwikiListChangeLvl call vimwiki#lst#change_level(<line1>, <line2>, <f-args>)
command! -buffer -range VimwikiRemoveSingleCB call vimwiki#lst#remove_cb(<line1>, <line2>)
command! -buffer VimwikiRemoveCBInList call vimwiki#lst#remove_cb_in_list()
command! -buffer VimwikiRenumberList call vimwiki#lst#adjust_numbered_list()
command! -buffer VimwikiRenumberAllLists call vimwiki#lst#adjust_whole_buffer()
command! -buffer VimwikiListToggle call vimwiki#lst#toggle_list_item()
" table commands " table commands
command! -buffer -nargs=* VimwikiTable call vimwiki#tbl#create(<f-args>) command! -buffer -nargs=* VimwikiTable call vimwiki#tbl#create(<f-args>)
@ -304,6 +305,19 @@ endif
nnoremap <silent><script><buffer> nnoremap <silent><script><buffer>
\ <Plug>VimwikiRenameLink :VimwikiRenameLink<CR> \ <Plug>VimwikiRenameLink :VimwikiRenameLink<CR>
if !hasmapto('<Plug>VimwikiDiaryNextDay')
nmap <silent><buffer> <C-Down> <Plug>VimwikiDiaryNextDay
endif
nnoremap <silent><script><buffer>
\ <Plug>VimwikiDiaryNextDay :VimwikiDiaryNextDay<CR>
if !hasmapto('<Plug>VimwikiDiaryPrevDay')
nmap <silent><buffer> <C-Up> <Plug>VimwikiDiaryPrevDay
endif
nnoremap <silent><script><buffer>
\ <Plug>VimwikiDiaryPrevDay :VimwikiDiaryPrevDay<CR>
" List mappings
if !hasmapto('<Plug>VimwikiToggleCheckbox') if !hasmapto('<Plug>VimwikiToggleCheckbox')
nmap <silent><buffer> <C-Space> <Plug>VimwikiToggleCheckbox nmap <silent><buffer> <C-Space> <Plug>VimwikiToggleCheckbox
vmap <silent><buffer> <C-Space> <Plug>VimwikiToggleCheckbox vmap <silent><buffer> <C-Space> <Plug>VimwikiToggleCheckbox
@ -317,17 +331,114 @@ nnoremap <silent><script><buffer>
vnoremap <silent><script><buffer> vnoremap <silent><script><buffer>
\ <Plug>VimwikiToggleCheckbox :VimwikiToggleCheckbox<CR> \ <Plug>VimwikiToggleCheckbox :VimwikiToggleCheckbox<CR>
if !hasmapto('<Plug>VimwikiDiaryNextDay') if !hasmapto('<Plug>VimwikiDecreaseLvlSingleItem', 'i')
nmap <silent><buffer> <C-Down> <Plug>VimwikiDiaryNextDay imap <silent><buffer> <C-D>
\ <Plug>VimwikiDecreaseLvlSingleItem
endif endif
nnoremap <silent><script><buffer> inoremap <silent><script><buffer> <Plug>VimwikiDecreaseLvlSingleItem
\ <Plug>VimwikiDiaryNextDay :VimwikiDiaryNextDay<CR> \ <C-O>:VimwikiListChangeLvl decrease 0<CR>
if !hasmapto('<Plug>VimwikiDiaryPrevDay') if !hasmapto('<Plug>VimwikiIncreaseLvlSingleItem', 'i')
nmap <silent><buffer> <C-Up> <Plug>VimwikiDiaryPrevDay imap <silent><buffer> <C-T>
\ <Plug>VimwikiIncreaseLvlSingleItem
endif
inoremap <silent><script><buffer> <Plug>VimwikiIncreaseLvlSingleItem
\ <C-O>:VimwikiListChangeLvl increase 0<CR>
if !hasmapto('<Plug>VimwikiListNextSymbol', 'i')
imap <silent><buffer> <C-L><C-J>
\ <Plug>VimwikiListNextSymbol
endif
inoremap <silent><script><buffer> <Plug>VimwikiListNextSymbol
\ <C-O>:VimwikiListChangeSymbolI next<CR>
if !hasmapto('<Plug>VimwikiListPrevSymbol', 'i')
imap <silent><buffer> <C-L><C-K>
\ <Plug>VimwikiListPrevSymbol
endif
inoremap <silent><script><buffer> <Plug>VimwikiListPrevSymbol
\ <C-O>:VimwikiListChangeSymbolI prev<CR>
if !hasmapto('<Plug>VimwikiListToggle', 'i')
imap <silent><buffer> <C-L><C-M> <Plug>VimwikiListToggle
endif
inoremap <silent><script><buffer> <Plug>VimwikiListToggle <Esc>:VimwikiListToggle<CR>
nnoremap <silent> <buffer> o :call vimwiki#lst#kbd_o()<CR>
nnoremap <silent> <buffer> O :call vimwiki#lst#kbd_O()<CR>
if !hasmapto('<Plug>VimwikiRenumberList')
nmap <silent><buffer> glr <Plug>VimwikiRenumberList
endif endif
nnoremap <silent><script><buffer> nnoremap <silent><script><buffer>
\ <Plug>VimwikiDiaryPrevDay :VimwikiDiaryPrevDay<CR> \ <Plug>VimwikiRenumberList :VimwikiRenumberList<CR>
if !hasmapto('<Plug>VimwikiRenumberAllLists')
nmap <silent><buffer> gLr <Plug>VimwikiRenumberAllLists
nmap <silent><buffer> gLR <Plug>VimwikiRenumberAllLists
endif
nnoremap <silent><script><buffer>
\ <Plug>VimwikiRenumberAllLists :VimwikiRenumberAllLists<CR>
if !hasmapto('<Plug>VimwikiDecreaseLvlSingleItem')
map <silent><buffer> glh <Plug>VimwikiDecreaseLvlSingleItem
endif
noremap <silent><script><buffer>
\ <Plug>VimwikiDecreaseLvlSingleItem :VimwikiListChangeLvl decrease 0<CR>
if !hasmapto('<Plug>VimwikiIncreaseLvlSingleItem')
map <silent><buffer> gll <Plug>VimwikiIncreaseLvlSingleItem
endif
noremap <silent><script><buffer>
\ <Plug>VimwikiIncreaseLvlSingleItem :VimwikiListChangeLvl increase 0<CR>
if !hasmapto('<Plug>VimwikiDecreaseLvlWholeItem')
map <silent><buffer> gLh <Plug>VimwikiDecreaseLvlWholeItem
map <silent><buffer> gLH <Plug>VimwikiDecreaseLvlWholeItem
endif
noremap <silent><script><buffer>
\ <Plug>VimwikiDecreaseLvlWholeItem :VimwikiListChangeLvl decrease 1<CR>
if !hasmapto('<Plug>VimwikiIncreaseLvlWholeItem')
map <silent><buffer> gLl <Plug>VimwikiIncreaseLvlWholeItem
map <silent><buffer> gLL <Plug>VimwikiIncreaseLvlWholeItem
endif
noremap <silent><script><buffer>
\ <Plug>VimwikiIncreaseLvlWholeItem :VimwikiListChangeLvl increase 1<CR>
if !hasmapto('<Plug>VimwikiRemoveSingleCB')
map <silent><buffer> gl<Space> <Plug>VimwikiRemoveSingleCB
endif
noremap <silent><script><buffer>
\ <Plug>VimwikiRemoveSingleCB :VimwikiRemoveSingleCB<CR>
if !hasmapto('<Plug>VimwikiRemoveCBInList')
map <silent><buffer> gL<Space> <Plug>VimwikiRemoveCBInList
endif
noremap <silent><script><buffer>
\ <Plug>VimwikiRemoveCBInList :VimwikiRemoveCBInList<CR>
for s:k in keys(g:vimwiki_bullet_types)
let s:char = (s:k == '•' ? '.' : s:k)
if !hasmapto(':VimwikiChangeSymbolTo '.s:k.'<CR>')
exe 'noremap <silent><buffer> gl'.s:char.' :VimwikiChangeSymbolTo '.s:k.'<CR>'
endif
if !hasmapto(':VimwikiChangeSymbolInListTo '.s:k.'<CR>')
exe 'noremap <silent><buffer> gL'.s:char.' :VimwikiChangeSymbolInListTo '.s:k.'<CR>'
endif
endfor
for s:k in g:vimwiki_number_types
if !hasmapto(':VimwikiChangeSymbolTo '.s:k.'<CR>')
exe 'noremap <silent><buffer> gl'.s:k[0].' :VimwikiChangeSymbolTo '.s:k.'<CR>'
endif
if !hasmapto(':VimwikiChangeSymbolInListTo '.s:k.'<CR>')
exe 'noremap <silent><buffer> gL'.s:k[0].' :VimwikiChangeSymbolInListTo '.s:k.'<CR>'
endif
endfor
function! s:CR(normal, just_mrkr) "{{{ function! s:CR(normal, just_mrkr) "{{{
if g:vimwiki_table_mappings if g:vimwiki_table_mappings
@ -341,37 +452,12 @@ function! s:CR(normal, just_mrkr) "{{{
call vimwiki#lst#kbd_cr(a:normal, a:just_mrkr) call vimwiki#lst#kbd_cr(a:normal, a:just_mrkr)
endfunction "}}} endfunction "}}}
" List mappings if maparg('<CR>', 'i') !~? '<Esc>:VimwikiReturn'
inoremap <buffer> <CR> <Esc>:VimwikiListLineBreak 1 5<CR> inoremap <silent><buffer> <CR> <Esc>:VimwikiReturn 1 5<CR>
inoremap <buffer> <S-CR> <Esc>:VimwikiListLineBreak 2 2<CR> endif
nnoremap <silent> <buffer> o :call vimwiki#lst#kbd_o()<CR> if maparg('<S-CR>', 'i') !~? '<Esc>:VimwikiReturn'
nnoremap <silent> <buffer> O :call vimwiki#lst#kbd_O()<CR> inoremap <silent><buffer> <S-CR> <Esc>:VimwikiReturn 2 2<CR>
map <silent> <buffer> glh :VimwikiListDecreaseLvl 0<CR> endif
map <silent> <buffer> gll :VimwikiListIncreaseLvl 0<CR>
map <silent> <buffer> gLh :VimwikiListDecreaseLvl 1<CR>
map <silent> <buffer> gLl :VimwikiListIncreaseLvl 1<CR>
map <silent> <buffer> gLH glH
map <silent> <buffer> gLL gLl
inoremap <buffer> <C-D> <C-O>:VimwikiListDecreaseLvl 0<CR>
inoremap <buffer> <C-T> <C-O>:VimwikiListIncreaseLvl 0<CR>
inoremap <buffer> <C-L><C-J> <C-O>:VimwikiListChangeMarker next i<CR>
inoremap <buffer> <C-L><C-K> <C-O>:VimwikiListChangeMarker prev i<CR>
nmap <silent> <buffer> glr :call vimwiki#lst#adjust_numbered_list()<CR>
nmap <silent> <buffer> gLr :call vimwiki#lst#adjust_whole_buffer()<CR>
nmap <silent> <buffer> gLR gLr
noremap <silent> <buffer> gl<Space> :VimwikiListRemoveCB<CR>
map <silent> <buffer> gL<Space> :call vimwiki#lst#remove_cb_in_list()<CR>
inoremap <silent> <buffer> <C-L><C-M> <Esc>:call vimwiki#lst#toggle_list_item()<CR>
for s:k in keys(g:vimwiki_bullet_types)
let s:char = (s:k == '•' ? '.' : s:k)
exe 'noremap <silent> <buffer> gl'.s:char.' :VimwikiListChangeMarker '.s:k.' n<CR>'
exe 'noremap <silent> <buffer> gL'.s:char.' :VimwikiListChangeMarkerInList '.s:k.'<CR>'
endfor
for s:k in g:vimwiki_number_types
exe 'noremap <silent> <buffer> gl'.s:k[0].' :VimwikiListChangeMarker '.s:k.' n<CR>'
exe 'noremap <silent> <buffer> gL'.s:k[0].' :VimwikiListChangeMarkerInList '.s:k.'<CR>'
endfor
"Table mappings "Table mappings