Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vim中及时编译CoffeeScript?_Vim_Coffeescript - Fatal编程技术网

如何在vim中及时编译CoffeeScript?

如何在vim中及时编译CoffeeScript?,vim,coffeescript,Vim,Coffeescript,我可以轻松地将vim窗口分为两个(左和右) 如何将vim配置为: 在左侧窗口中编辑CoffeeScript 在右侧窗口中查看编译的JavaScript结果 在状态行查看错误消息 当我在左侧窗口中键入时,右侧窗口和状态行应该更新JIT 例如: ======================================================================== alert "hello" | alert("hello"); alert "

我可以轻松地将vim窗口分为两个(左和右)

如何将vim配置为:

  • 在左侧窗口中编辑CoffeeScript
  • 在右侧窗口中查看编译的JavaScript结果
  • 在状态行查看错误消息
当我在左侧窗口中键入时,右侧窗口和状态行应该更新JIT

例如:

========================================================================
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