【问题标题】:Shortcut key to indent a block of text with IdeaVim and Phpstorm使用 IdeaVim 和 Phpstorm 缩进文本块的快捷键
【发布时间】:2014-12-14 21:59:33
【问题描述】:

如果 PhpStorm 中没有 IdeaVim,tab 键可以用来缩进选定的文本块。但是,我很想知道是否有一个快捷键可以在安装了 IdeaVim 插件的情况下执行相同的操作(不会丢失 Tab 键原本具有的任何功能)。

【问题讨论】:

    标签: phpstorm indentation ideavim


    【解决方案1】:

    Indent multiple lines quickly in vi

    您必须处于正常模式,即在缩进之前转到Esc

    您可以使用Shift+V 选择一行行,然后是向上/向下箭头,然后是> 以缩进(< 反转缩进)。

    【讨论】:

    • 太好了,看起来不错。我注意到,一旦我对选定的块进行了一次缩进,它就会被取消选择。如果您知道保持选中状态的方法,请告诉我!再次感谢。
    • 您可以在<> 命令之前指定缩进的数量。比如,2> 缩进 2 次。不客气。
    • vim 中有 . 命令,它重复上一个命令,这比计算要好得多(即使 phpstorm 中的垂直线可以帮助你做到这一点)。看来IdeaVim在这件事上被打破了:块缩进后的点命令只缩进一行......
    • 是的,我同意此功能要求。我用 python 编程,当我重构时,我倾向于移动函数体并改变很多缩进。现在我可以通过块可视化并缩进该部分来更改缩进 1 级别。但是当我进入 .命令(就像在普通 vim 中一样)它只适用于最后一行而不是整个选择。在当前版本(0.37)上,我还没有找到一种方法来轻松更改多行上的缩进级别超过一个步骤。顺便说一句,感谢您提供了一个很棒的插件 :)
    • 当我在 2019 年偶然发现这一点时,我想指出 . 命令现在可以在 IntelliJ IDE 中正常工作
    【解决方案2】:

    我认为以下设置是您想要的! :)

    将以下内容放入 ~/.ideavimrc

    nnoremap <Tab> >>_
    nnoremap <S-Tab> <<_
    inoremap <S-Tab> <C-D>
    vnoremap <Tab> >gv
    vnoremap <S-Tab> <gv
    

    ideavim 支持 vimrc 和 .ideavimrc

    另见:Is there a way to get IdeaVIM to honor the mappings from my .vimrc file?

    【讨论】:

    • 为我工作。谢谢!
    • 正是我想要的!
    猜你喜欢
    • 2014-10-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多