【问题标题】:Launch (:normal) command on vim start with .java files在 vim 上启动 (:normal) 命令以 .java 文件开头
【发布时间】:2013-11-22 11:39:36
【问题描述】:

我想在我的 .vimrc 文件中放入行,这样它就会像 cmets 一样折叠 /* ... */*.java 文件。

到目前为止,我已经想出了这个,但它不想工作(尽管该命令在 vim 中工作)

autocmd BufReadPre,BufReadPost,FileReadPre,FileReadPost *.java execute ":normal :%g/\/\*/normal! zf%"

【问题讨论】:

    标签: vim execute autostart autocmd


    【解决方案1】:
    • :global 命令已经是一个Ex 命令;不需要:normal(用于jzf/ 之类的东西)。这应该有效:
    :autocmd BufReadPre,BufReadPost,FileReadPre,FileReadPost *.java %g/\/\*/normal! zf%
    
    • 您可能不需要在之前之后读取文件。
    • Vim 已经可以检测到文件类型;为什么要复制 Java 文件的文件模式?!最好使用FileType 事件:
    :autocmd FileType java %g/\/\*/normal! zf%
    
    • 根据您的previous question,您似乎想要设置精细的手动折叠。这是相当不寻常的,我建议不要这样做。 Java 具有基于语法高亮的内置折叠功能(虽然不适用于注释块,但您可以从 syntax/c.vim 获取);您通过
    • 启用它
    :setlocal foldmethod=syntax
    

    如果您真的需要自定义折叠,:help fold-expr 是您的最佳选择。

    【讨论】:

    • 我试图了解syntax/c.vim,但这对我来说有点麻烦。
    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 2011-12-07
    • 2011-04-29
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多