vim - 重新映射 >> << (缩进命令)

Posted

技术标签:

【中文标题】vim - 重新映射 >> << (缩进命令)【英文标题】:vim - remapping >> << (indent commands) 【发布时间】:2012-01-13 17:47:38 【问题描述】:

我很想将 > 映射到单个键以加快我的工作流程,但我找不到任何关于如何在我的 vimrc 中编写重映射的信息。知道如何重新映射吗?

【问题讨论】:

您真的要重新映射它们吗?通过&gt;&gt;第一次缩进后,您可以按.重复该操作。就像重新映射到一个按键一样好。 在可视模式下,单个&lt;&gt; 已经执行了缩进。 请注意,在插入模式下 CTRL-T 和 CTRL-D 分别缩进和取消缩进。 @Michael,我知道,我很懒惰。整天敲击同一个键两次来启动缩进只会让人筋疲力尽(即使我用 . 重复它们)。我认为下面的答案仍然会每天为我节省数百次击键。 (是的,我处理那么多标记)。感谢大家的提示! @tester 如果您正在处理大量 html 或 XML,并且您发现自己经常缩进,希望您也使用 = 来修复缩进... 【参考方案1】:

给出的其他回答回答了您的直接问题。我只是建议您在正常模式和可视模式下将其重新映射为缩进和缩进(确保添加 gv 以在可视选择模式下重新选择):

nnoremap <TAB> >>
nnoremap <S-TAB> <<
vnoremap <TAB> >gv
vnoremap <S-TAB> <gv

当然,在插入模式下,您可能已经知道,您可以使用 Ctrl-tCtrl-d 来缩进/缩进。

【讨论】:

当我使用这个键绑定时,我无法通过转义退出可视模式。有什么解决办法吗?【参考方案2】:

您可能正在寻找:noremap

:noremap > >>
:noremap < <<

如果你只使用:map,你当然会得到递归定义的函数,这很有趣。 (^C 会阻止它。):noremap 变体不会递归扩展映射。

【讨论】:

以上是关于vim - 重新映射 >> << (缩进命令)的主要内容,如果未能解决你的问题,请参考以下文章

如何 在Vim工作?

如何修改vim插件默认映射?

在ubuntu14.04中,装了vim插件,运行vi的时候,提示:E227: 映射 <80>k5 已存在怎样解决, 快捷键不好使

mac下vim键盘映射不起作用

如何在 Pycharm 中映射 <CTRL-R> 以供 vim 使用

在 Vim 中使用 latex-suite 映射 <C-j> 的问题