Vim键映射范围的高级使用
我的vimrc中有一个映射,它向下注释c代码的区域:Vim键映射范围的高级使用,vim,keymapping,Vim,Keymapping,我的vimrc中有一个映射,它向下注释c代码的区域: nmap comc :normal! I//<ESC> 在编辑文本时,我更喜欢键入“-6comc”之类的内容,或者使用向上的范围对“Comc”进行映射。很遗憾,我没能成功地做到这一点 类似地,范围操作支持注释,直到达到搜索模式,例如: .,/int main/ comc 不过,我希望这样做时不必打字 尽管在没有任何插件的情况下尽可能多地使用插件是值得称赞的,但有时它们只是最好的选择。当您开始使用带有或(*..*)注释的语言工作
nmap comc :normal! I//<ESC>
在编辑文本时,我更喜欢键入“-6comc”之类的内容,或者使用向上的范围对“Comc”进行映射。很遗憾,我没能成功地做到这一点
类似地,范围操作支持注释,直到达到搜索模式,例如:
.,/int main/ comc
不过,我希望这样做时不必打字 尽管在没有任何插件的情况下尽可能多地使用插件是值得称赞的,但有时它们只是最好的选择。当您开始使用带有
或(*
..*)
注释的语言工作时,您会怎么做?是否为这些注释字符添加新映射
我建议您使用支持文件类型的注释
commentation.vim中的默认注释运算符是gc
。您可以将其与运动相结合,并在视觉模式下使用它
您的用例:
- 向下注释N行(例如,3):
,或:,.+3normalgcc
或gc3j
4gcc
- 向上注释5行:
,或者干脆:,-5normal gcc
gc5k
- 注释直到
:int-main
,或者只需在:,/int-main/-1normal gcc
后按Enter键即可gc/int-main
或(*
..*)
注释的语言工作时,您会怎么做?是否为这些注释字符添加新映射
我建议您使用支持文件类型的注释
commentation.vim中的默认注释运算符是gc
。您可以将其与运动相结合,并在视觉模式下使用它
您的用例:
- 向下注释N行(例如,3):
,或:,.+3normalgcc
或gc3j
4gcc
- 向上注释5行:
,或者干脆:,-5normal gcc
gc5k
- 注释直到
:int-main
,或者只需在:,/int-main/-1normal gcc
后按Enter键即可gc/int-main
:h map操作符
映射完成。有了这个注释,下面的3行将变成comc2j
,但是现在3行也同样容易:comc2k
您也可以在不更改映射的情况下使用可视模式:V2kcomc
。您必须使用相同的lhs
和rhs
添加xnoremap
,因为nnoremap
仅适用于正常模式。()
第三个选项是将-
映射到某个移动{count}
的对象,该对象将排队并返回计数:
nnoremap <expr> - (v:count ? ":\<C-u>\n" . (v:count-1) . 'k' . v:count : '')
nnoremap-(v:count?”:\\n.“(v:count-1)。“k”。v:count:“”)
。这假设您正在编写6-comc
,而不是-6comc
//顺便说一句,如果涉及到插件,我会建议
书呆子评论员。您请求的行为通常是通过:h map操作符
映射完成的。有了这个注释,下面的3行将变成comc2j
,但是现在3行也同样容易:comc2k
您也可以在不更改映射的情况下使用可视模式:V2kcomc
。您必须使用相同的lhs
和rhs
添加xnoremap
,因为nnoremap
仅适用于正常模式。()
第三个选项是将-
映射到某个移动{count}
的对象,该对象将排队并返回计数:
nnoremap <expr> - (v:count ? ":\<C-u>\n" . (v:count-1) . 'k' . v:count : '')
nnoremap-(v:count?”:\\n.“(v:count-1)。“k”。v:count:“”)
。这假设您正在编写6-comc
,而不是-6comc
//顺便说一句,如果涉及到插件,我建议NERD Commenter
。事实上,我有一个映射“comp”注释掉perl和python代码,还有一个映射“comh”注释掉haskell代码。我有一个自动命令,它递归地将“com”映射到我正在使用的文件类型所需的任何键映射。既然我已经这么做了,我宁愿避免切换到插件。不过,这听起来确实像是一个很棒的插件,当我完成“我要学习VIM”时,我可能会切换到它。事实上,我有一个映射“comp”注释perl和python代码,还有一个“comh”注释haskell代码。我有一个自动命令,它递归地将“com”映射到我正在使用的文件类型所需的任何键映射。既然我已经这么做了,我宁愿避免切换到插件。不过,这听起来确实像是一个很棒的插件,当我完成“我要学习VIM”时,我可能会切换到它。