vim - 维姆10j 的键绑定将光标向右移动
问题描述
我最近映射10j
到<A-j>
和10k
到<A-k>
,这看起来很神奇,但它有一个问题:
当我通常键入时10j
(不使用快捷方式),它只会垂直向下移动 10 行,但根本不会水平移动(假设行的长度相同),但是当我使用<A-j>
它时(好吧,有趣的是,并不总是, 但大多数情况下)也将一个字母向右移动。
有趣的是,这仅发生在<A-j>
, 而<A-k>
按预期工作。我怎样才能防止这种情况?也许最重要的是:为什么会这样?
如果有帮助,这些是我的其他键绑定:
nnoremap K K<C-w>L
nnoremap <A-h> :set hls!<cr>
nnoremap / :set hlsearch<cr>/
nnoremap <A-j> 10j
nnoremap <A-k> 10k
nnoremap <A-w> W
nnoremap <A-b> B
nnoremap <A-v> V
nnoremap <A-m> '
nnoremap <A-p> "+p
nnoremap <A-y> "+y
nnoremap <A-4> $
nnoremap <A-3> 0
nnoremap Y y$
vnoremap <A-h> :set hls!<cr>
vnoremap / :set hlsearch<cr>/
vnoremap <A-j> 10j
vnoremap <A-k> 10k
vnoremap <A-w> W
vnoremap <A-b> B
vnoremap <A-v> V
vnoremap <A-m> '
vnoremap <A-p> "+p
vnoremap <A-y> "+y
vnoremap <A-4> $
vnoremap <A-3> 0
是的,我非常喜欢alt键。
解决方案
您的映射末尾有一个尾随空格字符:
:nnoremap <A-j>
n <M-j> * 10j<Space>
<Space>
l
与;是相同的命令 它将一个字符向右移动(如果可能)。
映射中的右侧按字面意思表示(直到行尾或|
命令分隔符)。另一个常见错误是将 a 添加" comment
到映射定义中。
插件推荐
如果您经常偶然发现尾随空格(它在许多编码风格中通常不受欢迎,并且 Git 等工具也会将其突出显示为有问题的),我的ShowTrailingWhitespace 插件可以提醒您这些,DeleteTrailingWhitespace 插件可以为您删除它们。(插件页面有其他插件的链接。)
推荐阅读
- firebase - 从firebase检索时,字符串在离开孩子后返回null
- javascript - 如何同步上传图片?
- excel - 如何修复条件格式无法在单元格上正常工作?
- vb.net - 如何解决VB.Net中的数学错误?
- c++ - 使用 Wininet 的 Https 客户端身份验证,使用非持久性根证书
- json - TypeScript 可选联合类型
- sql - 如何将 STUFF() 应用于三个表中的逗号?
- swift - Firebase swift - 如何根据特定唯一键列表打印出值(存储在数组中的唯一键)
- python - 在 Python3 中通过 PIP 访问模块的问题
- python - 我对 LinkExtractor 属性(restrict_xpath)做错了吗?不做回调