首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动重新加载ghci &在文件更新时运行hlint

自动重新加载ghci &在文件更新时运行hlint
EN

Stack Overflow用户
提问于 2011-10-09 18:48:10
回答 6查看 5.1K关注 0票数 15

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

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

有人安排过这样的事吗?我们的目标是让hlint不断地观察我的代码以解决样式问题,并使ghci可以用于快速更改,而不必做任何事情,只需将文件保存在vim中。

我正在考虑使用像表表这样的自动化工具。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-10-10 19:27:01

您可以使用BufWrite自动命令在vim中运行任意shell命令:

例如,将其放在~/.vimrc

代码语言:javascript
复制
au BufWrite *.hs !echo % >> ~/saves.txt 

这将在每次保存haskell文件时运行echo <CURRENT FILENAME> >> ~/saves.txt

因此,这是一种触发外部脚本的简单方法。

现在,您可以编写一些iterm脚本来将命令中继到其他终端。类似于:

代码语言:javascript
复制
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终端设置参数)。

票数 7
EN

Stack Overflow用户

发布于 2018-01-16 12:09:19

https://github.com/ndmitchell/ghcid支持在文件更改时自动重新加载GHCi。

例如:ghcid '--command=stack ghci' --test=main

票数 4
EN

Stack Overflow用户

发布于 2013-07-28 08:44:54

不确定您是否还在查找,但解决自动闪烁问题的解决方案是合成体,它会自动在文件上运行hlint或ghc,并高亮显示位置中的行/设置,列出错误/警告/样式警告。

此外,当您将光标移动到该行时,它将在状态栏中显示消息/注释。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7705717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档