我正在编辑行移动的按键映射,如下所示:
vnoremap <silent> <C-j> :m '>+1<CR>gv
vnoremap <silent> <C-k> :m '<-2<CR>gv
他们应该移动代码行块并在大多数情况下正常工作,但在文件顶部和底部除外。
当我选择第1行和第2行,并输入ctrl-k时,在视觉模式下,它不能再向上移动,而期望的行为是第1行和第2行仍然被突出显示。
当前的情况是,第1行和第2行不再被突出显示。我知道这是因为":m '<-1"失败了,那么gv就不会被执行。
所以我的问题是如何忽略这个错误来确保gv被执行?或者有其他解决方案吗?
请注意,我知道一种解决方案linemovement.vim。它在两个分开的命令和一些函数中运行这些代码。虽然我认为这应该是轻量级的代码。