4
A
回答
4
这里有替代DJ的映射与hlsearch
发挥出色:
跳转到下一个非空行
nnoremap <key> :<C-u>call search('^.\+')<CR>
跳转到以前的非空行
nnoremap <otherkey> :<C-u>call search('^.\+', 'b')<CR>
将视觉选择延伸到下一个非空l INE
xnoremap <key> :<C-u>k`\|call search('^.\+')\|normal! <C-r>=visualmode()<CR>``o<CR>
可视选择延伸到先前的非空行
xnoremap <otherkey> :<C-u>k`\|call search('^.\+', 'b')\|normal! <C-r>=visualmode()<CR>``o<CR>
操作以下一个非空行
omap <key> :<C-u>normal! v<key><CR>
操作以先前的非空行
omap <otherkey> :<C-u>normal! v<otherkey><CR>
解释...
随着hlsearch
启用,/anything
将突出每场比赛。由于我们不积极搜索非空行,但仅移动给他们,由此产生的突出显示是毫无意义的嘈杂。
通过使用:help search()
,我们绕过hlsearch
,从而使映射更少噪音。
<C-u>
用于在调用我们的函数之前去除任何意外范围。
视觉模式映射的工作原理是这样的:
- 我们定义的“前一个标记”与
:help :k
, - 我们进行搜索,
- 我们运行下面的普通模式命令与
:help :normal
, - 我们检索以前的视觉模式
:help i_ctrl-r
,:help "=
,并且:help visualmode()
, - 我们扩展ŧ他通过
:help ''
, - 对“上一个标记”的位置进行视觉选择,最后我们将光标移动到
:help v_o
的视觉选择的另一端。
运算符挂起的映射只是重用可视化模式映射。
1
我不确定你想要映射这两个,所以我只使用{
和}
。这个怎么样?
nnoremap } /^\S<cr>
nnoremap { ?^\S<cr>
该解释非常简单。
/ " Search forward
^ " For the start of a line
\S " Followed by a non-whitespace character
<cr> " Enter
?
映射是相同的除了向后而不是向前搜索。
当然为了完整,你需要添加
nnoremap } /^\S<cr>
xnoremap } /^\S<cr>
onoremap } /^\S<cr>
nnoremap { ?^\S<cr>
xnoremap { ?^\S<cr>
onoremap { ?^\S<cr>
这将使作为参数传递给操作者(例如d{
),并在可视化模式下工作。
相关问题
- 1. Angular 4 - 将JSON映射到模型,反之亦然
- 2. 映射部首cookie字符串到CookieCollection反之亦然
- 3. 将集合映射到Map并反之亦然使用Mapstruct
- 4. XAML到Html,反之亦然
- 5. Excel自动更新一个字段,反之亦然
- 6. 完成老活动,并开始一个新的,反之亦然
- 7. Vim的:重映射键切换行号
- 8. 将小值映射为大型和反之亦然的方法
- 9. .NET - 将/映射列表转换为对象,反之亦然
- 10. 从行移调动态表列,反之亦然
- 11. 上一个复选框,反之亦然
- 12. 从tm对象移动到koRpus对象,反之亦然
- 13. 如何从左到右移动uiview,反之亦然
- 14. Vim重新映射奇怪
- 15. vim重新映射hjkl
- 16. 重新映射“te”到“tabedit”vim
- 17. 如何从上到下过渡活动,反之亦然?
- 18. 重新映射其中一个键盘
- 19. 转换键盘AZERTY到QWERTY键盘,反之亦然
- 20. 在Node.js中创建ID到套接字的映射,反之亦然
- 21. 库跨平台的MIME类型映射到文件扩展名,反之亦然
- 22. 映射VIM关键
- 23. 重新映射Esc键在命令行模式Vim的
- 24. NSImage cv :: Mat,反之亦然
- 25. hadoop mapreduce反之亦然
- 26. 如何将下划线替换为空格,反之亦然?
- 27. 将列转换成行,反之亦然
- 28. XML到XLSX,反之亦然使用java
- 29. 填充JSON到C#类,反之亦然
- 30. dateTime到Epoch,反之亦然xslt
非常感谢!这些工作完美。 – HaySwim