haskell作为函数式编程的代表性语言,值得我们花费一些心思去使用,官方提供了各式各样的IDE供我们使用。这里由于我平时使用sublime text3使用的比较多,所以简述一下在Mac系统中,搭建基于sublime的haskell语言IDE的过程。
安装haskell
Mac系统中自带haskell的ghc,因此我们只要直接使用就可以了。可以在终端中输入ghc -V
来确认使用的ghc版本号。
haskell的包管理器cabal
在Mac系统中cabal与ghc都是自带的,因此我们可以直接使用。但是自带的cabal有可能因为版本太低等原因不能使用,所以这里我们使用homebrew重新安装一个cabal。首先要安装cabal-install
首先需要链接ghc
。
在终端中执行brew link ghc
,执行成功后,在终端中执行brew install cabal-install
,即可重新安装好。然后根据提示将homebrew
安装的cabal-install
作为默认执行的cabal
,并删除原来的版本即可。这些内容在brew
的提示中都有。
完成了以上步骤之后我们需要将cabal
中的内容升级到最新。
执行
cabal update
安装SublimeHaskell
我们可以使用sublime
的包管理器Package Control
来安装SublimeHaskell
。
首先安装Package Control
。安装方法在如下网站可以找到:安装方法。对于我来说,由于我使用的是sublime text 3
,因此,操作流程为,首先按快捷键ctrl+`
,打开了控制台。在控制台中输入命令
import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
之后等待sublime
的操作完成,重启sublime
即可。
接下来利用刚刚安装的package control
安装SublimeHaskell
。
按快捷键command+shift+p
打开命令模式。输入Package Control:Install Package
(当然我们不需要输入这么多,因为sublime
的自动补全能力十分强大)。然后等待sublime
完成这个流程之后会弹出一个新的命令模式输入栏,这时候输入SublimeHaskell
,找到要安装的包之后等待其自动完成即可。
配置SublimeHaskell
安装完sublime
中的package
之后我们还不能很好的使用,还需要安装一些需要的支持并配置一些路径。
在SublimeHaskell
的README
中有这样一些说明:
Requirements
Necessary:
ghc and a recent Haskell Platform (>= 2012 should do fine)
cabal
hsdev cabal package (cabal install hsdev
) for inspection, enhanced completion, goto, symbol info etc.
Not necessary, but useful:
SublimeREPL package for repl commands
stylish-haskell (for code prettification,cabal install stylish-haskell
)
Deprecated:
ghc-mod (for import and LANGUAGE completions and type inference,cabal install ghc-mod
, not used ifhsdev
enabled,ghc-mod
is used byhsdev
as a library)
hdevtools (or fork for windows) (for type inference,cabal install hdevtools
, not used ifhsdev
enabled)
Binaries:
If yourcabal
,ghc-mod
,ghc
etc. are not installed in a system PATH, you have to adjust SublimeHaskell'sadd_to_PATH
setting.
以上内容就是主要的依赖包。根据这些介绍,我们可以顺序执行以下命令来安装这些包。
首先是hsdev
cabal install hsdev
根据介绍如果这个安装了就不用安装hdevtools
了
然后是ghc-mod
这个是上一个hsdev
的依赖包
cabal install ghc-mod
接下来是不必须但是很有用的stylish-haskell
cabal install stylish-haskell
根据介绍安装完了这些内容之后我们还需要在SublimeHaskell
的配置中对他们的路径进行配置。
为了找到这些配置,我们可以点击Preferences -> Browse Packages
选项,打开找到SublimeHaskell
这个包。在里面找到Settings
文件夹中的SublimeHaskell.sublime-settings
文件。对这个文件进行修改。修改这个文件中的"add_to_PATH"
字段。我们要在这个字段中加入cabal
和安装的依赖包的路径。
首先是cabal
的路径。
由于我的是Mac系统,使用brew
安装的cabal
,因此我的cabal
位于/usr/local/Cellar/cabal-install/1.24.0.0_1
路径下的bin
文件夹下。将/usr/local/Cellar/cabal-install/1.24.0.0_1/bin
加入这一项的值中。
接下来是依赖包的路径。
这里cabal
会将依赖包安装在haskell
的路径下,找到haskell
的路径里面应该也有一个bin
目录,将这个目录也加入"add_to_PATH"
字段中即可。
设置完成之后保存重启Sublime Text
,我们就可以开始使用我们配置好的SublimeHaskell
了。