代码之家  ›  专栏  ›  技术社区  ›  Brian Ramsay

有人知道在vi中突出显示objective-j语法吗?

  •  10
  • Brian Ramsay  · 技术社区  · 16 年前

    我一直在看新的 Objective-J / Cappuccino 来自的javascript框架 280North . 它们为SubethaEdit和TextMate提供插件来处理语法突出显示,但我主要使用vi。有人知道如何在vi中实现Objective-J语法突出显示,或者如何转换其他两个编辑器使用的任何格式吗?

    4 回复  |  直到 14 年前
        1
  •  7
  •   Francisco Ryan Tolmasky I    16 年前

    Objective-J工具包( http://cappuccino.org/download )GitHub上的源代码现在包括一个VIM突出显示模块。

        2
  •  10
  •   bootload    15 年前

    GitHub上的源现在包括一个VIM 突出显示模块。

    我发现仅仅按照这里的建议做是不够的:

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

    • 解压缩, cd Tools/ 迪尔

    • 运行外壳, sh install-tools

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

    问题

    我没有发现突出显示语法对“.j”文件有效。所以这里的问题是没有文件扩展名识别。如果你像我一样使用gvim,也没有菜单项。

    将Objective-J添加到GVIM菜单

    要在gvim中添加用于语法的菜单项->ne mo->目标j:

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

    添加以下行。

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

    保存并退出

    • :wq!

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

    • 语法->ne mo->目标j

    应突出显示所选目标J文件。

    目标J自动突出显示?

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

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

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

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

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

    结果

    现在,您应该通过文件类型“.j”和在gvim中设置此文件类型的方法来自动识别objective-j文件。这可能是由bram或者官方发布vim的任何人添加的,但目前这个黑客对我有用。(Ubuntu 8.10,VIM 7.1)

        3
  •  5
  •   Rafael Bugajewski    14 年前

    下面是另一种将带有自动文件检测的目标j突出显示添加到(mac)vim的方法,它比bootloads版本更干净、更短(它不会向mac vim添加菜单,但我根本不需要它):

    1. 下载弗朗西斯科提到的objj.vim文件。
    2. 把它放进 ~/.vim/syntax/ (必要时创建文件夹)
    3. 添加线 au BufNewFile,BufRead *.j setf objj ~/.vim/filetype.vim
    4. 不要忘记在 ~/.vimrc 配置文件: filetype plugin on
        4
  •  1
  •   Claes Mogren BenLanc    16 年前

    如果常规的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文件,而不是按原样使用它。