summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorShixian Li <34830785+znsoooo@users.noreply.github.com>2024-03-03 23:41:46 +0800
committerGitHub <noreply@github.com>2024-03-03 16:41:46 +0100
commitd9ebd46bd090c598adc82e683b4462909f2d4ea5 (patch)
treeb5b55065724ff01ba73b8f6f09375c17838a4692 /runtime
parentd3eae7bc116297f70220f21ded436ed0a88066d8 (diff)
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>
Diffstat (limited to 'runtime')
-rw-r--r--runtime/mswin.vim23
1 files changed, 20 insertions, 3 deletions
diff --git a/runtime/mswin.vim b/runtime/mswin.vim
index 1c28cadac0..3c10c0a6d8 100644
--- a/runtime/mswin.vim
+++ b/runtime/mswin.vim
@@ -1,7 +1,7 @@
" Set options and add mapping such that Vim behaves a lot like MS-Windows
"
" 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>
" Bail out if this isn't wanted.
@@ -24,7 +24,7 @@ set backspace=indent,eol,start whichwrap+=<,>,[,]
" backspace in Visual mode deletes selection
vnoremap <BS> d
-if has("clipboard")
+if has("clipboard_working")
" CTRL-X and SHIFT-Del are Cut
vnoremap <C-X> "+x
vnoremap <S-Del> "+x
@@ -39,6 +39,23 @@ if has("clipboard")
cmap <C-V> <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
" Pasting blockwise and linewise selections is not possible in Insert and
@@ -47,7 +64,7 @@ endif
" Uses the paste.vim autoload script.
" 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 'vnoremap <script> <C-V> ' . paste#paste_cmd['v']
endif