From b13db3116d84b0fc474f193baf2514bc66d5580c Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 21 Mar 2020 23:11:25 +0100 Subject: Don't save search history when running substitution commands Our substitution commands would save the search pattern into search history, intervening with user search history. Use the `keeppatterns` command to prevent this. --- autoload/todo.vim | 36 ++++++++++++++++++++++++++++++++++++ ftplugin/todo.vim | 8 ++++---- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/autoload/todo.vim b/autoload/todo.vim index 758d0d5..8cfa986 100644 --- a/autoload/todo.vim +++ b/autoload/todo.vim @@ -1,3 +1,39 @@ +function! todo#MarkComplete() + let view = winsaveview() + + keeppatterns s/\v^(\s*)[-_!xS] /\1v / + + call winrestview(view) +endfunction + + +function! todo#MarkDeleted() + let view = winsaveview() + + keeppatterns s/\v^(\s*)[-_!vS] /\1x / + + call winrestview(view) +endfunction + + +function! todo#MarkPartiallyCompleted() + let view = winsaveview() + + keeppatterns s/\v^(\s*)[-_!xv] /\1S / + + call winrestview(view) +endfunction + + +function! todo#RemoveOldTodos() + let view = winsaveview() + + keeppatterns g/^\s*[vx] /d + + call winrestview(view) +endfunction + + function! todo#Escalate() let todo = getline('.') diff --git a/ftplugin/todo.vim b/ftplugin/todo.vim index e7664d8..ff9be27 100644 --- a/ftplugin/todo.vim +++ b/ftplugin/todo.vim @@ -8,10 +8,10 @@ let b:did_ftplugin = 1 nnoremap TwodoNewTodoBelow o- nnoremap TwodoNewTodoAbove O- -nnoremap TwodoMarkComplete m`:s/\v^(\s*)[-_!xS] /\1v / \| nohlsearch`` -nnoremap TwodoMarkDeleted m`:s/\v^(\s*)[-_!vS] /\1x / \| nohlsearch`` -nnoremap TwodoMarkPartiallyCompleted m`:s/\v^(\s*)[-_!xv] /\1S / \| nohlsearch`` -nnoremap TwodoRemoveOldTodos :g/^\s*[vx] /d \| nohlsearch +nnoremap TwodoMarkComplete :call todo#MarkComplete() +nnoremap TwodoMarkDeleted :call todo#MarkDeleted() +nnoremap TwodoMarkPartiallyCompleted :call todo#MarkPartiallyCompleted() +nnoremap TwodoRemoveOldTodos :call todo#RemoveOldTodos() nnoremap TwodoEscalate :call todo#Escalate() nnoremap TwodoDescalate :call todo#Descalate() -- cgit v1.2.3