10

我一直在研究280North的新Objective-J / Cappuccino javascript 框架。它们为 SubEthaEdit 和 TextMate 提供插件来处理语法高亮,但我主要使用 vi。有谁知道在 vi 中获得 Objective-J 语法突出显示的方法,或者转换其他两个编辑器使用的任何格式的好方法?

4

4 回答 4

10

github 上的源代码现在包含一个 vim 高亮模块。

我发现只做这里的建议是不够​​的:

  • 按照弗朗西斯科的建议下载文件

  • 解压,cd Tools/目录

  • 运行外壳,sh install-tools

  • 将 objj.vim 文件复制到 vim 目录,cp Tools/Editors/objj.vim /usr/share/vim/vim71/syntax/

问题

我发现没有语法高亮适用于“.j”文件。所以这里的问题是没有文件扩展名识别。如果您像我一样使用 gvim,也没有菜单项。

将 Objective-J 添加到 gvim 菜单

在 gvim 中为 Syntax->Ne-MO->Objective J 添加一个菜单项:

  • sudo vim /usr/share/vim/vim71/synmenu.vim

添加以下行。

  • an 50.70.465 &Syntax.Me-NO.Objective\ J :cal SetSyn("objj")<CR>在objective-C条目下方。

保存并退出

  • :wq!

然后在 gvim 中重新加载一个“.j”文件。如果你然后去:

  • 语法->Ne-MO->Objective J

应该会突出显示您选择的 Objective-J 文件。

Objective-J 自动高亮显示?

但是当你加载文件时自动突出显示呢?似乎没有文件关联。所以:

  • sudo vim /usr/share/vim/vim7.1/filetype.vim

在该文件中,您将找到文件类型关联的列表。如果您想知道在哪里添加该行,请在 filetype.vim 中搜索“ setf ocaml ”。在上面添加以下行(按字母顺序):

  • "" Objective J au BufNewFile,BufRead *.j setf objj

保存结果。您现在应该能够加载扩展名为“.j”的文件,并且 Objective-J 文件的语法突出显示工作正常。

结果

现在您应该可以通过文件类型“.j”自动识别 Objective-J 文件,以及在 gvim 中设置此文件类型的方法。这可能应该由 Bram 或任何正式发布 vim 的人添加,但目前这个 hack 对我有用。(Ubuntu 8.10,Vim 7.1)

于 2009-03-05T04:18:43.430 回答
7

Objective-J 工具包 ( http://cappuccino.org/download ) 和 github 上的源代码现在包含一个 vim 高亮模块。

于 2008-09-15T19:03:16.210 回答
5

这是向 (Mac)Vim 添加带有自动文件检测功能的 Objective J 突出显示的另一种方法,它比 bootload 的版本更简洁、更短(它不会向 MacVim 添加菜单,但我根本不需要它) :

  1. 下载 Francisco 提到的 objj.vim 文件。
  2. 将其放入~/.vim/syntax/(如有必要,创建文件夹)
  3. 将行添加au BufNewFile,BufRead *.j setf objj~/.vim/filetype.vim
  4. 不要忘记在~/.vimrc配置文件中打开文件类型检测:filetype plugin on
于 2010-09-12T12:49:35.727 回答
1

如果常规的 javascript 语法高亮足够好,您可以通过在 .vimrc 文件中添加类似这样的内容来将其映射到 .j 文件:

   augroup objective-j
   au! BufRead,BufNewFile *.j set filetype=objective-j
   au! Syntax objective-j source /usr/share/vim/vim71/syntax/javascript.vim
   augroup END

我没有尝试过这个确切的代码,但是在我的 Linux 机器上将 C# 语法映射到 .vala 文件时做了类似的事情。(注意:javascript.vim 文件可能位于您计算机上的其他位置。)您当然可以根据该 javascript.vim 语法定义创建一个objective-j.vim 文件,而不是按原样使用它。

于 2008-09-08T14:07:10.567 回答