Mercurial > vim
view runtime/mswin.vim @ 34546:33cb93a8d573 v9.1.0174
patch 9.1.0174: 'cursorline' and 'wincolor' hl missing with conceal and wrap
Commit: https://github.com/vim/vim/commit/21b0a3df8c4abb884489dfcc0c92b1bbe058f291
Author: zeertzjq <zeertzjq@outlook.com>
Date: Wed Mar 13 20:06:34 2024 +0100
patch 9.1.0174: 'cursorline' and 'wincolor' hl missing with conceal and wrap
Problem: 'cursorline' and 'wincolor' highlight missing with concealed and
wrapped lines.
Solution: Apply 'cursorline' and 'wincolor' highlight to boguscols.
(zeertzjq)
Since 'cursorline' and 'wincolor' highlight apply after the end of the
line, it is more consistent to have them also apply to boguscols.
Assigning MAXCOL to values in ScreenCols[] make mouse click behave the
same with 'cursorline' and 'nocursorline', but such behavior may be
incorrect, as it puts the cursor on the next screen line. That may be
fixed in a future PR.
closes: #14192
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 13 Mar 2024 20:15:03 +0100 |
parents | e893892758b7 |
children | 91428f34746f |
line wrap: on
line source
" 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 behave mswin " 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_working") 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