【问题标题】:How to apply syntax file for vim?如何为 vim 应用语法文件?
【发布时间】:2014-06-28 06:00:21
【问题描述】:

我已经阅读了 vim 手册页和大量教程,并设法在 vim 中设置了我的 C++ 环境,但应用语法文件可能是科幻小说。

我下载了一个“cpp.vim”,它是一个语法文件,现在我该如何应用该文件以便我的代码开始发光??

我尝试将文件放入以下目录:

~/.vim/after/syntax/

~/.vim/语法

/usr/share/vim/vim73/syntax (但名称不同,所以不替换旧文件)

这些都不起作用,无论如何,如果我以某个疯狂的名称将文件放入 $VIMRUNTIME/syntax,那么我该如何将它应用到 vim 中?

这是我的 .vimrc 设置:

"
" vim settings
"

set t_Co=256
set nocompatible
set laststatus=2

"set ruler
"set ballooneval
"set balloondelay=400
"set balloonexpr=""


filetype off


"
" vundle settings and plugins
"


set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

"Vundle Plugin manager
Plugin 'gmarik/Vundle.vim' "vundle plugin manager

"Core plugins
Plugin 'ervandew/supertab' "completition with tab
Plugin 'scrooloose/syntastic' "error checking
Plugin 'vim-scripts/OmniCppComplete' "auto complete
"Plugin 'octol/vim-cpp-enhanced-highlight' "syntax highlighting
Plugin 'vim-scripts/Cpp11-Syntax-Support'
Plugin 'bling/vim-airline' "statusline and tabline

"Sipet plugins
Plugin 'MarcWeber/vim-addon-mw-utils' "required by snipmate
Plugin 'tomtom/tlib_vim' "required by snipmate
Plugin 'garbas/vim-snipmate' "insert snipets
Plugin 'honza/vim-snippets' "optional snipets


Plugin 'vim-scripts/a.vim' "Switching between source and header file
Plugin 'chazy/cscope_maps' "Allows searching code
Plugin 'vim-scripts/argtextobj.vim' "Text-object like motion for arguments
Plugin 'wincent/Command-T' "Fast file navigation
Plugin 'vim-scripts/taglist.vim' "Source code browser (requires exuberant-ctags > apt-get install)


Plugin 'ddollar/nerdcommenter' "wrangle your code comments, regardless of filetype
Plugin 'scrooloose/nerdtree' "explore your filesystem and to open files and directories
Plugin 'tpope/vim-unimpaired' "provides a lot of useful mappings
Plugin 'majutsushi/tagbar' "browsing the tags of source code files
Plugin 'chrisbra/NrrwRgn' "focussing on a region and making the rest inaccessible
Plugin 'vim-scripts/ZoomWin' "zoom into a window and out again
Plugin 'terryma/vim-multiple-cursors'
Plugin 'jeetsukumaran/vim-buffergator' "listing,navigating, and selecting buffers for edit
Plugin 'bronson/vim-trailing-whitespace' "causes all trailing whitespace to be highlighted in red

Plugin 'mileszs/ack.vim' "uses ack to search inside the current directory for a pattern
Plugin 'myusuf3/numbers.vim' "intelligently toggling line numbers
Plugin 'Lokaltog/vim-easymotion' "provides a much simpler way to use some motions in vim

call vundle#end()
filetype plugin indent on


"
" ariline options
"

let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'



"
" syntastic settings
"

let g:syntastic_enable_signs = 1
let g:syntastic_cpp_checkers = ['gcc']

let g:syntastic_auto_jump = 1
let g:syntastic_enable_balloons = 1

let g:syntastic_cpp_compiler = 'g++'
let g:syntastic_cpp_compiler_options = '-std=c++11'


let g:syntastic_cpp_check_header = 1
let g:syntastic_cpp_auto_refresh_includes = 1


let g:syntastic_always_populate_loc_list = 1

syntax on
colorscheme slate

...等

其他选项是插件和插件设置..

问题很简单,如何应用语法文件??

【问题讨论】:

  • 我可能应该早点说,但你不应该更改$VIMRUNTIME 中的任何内容。这通常会导致问题。
  • 我已经备份了原始文件,我把它放回去,只是想看看会发生什么......那么我应该把语法文件放在哪里呢?
  • 我们可以看看你下载的那个 cpp.vim 文件吗?
  • @romainl 这是 github 上的 vim-scripts/Cpp11-Syntax-Support 和 octol/vim-cpp-enhanced-highlight

标签: c++ vim


【解决方案1】:

您需要做的就是确保正确加载文件类型。因此,如果语法文件被称为cpp.vim,请确保set ft? 返回cpp。你应该把它放在$HOME/.vim/syntax。它应该会自动加载。假设 filetype onsyntax on 已设置。

确保语法文件未正确加载的唯一方法是使用:scriptnames。如果您的问题与您所描述的不同,请确保该文件未列出。

【讨论】:

  • 我在插件加载后启用了该选项。在安装 vundle 插件之前它是暂时关闭的,并且默认语法突出显示也有效:/
  • @codekiddy 在加载所有插件后尝试启用语法。否则我现在无法确定是什么原因。我建议发布你的整个 vimrc 而不仅仅是一个 sn-p。
  • 我发布了我的整个 .vimrc 内容。我目前将语法文件放入 $VIMRUNTIME/syntax 并替换了原始文件。但仍然没有任何改变。
  • 我将文件放入 $HOME/.vim/syntax 并设置 ft 返回 cpp,并且我在 .vimrc 文件的末尾设置了文件类型和语法,尽管 vundle 之前需要关闭文件类型加载插件。 ^^ 这太疯狂了,我不知道该怎么办:/即使 vim 手动步骤也无济于事
【解决方案2】:

好的,我设法让事情顺利进行:)

我下载了两个语法文件,其中一个通过突出显示代码来完成这项工作,而另一个由于某些未知原因没有完成。

事实上,我已将 Vundle 安装为插件管理器,因此无需在任何地方放置语法文件,因为该部分会自行处理 Vundle...

我所要做的就是删除不起作用的语法文件。并进行多次测试以查看默认语法突出显示和自定义文件之间的区别。

要启用语法高亮,只需将一个选项放在 .vimrc 文件中的任何位置:

语法

语法启用

这两者之间的区别在于'on'开关确实搜索它在$VIMRUNTIME目录中找到的第一个cpp文件,同时也在.vim目录中启用开关搜索。 更多信息here

为了使语法突出显示更“漂亮”,我还下载了配色方案,这使代码更具可读性。 如果您只想知道如何应用该文件,这里是如何: 使用 Vundle 下载它并将其放在 .vimrc 文件的末尾:

配色方案莫洛凯

molokai 是使用 Vundle 下载的颜色方案的名称:D

是的!!!

感谢 Fdinoff 提供的帮助!你是对的 :scriptnames 这实际上帮助我弄清楚我的文件没有加载;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2012-11-18
    相关资源
    最近更新 更多