Merge branch 'master' into 'master'

Use abbreviations instead of maps in insert mode

See merge request dbeniamine/todo.txt-vim!35
This commit is contained in:
David Beniamine
2020-01-09 08:05:32 +00:00
3 changed files with 42 additions and 0 deletions

View File

@@ -296,6 +296,21 @@ following to your vimrc:
let g:Todo_txt_prefix_creation_date=1
With insert mode maps on, typing `date<Tab>` or `due:` can feel like glitches
This is because vim wait for mappings before inserting the words to the buffer.
To prevent the glitches, abbreviations can be used instead of mappings.
To turn it on, add the following to your vimrc:
let g:TodoTxtUseAbbrevInsertMode=1
Abbreviations uses word separator to expand the abbreviations, thus `<Tab>`
is unavailable on abbreviations. Turning abbreviations mode will change
`date<Tab>` mapping into `date:`. The resulting abbreviations would be:
+ `date:` : (Insert mode) Insert the current date
+ `due:` : (Insert mode) Insert `due:` followed by the current date
+ `DUE:` : (Insert mode) Insert `DUE:` followed by the current date
### Done

View File

@@ -320,6 +320,26 @@ following to your vimrc:
let g:Todo_txt_prefix_creation_date=1
<
With insert mode maps on, typing `date<Tab>` or `due:` can feel like glitches
This is because vim wait for mappings before inserting the words to the buffer.
To prevent the glitches, abbreviations can be used instead of mappings.
To turn it on, add the following to your vimrc:
>
let g:TodoTxtUseAbbrevInsertMode=1
<
Abbreviations use word separator to expand the abbreviations, thus `<Tab>`
is unavailable on abbreviations. Turning abbreviations mode will change
`date<Tab>` mapping into `date:`. The resulting abbreviations would be:
`date:` : (Insert mode) Insert the current date
`due:` : (Insert mode) Insert `due:` followed by the current date
`DUE:` : (Insert mode) Insert `DUE:` followed by the current date
For more information regarding abbreviations, see |abbreviations|
7.4 Done *TodoTxt-Done*

View File

@@ -61,10 +61,17 @@ if !exists("g:Todo_txt_do_not_map") || ! g:Todo_txt_do_not_map
noremap <script> <silent> <buffer> <localleader>c :call todo#PrioritizeAdd('C')<CR>
" Insert date {{{3
if get(g:, "TodoTxtUseAbbrevInsertMode", 0)
inoreabbrev <script> <silent> <buffer> date: <C-R>=strftime("%Y-%m-%d")<CR>
inoreabbrev <script> <silent> <buffer> due: due:<C-R>=strftime("%Y-%m-%d")<CR>
inoreabbrev <script> <silent> <buffer> DUE: DUE:<C-R>=strftime("%Y-%m-%d")<CR>
else
inoremap <script> <silent> <buffer> date<Tab> <C-R>=strftime("%Y-%m-%d")<CR>
inoremap <script> <silent> <buffer> due: due:<C-R>=strftime("%Y-%m-%d")<CR>
inoremap <script> <silent> <buffer> DUE: DUE:<C-R>=strftime("%Y-%m-%d")<CR>
endif
noremap <script> <silent> <buffer> <localleader>d :call todo#PrependDate()<CR>