mirror of
https://github.com/neovim/neovim.git
synced 2025-11-21 09:36:29 +00:00
fix(defaults): default @/Q broken when 'ignorecase' is set (#29343)
Problem: When 'ignorecase' is set, the default keymap Q and Q would exit visual mode. This issue was raised in #28287 and a fix was applied in #28289. However, `==` operator is subject to user `ignorecase` setting. Solution: Switching to `==#` operator would guarantee case sensitive comparison between visual mode and linewise visual mode. Co-authored-by: Kuanju Chen <kuanju.chen@mksinst.com>
This commit is contained in:
@@ -148,6 +148,23 @@ helloFOO]]
|
||||
eq({ 0, 1, 1, 0 }, fn.getpos('v'))
|
||||
end)
|
||||
|
||||
it('can be recorded and replayed in Visual mode when ignorecase', function()
|
||||
command('set ignorecase')
|
||||
insert('foo BAR BAR foo BAR foo BAR BAR BAR foo BAR BAR')
|
||||
feed('0vqifofRq')
|
||||
eq({ 0, 1, 7, 0 }, fn.getpos('.'))
|
||||
eq({ 0, 1, 1, 0 }, fn.getpos('v'))
|
||||
feed('Q')
|
||||
eq({ 0, 1, 19, 0 }, fn.getpos('.'))
|
||||
eq({ 0, 1, 1, 0 }, fn.getpos('v'))
|
||||
feed('Q')
|
||||
eq({ 0, 1, 27, 0 }, fn.getpos('.'))
|
||||
eq({ 0, 1, 1, 0 }, fn.getpos('v'))
|
||||
feed('@i')
|
||||
eq({ 0, 1, 43, 0 }, fn.getpos('.'))
|
||||
eq({ 0, 1, 1, 0 }, fn.getpos('v'))
|
||||
end)
|
||||
|
||||
it('can be replayed with @ in blockwise Visual mode', function()
|
||||
insert [[
|
||||
hello
|
||||
|
||||
Reference in New Issue
Block a user