runtime(mswin): Use unnamed register when clipboard not working (#13813)

* Use unnamed register while clipboard not exist
* Do not need to specify the unnamed register explicitly
fixes: #13809

Signed-off-by: Shixian Li <lsx7@sina.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Shixian Li
2024-03-03 23:41:46 +08:00
committed by GitHub
parent d3eae7bc11
commit d9ebd46bd0

View File

@ -1,7 +1,7 @@
" Set options and add mapping such that Vim behaves a lot like MS-Windows " Set options and add mapping such that Vim behaves a lot like MS-Windows
" "
" Maintainer: The Vim Project <https://github.com/vim/vim> " Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2023 Aug 10 " Last Change: 2024 Mar 3
" Former Maintainer: Bram Moolenaar <Bram@vim.org> " Former Maintainer: Bram Moolenaar <Bram@vim.org>
" Bail out if this isn't wanted. " Bail out if this isn't wanted.
@ -24,7 +24,7 @@ set backspace=indent,eol,start whichwrap+=<,>,[,]
" backspace in Visual mode deletes selection " backspace in Visual mode deletes selection
vnoremap <BS> d vnoremap <BS> d
if has("clipboard") if has("clipboard_working")
" CTRL-X and SHIFT-Del are Cut " CTRL-X and SHIFT-Del are Cut
vnoremap <C-X> "+x vnoremap <C-X> "+x
vnoremap <S-Del> "+x vnoremap <S-Del> "+x
@ -39,6 +39,23 @@ if has("clipboard")
cmap <C-V> <C-R>+ cmap <C-V> <C-R>+
cmap <S-Insert> <C-R>+ cmap <S-Insert> <C-R>+
else
" Use unnamed register while clipboard not exist
" CTRL-X and SHIFT-Del are Cut
vnoremap <C-X> x
vnoremap <S-Del> x
" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> y
vnoremap <C-Insert> y
" CTRL-V and SHIFT-Insert are Paste
noremap <C-V> gP
noremap <S-Insert> gP
inoremap <C-V> <C-R>"
inoremap <S-Insert> <C-R>"
endif endif
" Pasting blockwise and linewise selections is not possible in Insert and " Pasting blockwise and linewise selections is not possible in Insert and
@ -47,7 +64,7 @@ endif
" Uses the paste.vim autoload script. " Uses the paste.vim autoload script.
" Use CTRL-G u to have CTRL-Z only undo the paste. " Use CTRL-G u to have CTRL-Z only undo the paste.
if 1 if has("clipboard_working")
exe 'inoremap <script> <C-V> <C-G>u' . paste#paste_cmd['i'] exe 'inoremap <script> <C-V> <C-G>u' . paste#paste_cmd['i']
exe 'vnoremap <script> <C-V> ' . paste#paste_cmd['v'] exe 'vnoremap <script> <C-V> ' . paste#paste_cmd['v']
endif endif