一台漂亮的打印机“统治他们”
Posted
技术标签:
【中文标题】一台漂亮的打印机“统治他们”【英文标题】:one pretty printer "to rule them all" 【发布时间】:2010-09-20 01:54:40 【问题描述】:我正在寻找一种可以以尽可能多的语言漂亮地打印(AKA 整洁或美化)源代码的工具。我特别热衷的包括:
Java JSP html javascript SQL JSON XML理想情况下,该工具应该能够就地更新源文件,并且一次能够格式化多个文件。如果它可以格式化包含多种语言的文件(例如,包含 HTML、Java 和 JavaScript 源代码的 JSP),那就太好了,但这可能要求有点高。
我已经找到了一个commercial tool,它似乎涵盖了很多语言,但免费的会更好:)
顺便说一句,我知道有一台漂亮的打印机可用于大多数语言,但我正在寻找的是“一站式商店”。
干杯, 唐
【问题讨论】:
免费?!,Polystyle 每种支持的语言只需 1.998 美元! ;) 对我的血液来说太丰富了:) 我在一个包含 JSP 代码的文件上试了一下,它似乎工作正常。 【参考方案1】:我一直使用 Vim 来做这件事。它不能很好地处理 HTML,但它可以处理其他的。使用 Vim 命令可以很容易地在多个文件上自动运行它。
【讨论】:
我也用 gvim,虽然我不是忍者。究竟如何格式化源代码,以及如何设置用于缩进的制表符/空格数? 缩进间距设置为: :set ts=4 sw=4 (将制表位设置为 4 并将 shiftwidth 设置为 4)。包含在 .vimrc 文件或环境变量中。 自动格式化是通过在命令模式下按 = 键完成的。使用 ggVG 突出显示整个缓冲区,然后点击 =(您可能需要执行两次)。您也可以对缓冲区的较小选择执行此操作,但有时它假定您的选择应从缩进级别 0 开始。【参考方案2】:我使用UltraEdit,发现它总体上还不错。它不是免费的,但也不是那么贵。
【讨论】:
【参考方案3】:Wikipedia 有一个很大的列表。不过,我很想看看这里可能会出现什么共识。
几种处理多种语言;例如
PrettyPrinter,(每种编程语言的开源美化器)
UniversalIndentGUI(任何漂亮打印机的图形用户界面,带有格式设置的实时预览)
prettyprinter.de,(php、Java、C++、C、Perl、JavaScript、CSS 的在线美化工具)
【讨论】:
我正在寻找的是一台可以打印多种语言的漂亮打印机,而不是一种语言。 有几个可以处理多种语言。【参考方案4】:Emacs 是我个人的最爱。有一些插件可以支持几乎所有你可以使用的语言。
【讨论】:
【参考方案5】:对于 Haskell,我在 ~/bin/pp.hs
中有这个:
#!/usr/bin/env runhaskell
module Main (main) where
import Language.Haskell.Parser
import Language.Haskell.Pretty
import System.Environment
pp f = case parseModule f
of ParseOk m -> prettyPrint m
a -> show a
main = do args <- getArgs
mapM_ (>>= putStrLn . pp) $
if null args then [getContents] else map readFile args
在 Vim 中,:set equalprg=~/bin/pp.hs
,选择一个区域,点击=
,然后砰,它会被美化。
好的,这不是很笼统。但我认为如果我在这里添加它,它对某人有帮助的机会很小。
【讨论】:
以上是关于一台漂亮的打印机“统治他们”的主要内容,如果未能解决你的问题,请参考以下文章