作为学习Haskell的一部分,为了好玩,我试图使用树莓派。 遇到无数问题在PI上安装ghci我已经解决了只使用ghc。
所以要创build,编译和运行一个新的Haskell文件:
vi first.hs i main = putStrLn "First" Esc :w :q ghc -o first first.hs ./first
输出是:“第一”
我想自动化这些命令:
Esc :w :q ghc -o first first.hs ./first
这些可以从vi / vim中作为新的命令添加,如下所示:
:mycustomcommands
并从vi / vim编辑器运行?
也许你可以尝试在你的vimrc
添加这样的东西:
function! ExecuteHS() w !ghc -o first % !./first endfunction
要使用这个函数,你只需要像这样调用它:call ExecuteHS()
。 Vim将在执行文件的过程中置于后台,然后在执行结束时返回到前台。
作为奖励,你可以添加下面的行到你的vimrc
nnoremap <key> :call ExecuteHS()<CR>
<Leader>e
,用您的首选组合<Leader>e
替换<key>
。 这样,你只需要在正常模式下点击e (如果你没有改变你的leader key)来调用这个函数。
这可能不是最干净的方式,但它应该为你想要的。
绝对vim,虽然不一定在其他vi口味。 请参阅本教程以了解定义命令。 把自定义命令放在你的vimrc
,它将一直是可用的:Customcmd
或者你所说的任何东西。 对于单键访问,您可以使用:remap
为您的自定义命令或要运行的内置命令序列分配一个热键。 这是一个关于keymappings的教程,将会给你更多的信息。
我第二次@ statox的推荐https://vi.stackexchange.com 🙂
我使用vim-haskell ,其中包括一些很好的东西。 特别是,它包含一个用于设置cabal-install作为编译器的文件,这是一个非常好的工作方式。 将其转储到~/.vim/compiler/cabal-build.vim
:
CompilerSet makeprg=cabal\ build CompilerSet errorformat= \%W%f:%l:%c:\ Warning:%m, \%W%f:%l:%c:\ Warning:, \%E%f:%l:%c:%m, \%E%f:%l:%c:, \%C\ \ %#%m, \%-G%.%#, \%-G%.%#
这在~/.vim/ftplugin/haskell.vim
:
compiler cabal-build
( compiler
的参数应该与放在~/.vim/compiler
中的文件的名字相匹配。)然后你可以在vim中运行:make
,它会保存任何已经改变的缓冲区(假设设置了autowrite
)并建立你的项目。 当出现错误时,它将填充快速修复列表,该列表允许您跳转到每个错误的特定文件和行号,或使用一个键进行警告。 阅读更多关于此功能:help quickfix
。 一旦一切正常,你可以:!cabal run
来运行它。