2011-08-18 25 views
8

如果我使用set -o vi使bash的输入模式,然后按Esc键其次v,我得到一个VI窗口,让我来编辑它,一旦我离开执行的临时文件。在那个窗口中,我想享受Bash脚本的Vim语法突出显示。执行:syntax enable是不够的。该问题可能与临时文件没有.sh结尾或#!/bin/bash头可能用于确定文件类型有关。语法高亮Bash中VI输入模式

+0

echo $ EDITOR输出是什么?可能是你实际上在兼容模式而不是'vim'下调用'vi'或'vim'。 'vim'通常可以从启发式文件中挑选文件类型,如shebang行。 –

+0

此解决方案是否适用? http://stackoverflow.com/questions/5487338/vim-set-filetype-txt-for-every-new-file-no-name实质上,它将文件类型设置为默认值,如果没有检测到。 – numbers1311407

+0

_这个问题可能与临时文件没有.sh ending_heh这一事实有关,你可能已经回答了你自己的问题...... – RustyTheBoyRobot

回答

7

添加到您的.vimrc

if expand('%:t') =~?'bash-fc-\d\+' 
    setfiletype sh 
endif 

临时文件的形式bash-fc-3537253897的,所以如果该文件开头bash-fc-和应用文件类型,正则表达式匹配。

7

我会用更短的配方:

au BufRead,BufNewFile bash-fc-* set filetype=sh 

我相信这种类型的自动命令的是处理文件类型的任务(至少,我的.vimrc有许多人)的正规途径。

@Eric Fortis,如果您有不同的理由请加入或更正我。