diff options
| author | nsfisis <nsfisis@gmail.com> | 2021-11-19 22:28:06 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2021-11-19 22:28:06 +0900 |
| commit | ed4b5f69144ee6f93e0c7059b3676c230cbce581 (patch) | |
| tree | d5a7ff65fe56c75d6589f00cc9de49dee5d48db5 /.config/vim/my/after/ftplugin/qf.vim | |
| parent | 0d4a7fe77275a40996a710b673e58b4d2d78a8f4 (diff) | |
| download | dotfiles-ed4b5f69144ee6f93e0c7059b3676c230cbce581.tar.gz dotfiles-ed4b5f69144ee6f93e0c7059b3676c230cbce581.tar.zst dotfiles-ed4b5f69144ee6f93e0c7059b3676c230cbce581.zip | |
vim: make vim XDG-Base-Directory-aware
Diffstat (limited to '.config/vim/my/after/ftplugin/qf.vim')
| -rw-r--r-- | .config/vim/my/after/ftplugin/qf.vim | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/.config/vim/my/after/ftplugin/qf.vim b/.config/vim/my/after/ftplugin/qf.vim new file mode 100644 index 0000000..364759c --- /dev/null +++ b/.config/vim/my/after/ftplugin/qf.vim @@ -0,0 +1,40 @@ +scriptencoding utf-8 + + +if exists('b:did_ftplugin_qf_after') + finish +endif + + + +nnoremap <buffer> p <Return>zz<C-w>p +nnoremap <silent> <buffer> dd :call <SID>del_entry()<Return> +xnoremap <silent> <buffer> d :call <SID>del_entry()<Return> +nnoremap <silent> <buffer> u :<C-u>call <SID>undo_entry()<Return> + + +if exists('*s:undo_entry') + finish +endif + + +function! s:undo_entry() + let history = get(w:, 'qf_history', []) + if !empty(history) + call setqflist(remove(history, -1), 'r') + endif +endfunction + +function! s:del_entry() range + let qf = getqflist() + let history = get(w:, 'qf_history', []) + call add(history, copy(qf)) + let w:qf_history = history + unlet! qf[a:firstline - 1 : a:lastline - 1] + call setqflist(qf, 'r') + execute a:firstline +endfunction + + + +let b:did_ftplugin_qf_after = 1 |
