gpt4 book ai didi

vim - 在 Vim 中使用 AStyle

转载 作者:bug小助手 更新时间:2023-10-28 10:51:06 26 4
gpt4 key购买 nike

我正在尝试让 AStyle 与 Vim 一起使用,以便我可以使用“=”键重新缩进各个代码部分。例如,我希望能够键入我常用的 =iB 来使用 AStyle 而不是内置的缩进器来缩进当前的代码块。

我尝试在我的 vimrc 中设置 equalprg=astyle,但问题是 astyle 只接收选定的 block ,但认为它正在接收整个文件。因此,当我尝试只缩进嵌套类时,缩进完全关闭。

我知道我总是可以一次重新格式化整个文件,但是有没有办法在 vim 中使用 astyle 来完全复制 vim 的原始格式化行为(我所有的 =-movement 命令都有效- 以及使用 astyle 自动缩进的奖励积分!)?

最佳答案

除非存在具有部分文件格式选项的 AStyle 版本,否则您需要在运行 AStyle 后应用额外的缩进。

我不确定你如何通过 Action 来做到这一点。

通过视觉选择,您可以从第一行获取缩进,将代码传递给 equalprg,然后将该缩进添加到所有行:

vnoremap = <Esc>`<dwgv=`<<C-v>`>I<C-r>"<Esc>

分解:

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

也许你可以用 Action 做类似的事情?

关于vim - 在 Vim 中使用 AStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4587940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com