如何在vim中及时编译CoffeeScript?
我可以轻松地将vim窗口分为两个(左和右) 如何将vim配置为:如何在vim中及时编译CoffeeScript?,vim,coffeescript,Vim,Coffeescript,我可以轻松地将vim窗口分为两个(左和右) 如何将vim配置为: 在左侧窗口中编辑CoffeeScript 在右侧窗口中查看编译的JavaScript结果 在状态行查看错误消息 当我在左侧窗口中键入时,右侧窗口和状态行应该更新JIT 例如: ======================================================================== alert "hello" | alert("hello"); alert "
- 在左侧窗口中编辑CoffeeScript
- 在右侧窗口中查看编译的JavaScript结果
- 在状态行查看错误消息
========================================================================
alert "hello" | alert("hello");
alert "world | alert;
|
========================================================================
missing ", starting on line 2
就像
http://coffeescript.org/
->试试CoffeeScript
我不仅仅使用vim,我还使用GNU屏幕、GNU源高亮显示和GNU手表的组合。但是,您需要具有具有垂直分割补丁的screen版本
启动屏幕后
,我将按Ctrl+ACtrl+C创建第二个shell,然后使用Ctrl+AShift+\创建垂直拆分,然后按Ctrl+ATab切换到新拆分,按Ctrl+ACtrl+a切换到新shell。在这个shell中,我运行:
$ mkdir compiled
$ coffee -w -c -o compiled/ *.coffee &
它将在监视模式下运行coffee
,监视源文件(*.coffee)或文件夹的更改,并自动重新编译更改的*.coffee文件,并将生成的.js文件放置在编译的
文件夹中
现在,我将运行$watch--color-n1 colorize compiled/main.js
来显示我感兴趣的编译文件的内容,从而启用ANSI彩色输出
我称之为colorize
的脚本文件只是sourcehighlight
的包装,它自动检测源文件的语言并应用适当的语法突出显示
然后,我使用Ctrl+ACtrl+Tab移回到第一个拆分,启动vim main.coffee
并开始编辑
当我编辑coffeescript文件时,已编译的更改显示在右侧
错误有点棘手,因为它们是从后台coffee-w
job吐出来的。它们会出现,但有时watch
命令会覆盖错误,有时错误会扰乱屏幕。当这种情况发生时,一个快速的Ctrl+L命令告诉bash重新绘制屏幕可以解决问题
希望对您有所帮助。vimrc config
注意:如果您喜欢JIT,请尝试使用CursorHold而不是BufWritePost
打开文件
运行ex命令
我没有见过这样的东西,但我知道coffeescript Vim插件会进行语法检查,并给出您可能需要的警告:Vim coffeescript确实具有与coffeescript.org网站类似的实时预览功能非常好,经过投票,但是你不需要所有的
colorize
和screen
的幻想。只是让它在这里工作,背景是coffee-wco./*.coffee
,在一个终端窗口(gnome终端)上是vim file.coffee
,在另一个终端窗口上是watch-n1 file.js
。我不确定你能做一个简单的watch-n1 file.js
,除非你的手表版本和我的不同。此外,这不会给您任何彩色输出的关注文件。此外,如果您的SSH'ing到一个远程服务器,不做X转发(我做)。你是非常正确的。我以前从未使用过屏幕。现在我做到了,太棒了。对于ssh会话来说,它就像一个符咒。非常感谢。(另外,我错误地输入了watch
的命令,我是用watch-n1 cat file.js
完成的,但这并不像小文件那样好。)
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
$ vim -O code.{coffee,js}
:w