【问题标题】:Format Ruby code in Vim在 Vim 中格式化 Ruby 代码
【发布时间】:2011-04-16 16:25:11
【问题描述】:

目前只是转移到 Vim。在 TextMate 中,我可以通过点击 Cmd-Alt-[ 来格式化代码。我如何在 Vim 中实现同样的效果?


有关命令,请参阅下面的答案。我发现我的.vimrc 中还需要以下内容,以便 Vim 知道如何自动缩进 Ruby。

if has("autocmd")
  filetype indent on
endif

【问题讨论】:

    标签: ruby vim code-formatting


    【解决方案1】:

    Vimcastsa useful screencast 讨论您可能感兴趣的主题

    gg=G
    
    gg => go to start of file
    =  => apply autoformatting
    G  => ... to the end of file
    

    【讨论】:

    • 我在一个 ruby​​ 文件中尝试了这个,它缩进了所有行,以便它们从左边开始 8 个字符。它完全忽略了原来的缩进。
    • 查看原始问题中的编辑以了解我对格式问题的解决方案。
    • 看了vimcast,值得一看
    • 请区分重新格式化重新缩进。这是两个不同的东西。
    【解决方案2】:

    当我看到有关 Vim 以及重新格式化和重新缩进的问题时,我通常会感到困惑。但这很容易。

    使用 = 键完成的重新缩进是在不插入任何行尾的情况下移动行缩进的过程 - 没有硬换行。简单来说就是选中行的开头列可以改变,但是内容不能改变。

    另一方面,重新格式化是对选定的一段代码进行完全重写。简单来说就是按照 Vim 中定义的语言规则,把所有的东西都删掉再写一遍。简单吧?

    通常的重新缩进模式是转到文件的开头(gg),更改为行选择(V) ,转到文件末尾 (G) 并执行重新识别 (=)。

    这是 vim 中的缩进ggVG =

    重新格式化模式以完全相同的键(ggVG),但不是等键,而是执行 gq - 重新格式化 Vim 命令。

    那是 vim 中的格式化ggVG gq

    这在每个 Vim 实例中都是开箱即用的,即使是纯文本也是如此。只有当 Vim 不理解编程语言时,您才需要为其提供正确的格式化规则(通常是一堆 .vim 文件,它们必须转到 .vim 目录结构)。

    只有在安装了插件 vim-ruby 时,才能为 Ruby 重新格式化。

    我不得不发布这个on my blog ;-) Vim 不是很酷吗?是的。

    【讨论】:

      【解决方案3】:

      试试:

      gg=G
      

      在正常模式下。

      【讨论】:

        【解决方案4】:

        如果您要寻找的不仅仅是缩进,请查看ruby-beautify。 可以通过vim-autoformat与vim集成。

        【讨论】:

          【解决方案5】:

          ggVGgq 将根据当前文件类型重新格式化整个文件

          【讨论】:

          • 我猜 ggVG= 也会这样做。
          • 我尝试了 ggVGqg 并且在重新格式化文档时它完全错误,例如第一个方法定义的第一行卡在类定义行的末尾。我根本无法理解这种格式。
          • 查看原始问题中的编辑以了解我对格式问题的解决方案。
          【解决方案6】:

          我发布了一个 VIM 插件,它可以对 Ruby 文件进行更全面的格式化。除了缩进之外,它还会删除尾随空格,并始终将方法声明隔开:

          vim-autoformat-rails

          【讨论】:

            【解决方案7】:

            对于小缩进,请尝试: =}, =)

            【讨论】:

              猜你喜欢
              • 2010-10-25
              • 2012-04-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-01-29
              • 2011-01-22
              相关资源
              最近更新 更多