如何在vim中及时编译CoffeeScript



我可以很容易地将vim窗口一分为二(左和右)。

如何将vim配置为:

  • 在左侧窗口中编辑CoffeeScript
  • 在右侧窗口中查看编译后的JavaScript结果
  • 在状态行查看错误消息

当我在左侧窗口中键入时,右侧窗口和状态行应该更新JIT。

例如:

========================================================================
alert "hello"                | alert("hello");
alert "world                 | alert;
                             |
========================================================================
missing ", starting on line 2

就像http://coffeescript.org/->Try CoffeeScript

我不仅仅使用vim,我还使用了GNU屏幕、GNU源代码高亮显示和GNU手表的组合。但是,您需要具有垂直分割补丁的屏幕版本。

启动screen后,我将按Ctrl+ACtrl+C创建第二个shell,然后按Ctrl+AShift+\trl+A选项卡切换到新的拆分,按<kbd:Ctrl+A>Ctrl+A将拆分切换到新shell。在那个外壳中,我运行:

$ mkdir compiled
$ coffee -w -c -o compiled/ *.coffee &

这将在监视模式下运行coffee,监视源文件(*.coffee)或文件夹的更改,并自动重新编译更改后的*.coffe文件,并将生成的.js文件放在compiled文件夹中。

现在,我将运行$ watch --color -n 1 colorize compiled/main.js来显示我感兴趣的编译文件的内容,从而启用ANSI彩色输出。

我称之为colorize的脚本文件只是source-highlight的包装器,它自动检测源文件的语言并应用适当的语法高亮显示。

然后,我使用Ctrl+ACtrl+Tab移回第一个拆分,启动vim main.coffee并开始编辑。

当我编辑coffeescript文件时,编译后的更改显示在右侧。

错误有点棘手,因为它们是从后台coffee -w作业中吐出来的。它们会出现,但有时watch命令会覆盖错误,有时错误会扰乱屏幕。当这种情况发生时,一个快速的Ctrl+L来告诉bash重新绘制屏幕可以解决问题。

希望这能有所帮助。

vimrc配置

set autoread
aug coffee
    au!
    au BufNewFile,BufRead *.coffee      setf coffee.python
    au FileType coffee.python           setl makeprg=coffee -c %
    au FileType coffee.python           setl errorformat=Error: In %f\, %m on line %l,
                                                       Error: In %f\, Parse error on line %l: %m,
                                                       SyntaxError: In %f\, %m,
                                                       %-G%.%#
    au BufWritePost *.coffee            silent! make! | copen | redraw!
aug END

注意:如果您喜欢JIT,请尝试CursorHold,而不是BufWritePost

打开文件

$ vim -O code.{coffee,js}

run ex命令

:w

最新更新