在许多GUI中,当我选择一段文字然后点击 Tab 或 Shift + Tab 按钮时,所选部分将缩进或者出去。
在VIM中,我可以选择一个可视部分,然后点击&lt; 或&gt; 键来更改缩进,但是一旦我点击&lt; < / kbd> key我的选择被清除,所以我再次选择该部分并再次点击&lt; 。当我试图缩进一些东西并想要视觉反馈时,这真的很烦人。
在保持选择当前所选文本的同时,是否还要在vim中缩进内容?
是否有重新映射 Tab 和 Shift + Tab 的技巧,以便它们在可视模式下以这种方式运行?
答案 0 :(得分:41)
您可以为数字添加前缀,即。 “2&gt;” 中缩进两个制表位。或者,您可以使用“&gt;”缩进一次,然后“。”再次缩进(即使块不再突出显示,这也有效)。如果你走得太远,“你”会一次撤消一步。
如果你需要应用不同的命令,另一个有用的命令是“gv”来恢复最后一个视觉块。
答案 1 :(得分:33)
vmap <Tab> >gv
vmap <S-Tab> <gv
答案 2 :(得分:5)
另一种方法是选择一个块并使用以下序列在行的开头插入缩进:
ctrl+V
+箭头键选择块。I
切换到插入模式,以便在所选块的每个行的选择开头插入插入的文本。ctrl+T
增加缩进或ctrl+D
减少缩进。您可以添加任意数量的缩进。 注意:缩进只能看到块的第一行,但是当退出插入模式时,缩进将复制到块中的所有行上。答案 3 :(得分:4)
尝试使用“。”重复命令。它会记住范围,如果你走得太远,你可以用“u”来撤消一个级别。无需配置。
答案 4 :(得分:3)
或者,你可以去最近的支撑并在正常模式下输入=%
- 它会缩进括号所覆盖的块及其匹配的块。但我不确定这在Python等语言中有用。
答案 5 :(得分:3)
以下关键地图的工作方式与Brian的解决方案类似, 但也要保持光标位置与单词相关。
" tap indent movement (use mark `m' for cursor position)
vmap <S-Tab> mm<`m:<C-U>exec "normal ".&shiftwidth."h"<CR>mmgv`m
vmap <Tab> mm>`m:<C-U>exec "normal ".&shiftwidth."l"<CR>mmgv`m
答案 6 :(得分:2)
答案 7 :(得分:1)
尝试&gt;} 以获取“缩进下一段第一级”。
答案 8 :(得分:0)
由于我已经放弃vi到vim,我从未使用过&gt;也不是再次。我利用vim自动缩进,可以用=
显式触发它非常适合像= a {这甚至比=%
更有效的运动否则,如果一个&gt;是不够的,只需重做它,或用你撤消变化。