gpt4 book ai didi

haskell - 自动重新加载 ghci 并在文件更新时运行 hlint

转载 作者:行者123 更新时间:2023-12-03 22:33:16 25 4
gpt4 key购买 nike

我正在考虑我理想的 haskell 编辑工作流程:

  • 我打开三个终端(使用 iterm2 拆分)。
  • 终端 1 运行 vim 来编辑 haskell 源文件。
  • 当当前目录或子目录中的文件更新或创建时,终端 2 自动对更改的文件运行 hlint
  • 终端 3 运行 ghci,自动加载/重新加载更改的文件。

  • 有没有人设置过这样的东西?目标是让 hlint 不断观察我的代码是否存在样式问题,并让 ghci 可用于快速更改,而无需执行任何操作,只需将文件保存在 vim 中即可。

    我正在考虑使用 watchr 之类的东西为自动化。

    最佳答案

    您可以使用 BufWrite 在 vi​​m 中运行任意 shell 命令。自动命令:

    例如,把它放在你的 ~/.vimrc :

    au BufWrite *.hs !echo % >> ~/saves.txt 

    这将运行 echo <CURRENT FILENAME> >> ~/saves.txt每次你保存一个haskell文件。

    所以这是一种触发外部脚本的简单方法。

    现在你可以写一些 iterm scripts将命令中继到您的其他终端。就像是:
    tell my_ghci_terminal
    write text ":r\n"
    end tell
    tell my_hlint_terminal
    write text "<RUN HLINT ON WHATEVER>"
    end tell

    因此,您可以使用 vim 自动命令来触发相应的 iterm 脚本(传递当前文件名,以便脚本可以告诉 ghci 和 hlint 要处理哪个文件)。

    您可能想要打开和关闭它(您可能不想对每个 haskell 文件都这样做),因此请考虑将功能包装在一个 vim 函数中,以便您切换它(以及设置 iterm 应该如何使用的参数找到你的 ghci 和 hlint 终端)。

    关于haskell - 自动重新加载 ghci 并在文件更新时运行 hlint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7705717/

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