作为学习Haskell的一部分,为了好玩,我尝试使用Raspberry PI。在PI上安装ghci遇到了无数问题我决定只使用ghc。
创建,编译和创建运行一个新的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编辑器中运行?
答案 0 :(得分:2)
也许您可以尝试在vimrc
function! ExecuteHS()
w
!ghc -o first %
!./first
endfunction
要使用此功能,您只需将其称为:call ExecuteHS()
即可。在执行文件期间,Vim将被置于后台,然后在执行结束时返回前台。
作为奖励,您可以将以下行添加到vimrc
nnoremap <key> :call ExecuteHS()<CR>
例如,使用您的首选组合<key>
替换<Leader>e
。这样你只需要在正常模式下点击, e (如果你没有改变你的领导者密钥)来调用该函数。
这可能不是最干净的方法,但它应该适用于你想要的东西。
答案 1 :(得分:1)
绝对是vim,但不一定是其他vi风味。有关定义自定义命令的信息,请参阅this tutorial。将自定义命令放在vimrc
中,它将始终以:Customcmd
或您称之为的方式提供。对于一键访问,您可以使用:remap
为自定义命令或要运行的内置命令序列分配热键。 This是一个关于键映射的教程,可以为您提供更多信息。
我第二次@ statox被推荐到https://vi.stackexchange.com:)
答案 2 :(得分:0)
我使用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
,它将保存所有已更改的缓冲区(假设{ {1}}已设置)并构建您的项目。当出现错误时,它将填充快速修复列表,这样您就可以使用密钥跳转到每个错误或警告的特定文件和行号。使用autowrite
详细了解此功能。一切正常后,您可以:help quickfix
运行它。