rcv*_*rcv 7 vim formatting coding-style
我试图让AStyle使用Vim,以便我可以使用"="键重新缩进代码的各个部分.例如,我希望能够=iB使用AStyle而不是内置的压头来键入我的惯常缩进当前代码块.
我尝试在我的vimrc中设置equalprg = astyle,但问题是astyle只接收选定的块,但认为它正在接收整个文件.因此,当我尝试仅缩进嵌套类时,缩进完全关闭.
我知道我总是可以一次重新格式化整个文件,但有没有办法在vim中使用astyle,它完全复制了vim的原始格式化行为(所有我的=运动命令都工作 - 以及使用astyle的autoindent的奖励积分! )?
除非 AStyle 版本具有部分文件格式选项,否则您需要在运行 AStyle 后应用额外的缩进。
我不确定你如何通过动作来做到这一点。
通过视觉选择,您可以从第一行获取缩进,将代码传递给 equalprg,然后将该缩进添加到所有行:
vnoremap = <Esc>`<dwgv=`<<C-v>`>I<C-r>"<Esc>
Run Code Online (Sandbox Code Playgroud)
分解一下:
vnoremap -- so we can use = for equalprg
<Esc>`< -- stop selecting and go to beginning of line at beginning of selection
dw -- grab the initial indentation
gv= -- reselect and indent as normal
`<<C-v>`> -- block select the selection
I<C-r>"<Esc> -- insert the initial indentation
Run Code Online (Sandbox Code Playgroud)
也许你可以用动作做类似的事情?