vim colorscheme未在新选项卡中加载

时间:2014-04-09 18:25:17

标签: vim color-scheme system-verilog

我一直在努力改变我的vim的颜色方案,我终于觉得我做得恰到好处。我正在使用systemverilog(.sv)文件,通常需要一次打开4-5个选项卡。

我在vim中从终端打开的第一个文件,加载colorscheme就好了。如果我从这个文件打开一个新的vim选项卡(:tabnew file_name),打开另一个sv文件,它只显示一种颜色。我必须打开一个新的终端选项卡,以使colorscheme在另一个文件中工作。

我的.vimrc文件位于主目录中,还有我的.vim文件夹,里面有color文件夹。我尝试了以下命令:

:scriptnames

在两个选项卡中,它们显示位于自定义颜色文件夹中的颜色方案以及默认位置。

  1: /etc/vimrc
  2: /usr/share/vim/vim72/syntax/syntax.vim
  3: /usr/share/vim/vim72/syntax/synload.vim
  4: /usr/share/vim/vim72/syntax/syncolor.vim
  5: /usr/share/vim/vim72/filetype.vim
  6: /usr/share/vim/vim72/ftplugin.vim
  7: /home/username/.vimrc
  8: /usr/share/vim/vim72/syntax/nosyntax.vim
  9: /home/username/.vim/plugin/matchit.vim
 10: /home/username/.vim/syntax/verilog_systemverilog.vim
 11: /usr/share/vim/vim72/syntax/verilog.vim
 12: /usr/share/vim/vim72/indent.vim
 13: /home/username/.vim/colors/koehler.vim
 14: /home/username/.vim/plugin/matchit2.vim
 15: /usr/share/vim/vim72/plugin/filetype.vim
 16: /usr/share/vim/vim72/plugin/getscriptPlugin.vim
 17: /usr/share/vim/vim72/plugin/gzip.vim
 18: /usr/share/vim/vim72/plugin/matchparen.vim
 19: /usr/share/vim/vim72/plugin/netrwPlugin.vim
 20: /usr/share/vim/vim72/plugin/rrhelper.vim
 21: /usr/share/vim/vim72/plugin/spellfile.vim
 22: /usr/share/vim/vim72/plugin/tarPlugin.vim
 23: /usr/share/vim/vim72/plugin/tohtml.vim
 24: /usr/share/vim/vim72/plugin/vimballPlugin.vim
 25: /usr/share/vim/vim72/plugin/zipPlugin.vim
 26: /usr/share/vim/vim72/scripts.vim

这个问题有什么解决方法吗?

编辑:我已经能够通过将以下内容添加到我的.vimrc文件来解决.sv文件的这个问题:

Au BufRead,BufNewFile *.sv set filetype=verilog

但这显然不是所有文件类型的通用解决方案。

编辑:添加指向vimrc文件的链接:vimrc file

3 个答案:

答案 0 :(得分:2)

你的.vimrc一团糟。

  • 以下几行完全无用:

    source ~/.vim/plugin/matchit.vim
    source /usr/share/vim/vim72/syntax/syntax.vim
    source ~/.vim/syntax/verilog_systemverilog.vim
    

    它们没用,因为所有这些文件都是自动获取的:在第一个启动期间.vimrc来源之后;在Syntax事件发生后(由syntax on触发,已经在.vimrc的其他地方)在文件被识别为第三个verilog之后。

  • 这些相同:

    " Set up the connection between FileType and Syntax autocommands.
    " This makes the syntax automatically set when the file type is detected.
    augroup syntax
    au! FileType *      exe "set syntax=" . expand("<amatch>")
    augroup END
    

    因为Vim已经将其作为filetype机制的一部分而转向&#34; on&#34;您.vimrc中的三次。

  • 这一个:

    " Execute the syntax autocommands for the each buffer.
    doautoall filetype BufRead
    

    因为在加载任何缓冲区之前,您的.vimrc来源。该命令将在您编辑的第一个文件上执行,而不会在当前会话中再次执行。

  • 这一个:

    highlight Visual term=reverse  cterm=reverse  gui=reverse  guifg=Grey50
    

    因为在仅在GVim中执行的代码块中设置终端突出显示属性是没有意义的。

  • 让我们不要谈论混合标签和空格,尾随空格和无意义的评论:

    " For sure anyting under .vim/ gets executed automaticall. I've checked.
    

:help new-filetype告诉您如何添加对自定义文件类型的支持。你应该仔细阅读(我建议方法C)。

答案 1 :(得分:0)

你看过Amal Khailtash在他的SystemVerilog / OVM语法文件中做了什么:

vim-syntax-highlighting-systemverilog-and-ovm

过去几年我一直在使用他的文件,并且在多个标签页和拆分窗口中突出显示systemverilog文件没有任何问题。

答案 2 :(得分:0)

感谢以下命令@Ady au BufRead,BufNewFile * .sv设置filetype = verilog

我用过 au BufRead,BufNewFile *设置文件类型= verilog 将tabnew中的所有文件设置为verilog格式。顺便说一句,文件有一些颜色,前进时我可以继续为不同的扩展名添加不同的文件类型设置