gpt4 book ai didi

vim - 在 Vim 中调整格式规则

转载 作者:行者123 更新时间:2023-12-04 23:07:03 26 4
gpt4 key购买 nike

我不是 Vim 菜鸟,但我也不是专业人士。如果我有一段,在这种情况下是javascript,代码如下

function foo(a,b,c,d) {
if (one||two) {
if (rhyme||reason) {
return true;
}
return false;
}
}

我格式化它( gg=G ),我得到以下代码:
function foo(a,b,c,d) {
if (one||two) {
if (rhyme||reason) {
return true;
}
return false;
}
}

这在美学上更令人愉悦。但是,如果我想要下面的结果(或者如果我想将上面的结果转换为下面的结果)怎么办:
function foo( a, b, c, d ) 
{
if ( one || two )
{
if ( rhyme || reason )
{
return true;
}
return false;
}
}

有没有办法指示 Vim 如何解析代码?我可以使用带有正则表达式的 hack 来查找括号和填充空格,但是当还考虑所有运算符时它会崩溃( !,%,*,-,+,=,/ )

最佳答案

几个不同的评论:

  • =运算符(operator)只处理缩进;除非你用 :set equalprg=foo 覆盖它的行为.它不会改变每一行的内容。见 :help = .
  • gq运算符将跨行重新格式化文本。默认情况下,它使用其内部格式化程序,它接受通过 :set formatoptions 设置的选项。 (参见 :help fo:help fo-table )。如果您知道可以按照您想要的方式重新格式化代码的外部工具,您可以设置 formatexpr (每个缓冲区)或 formatprg (全局)在您执行 gq 时调用该程序.见 :help gq .使用这个代替 gg=G就变成gggqG .
  • vim站点上有一个Javascript美化插件here .我没用过。它只是vimscript,所以如果你想修改它以完全按照你想要的方式格式化东西,它就在那里供你使用。
  • 关于vim - 在 Vim 中调整格式规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9853710/

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