V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hatcloud
V2EX  ›  问与答

为什么写在.vimrc 里关于&filetype == 'py'的判断的不起作用呢?

  •  
  •   hatcloud · 2014-09-21 01:17:37 +08:00 · 4077 次点击
    这是一个创建于 3532 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如下面这段,作用是按F5实现几种文件的简单运行,但实际操作的时候,对.py文件就不起作用,其他.c,.cpp,.java都是可以通过的。

    难道Vim默认是不支持识别.py么?可是.py文件确实可以语法高亮啊。
    我只装了三个插件:pathogen,Nerd Tree,Pydiction
    难道是Pydiction插件导致的??

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " C,C++,Java,Python按F5编译运行
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    map <F5> :call CompileRunGcc()<CR>
    func! CompileRunGcc()
    exec "w"
    if &filetype == 'c'
    exec "!gcc % -o %<"
    exec "! ./%<"
    elseif &filetype == 'cpp'
    exec "!g++ % -o %<"
    exec "! ./%<"
    elseif &filetype == 'java'
    exec "!javac %"
    exec "!java %<"
    elseif &filetype == 'sh'
    :!./%
    elseif &filetype == 'py'
    :!python%
    endif
    endfunc
    3 条回复    2014-09-21 09:35:41 +08:00
    hatcloud
        1
    hatcloud  
    OP
       2014-09-21 01:38:14 +08:00
    解决了,我在.vimrc中添加了这么一行
    au BufRead,BufNewFile *.py set filetype=py
    就OK了,就是Vim识别不了py,所以指定*.py文件为py类型就行了

    自言自语号寂寞
    wenLiangcan
        2
    wenLiangcan  
       2014-09-21 09:30:16 +08:00   ❤️ 1
    Vim 称 *.py 文件的 filetype 为 python 而不是 py
    hatcloud
        3
    hatcloud  
    OP
       2014-09-21 09:35:41 +08:00
    @wenLiangcan 谢谢,昨天加上那一行以后,虽然判断语句能用,但却不能语法高亮,我就猜测Vim是识别.py文件的,但类型可能不是py.来V2EX一看就看到你答案了。
    茅塞顿开
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2795 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 12:47 · PVG 20:47 · LAX 05:47 · JFK 08:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.