├── .gitignore ├── visualrepeat.manifest ├── .github └── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── plugin └── visualrepeat.vim ├── autoload ├── visualrepeat │ └── reapply.vim └── visualrepeat.vim ├── README.md └── doc └── visualrepeat.txt /.gitignore: -------------------------------------------------------------------------------- 1 | *.msgout 2 | *.msgresult 3 | *.out 4 | *.tap 5 | doc/*.description 6 | doc/*.install 7 | tags 8 | -------------------------------------------------------------------------------- /visualrepeat.manifest: -------------------------------------------------------------------------------- 1 | autoload/visualrepeat.vim 2 | autoload/visualrepeat/reapply.vim 3 | plugin/visualrepeat.vim 4 | doc/visualrepeat.txt 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an enhancement for the plugin 4 | title: '' 5 | labels: enhancement 6 | 7 | --- 8 | 9 | **Motivation** 10 | 11 | _A clear and concise description of what currently is hard to do._ 12 | 13 | **Request and Purpose** 14 | 15 | _A clear and concise description of what you want to happen. Possible fit criteria._ 16 | 17 | **Alternatives** 18 | 19 | _A clear and concise description of any alternative solutions or features you've considered._ 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: The plugin isn't working at all or shows wrong or unexpected behavior 4 | title: '' 5 | labels: '' 6 | 7 | --- 8 | **Frequent Issues** 9 | 10 | * **Sudden problems after updating**: Did you check out the default _master_ branch? Unless you want to participate in feature development and alpha testing, I would recommend that you switch from _master_ to the _stable_ branch; this way, you'll only update to released versions that are (hopefully) better tested and documented. 11 | * **Neovim**: I don't explicitly consider nor test Neovim compatibility; my plugins are written for Vim. If a plugin can be made to work on Neovim with trivial changes, I wouldn't mind including them, but anything more involved should in my opinion be filed as a compatibility bug against Neovim (as its homepage proclaims: _Fully compatible with Vim's editing model and the Vimscript language._) 12 | 13 | **Describe the bug** 14 | 15 | _A clear and concise description of what the bug is._ 16 | 17 | **How to Reproduce** 18 | 19 | _Detailed steps to reproduce the behavior._ 20 | 21 | **Expected Behavior** 22 | 23 | _A clear and concise description of what you expected to happen._ 24 | 25 | **Environment** 26 | - Plugin version (e.g. stable version _1.10_) / revision _a1b2c3d4_ from the master branch 27 | - Vim version (e.g. _8.1.1234_) Or paste the result of `vim --version`. 28 | - OS: (e.g. _Ubuntu 18.04_, _Windows 10 1809_, _macOS 10.14_) 29 | - Install method: (e.g. manually via Vimball or ZIP file, GitHub clone as pack plugin, Plugin manager _NAME_) 30 | - Other plugins / additional context if you think this could be important 31 | -------------------------------------------------------------------------------- /plugin/visualrepeat.vim: -------------------------------------------------------------------------------- 1 | " visualrepeat.vim: Repeat command extended to visual mode. 2 | " 3 | " DEPENDENCIES: 4 | " - visualrepeat.vim autoload script 5 | " 6 | " Copyright: (C) 2011-2019 Ingo Karkat 7 | " The VIM LICENSE applies to this script; see ':help copyright'. 8 | " 9 | " Maintainer: Ingo Karkat 10 | 11 | " Avoid installing twice or when in unsupported Vim version. 12 | if exists('g:loaded_visualrepeat') || (v:version < 700) 13 | finish 14 | endif 15 | let g:loaded_visualrepeat = 1 16 | let s:save_cpo = &cpo 17 | set cpo&vim 18 | 19 | " In linewise visual mode, after entering the command line with :, the current 20 | " cursor position is lost. Therefore, capture the cursor's virtual column via a 21 | " no-op expression mapping. 22 | xnoremap (CaptureVirtCol) visualrepeat#CaptureVirtCol() 23 | 24 | xnoremap