mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	runtime(mswin): still another clipboard_working test
Commit 760f664213dea9a300454992ba1589f4601d622f missed to revert back
another test for `if has('clipboard_working')`
So change the remaining check around the inoremap <c-v> mappings.
fixes vim/vim#14195
45da32964d
Co-authored-by: Christian Brabandt <cb@256bit.org>
		
	
		
			
				
	
	
		
			150 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" 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:	2024 Mar 13
 | 
						|
" Former Maintainer:	Bram Moolenaar <Bram@vim.org>
 | 
						|
 | 
						|
" Bail out if this isn't wanted.
 | 
						|
if exists("g:skip_loading_mswin") && g:skip_loading_mswin
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
" set the 'cpoptions' to its Vim default
 | 
						|
if 1	" only do this when compiled with expression evaluation
 | 
						|
  let s:save_cpo = &cpoptions
 | 
						|
endif
 | 
						|
set cpo&vim
 | 
						|
 | 
						|
" set 'selection', 'selectmode', 'mousemodel' and 'keymodel' for MS-Windows
 | 
						|
set selection=exclusive
 | 
						|
set selectmode=mouse,key
 | 
						|
set mousemodel=popup
 | 
						|
set keymodel=startsel,stopsel
 | 
						|
 | 
						|
" backspace and cursor keys wrap to previous/next line
 | 
						|
set backspace=indent,eol,start whichwrap+=<,>,[,]
 | 
						|
 | 
						|
" backspace in Visual mode deletes selection
 | 
						|
vnoremap <BS> d
 | 
						|
 | 
						|
" the better solution would be to use has("clipboard_working"),
 | 
						|
" but that may not be available yet while starting up, so let's just check if
 | 
						|
" clipboard support has been compiled in and assume it will be working :/
 | 
						|
if has("clipboard")
 | 
						|
    " 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
 | 
						|
    map <C-V>		"+gP
 | 
						|
    map <S-Insert>		"+gP
 | 
						|
 | 
						|
    cmap <C-V>		<C-R>+
 | 
						|
    cmap <S-Insert>		<C-R>+
 | 
						|
else
 | 
						|
		" Use the unnamed register when clipboard support not available
 | 
						|
 | 
						|
    " 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
 | 
						|
" Visual mode without the +virtualedit feature.  They are pasted as if they
 | 
						|
" were characterwise instead.
 | 
						|
" Uses the paste.vim autoload script.
 | 
						|
" Use CTRL-G u to have CTRL-Z only undo the paste.
 | 
						|
 | 
						|
if has("clipboard")
 | 
						|
    exe 'inoremap <script> <C-V> <C-G>u' . paste#paste_cmd['i']
 | 
						|
    exe 'vnoremap <script> <C-V> ' . paste#paste_cmd['v']
 | 
						|
endif
 | 
						|
 | 
						|
imap <S-Insert>		<C-V>
 | 
						|
vmap <S-Insert>		<C-V>
 | 
						|
 | 
						|
" Use CTRL-Q to do what CTRL-V used to do
 | 
						|
noremap <C-Q>		<C-V>
 | 
						|
 | 
						|
" Use CTRL-S for saving, also in Insert mode (<C-O> doesn't work well when
 | 
						|
" using completions).
 | 
						|
noremap <C-S>		:update<CR>
 | 
						|
vnoremap <C-S>		<C-C>:update<CR>
 | 
						|
inoremap <C-S>		<Esc>:update<CR>gi
 | 
						|
 | 
						|
" For CTRL-V to work autoselect must be off.
 | 
						|
" On Unix we have two selections, autoselect can be used.
 | 
						|
if !has("unix")
 | 
						|
  set guioptions-=a
 | 
						|
endif
 | 
						|
 | 
						|
" CTRL-Z is Undo; not in cmdline though
 | 
						|
noremap <C-Z> u
 | 
						|
inoremap <C-Z> <C-O>u
 | 
						|
 | 
						|
" CTRL-Y is Redo (although not repeat); not in cmdline though
 | 
						|
noremap <C-Y> <C-R>
 | 
						|
inoremap <C-Y> <C-O><C-R>
 | 
						|
 | 
						|
" Alt-Space is System menu
 | 
						|
if has("gui")
 | 
						|
  noremap <M-Space> :simalt ~<CR>
 | 
						|
  inoremap <M-Space> <C-O>:simalt ~<CR>
 | 
						|
  cnoremap <M-Space> <C-C>:simalt ~<CR>
 | 
						|
endif
 | 
						|
 | 
						|
" CTRL-A is Select all
 | 
						|
noremap <C-A> gggH<C-O>G
 | 
						|
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
 | 
						|
cnoremap <C-A> <C-C>gggH<C-O>G
 | 
						|
onoremap <C-A> <C-C>gggH<C-O>G
 | 
						|
snoremap <C-A> <C-C>gggH<C-O>G
 | 
						|
xnoremap <C-A> <C-C>ggVG
 | 
						|
 | 
						|
" CTRL-Tab is Next window
 | 
						|
noremap <C-Tab> <C-W>w
 | 
						|
inoremap <C-Tab> <C-O><C-W>w
 | 
						|
cnoremap <C-Tab> <C-C><C-W>w
 | 
						|
onoremap <C-Tab> <C-C><C-W>w
 | 
						|
 | 
						|
" CTRL-F4 is Close window
 | 
						|
noremap <C-F4> <C-W>c
 | 
						|
inoremap <C-F4> <C-O><C-W>c
 | 
						|
cnoremap <C-F4> <C-C><C-W>c
 | 
						|
onoremap <C-F4> <C-C><C-W>c
 | 
						|
 | 
						|
if has("gui")
 | 
						|
  " CTRL-F is the search dialog
 | 
						|
  noremap  <expr> <C-F> has("gui_running") ? ":promptfind\<CR>" : "/"
 | 
						|
  inoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-O>:promptfind\<CR>" : "\<C-\>\<C-O>/"
 | 
						|
  cnoremap <expr> <C-F> has("gui_running") ? "\<C-\>\<C-C>:promptfind\<CR>" : "\<C-\>\<C-O>/"
 | 
						|
 | 
						|
  " CTRL-H is the replace dialog,
 | 
						|
  " but in console, it might be backspace, so don't map it there
 | 
						|
  nnoremap <expr> <C-H> has("gui_running") ? ":promptrepl\<CR>" : "\<C-H>"
 | 
						|
  inoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-O>:promptrepl\<CR>" : "\<C-H>"
 | 
						|
  cnoremap <expr> <C-H> has("gui_running") ? "\<C-\>\<C-C>:promptrepl\<CR>" : "\<C-H>"
 | 
						|
endif
 | 
						|
 | 
						|
" restore 'cpoptions'
 | 
						|
set cpo&
 | 
						|
if 1
 | 
						|
  let &cpoptions = s:save_cpo
 | 
						|
  unlet s:save_cpo
 | 
						|
endif
 |