标签: vim-syntax-highlighting

使用 split 命令时 VIM 失去语法高亮

因此,我创建了自己的语法突出显示文件,如果只打开一个文件,它效果很好。但是,如果我这样做:split otherFile,打开的另一个缓冲区没有语法突出显示。我尝试过各种方法,例如:syntax on等等。可能是什么问题?

我正在运行 Ubuntu 11.04,64 位版本。

VIM版本:VIM - Vi IMproved 7.3(2010年8月15日,2011年3月24日07:07:34编译)

我创建了一个简单的语法突出显示文件并将其放入 ~/.vim/plugin/syntax.vim

语法高亮文件的最后一行是 let b:current_syntax = "sth"。我没有进行任何类型的连接,例如在 .vimrc 中指定文件位置,语法会自动工作(对于打开的一个文件)。

vim syntax-highlighting vim-syntax-highlighting

5
推荐指数
1
解决办法
2636
查看次数

Vim:Sudo Edit 破坏 Apache 语法突出显示

Sudo Edit (sudo -e) 允许非特权用户安全地编辑文件。为了实现此目的,它会创建要编辑的文件的临时副本,然后在编辑完成后将其复制。

当我编辑 apache 文件(例如 /etc/apache2/sites-enabled/mysite.com)时,sudoedit vim 无法确定它应该使用 Apache 语法突出显示,因此我必须手动 :set syntax=apache 。我怀疑 Vim 的语法突出显示规则依赖于文件的完整路径,并且由于 sudoedit 将文件更改为 /var/tmp/mysiteRANDOMCHARS.com 之类的内容,因此它会丢失该路径信息。

有什么办法让我自动告诉 Vim 它应该使用 apache 语法高亮吗?

谢谢!

apache vim sudo syntax-highlighting vim-syntax-highlighting

5
推荐指数
1
解决办法
2030
查看次数

Vim 中透明区域的语法高亮开始和结束

我正在 Vim 中为一种语言(还没有)编写语法突出显示文件。

与我遇到的问题类似的问题是在 Python 中突出显示列表:我希望列表的元素能够正常突出显示,假设它们是语言允许出现在此类列表中的类型,而列表的结构(即[ , ]应该以自己的颜色突出显示。

目前我使用

syn region myList      start='\[' end=']' transparent contains=myList,myDelimiter,myNumber,myString
syn match  myDelimiter ','                contained
Run Code Online (Sandbox Code Playgroud)

myList包含自身允许嵌套列表(因此合法的额外]结束标记)而不破坏区域。但是,由于它是透明的(以允许突出显示其他合法组(myNumbermyString本示例中)),因此[开始和]结束括号保持不突出显示。

myDelimiter组可以被认为是至少突出显示逗号的解决方法(尽管如果没有结构的其余部分,即 start[和 end ,它是毫无意义的])。将[和添加]myDelimiter模式中,如下所示:

syn match  myDelimiter ',\|\[\|]'         contained
Run Code Online (Sandbox Code Playgroud)

打破myList区域并使其在文件的不相关部分(任何列表之外)上激活,从而破坏列表中不允许的元素的其他语法突出显示。我认为问题是结尾不再被视为结尾,而是跨越到文件中最后一个数组的大数组中的分隔符)。

问题的可视化解释

我尝试matchgroup=myList添加syn region myList ...(并确保它hi myList ctermfg=red在我的颜色方案中有相应的条目),但它没有改变任何内容。

有没有办法来解决这个问题?

vim highlight delimiter vim-syntax-highlighting

5
推荐指数
1
解决办法
1537
查看次数

Vim HereDoc 高亮

我想在 bash heredoc 中突出显示语法。此外,我希望在 heredoc 中突出显示 bash 变量取消引用和命令替换。

使用这些说明作为起点,我能够通过检查sh.vim添加变量取消引用。我想您可以以类似的方式完成命令替换。

let s:bcs = b:current_syntax

unlet b:current_syntax
syntax include @YAML syntax/yaml.vim

syntax region hereDocYAML matchgroup=Statement start=/<<-\?\s*\z(YML\)/ end=/^\s*\z1/ contains=@YAML,hereDocDeref,hereDocDerefSimple

syn match  hereDocDerefSimple  "\$\%(\h\w*\|\d\)"
syn region hereDocDeref  matchgroup=PreProc start="\${" end="}"  contains=@shDerefList,shDerefVarArray

hi def link hereDocDeref PreProc
hi def link hereDocDerefSimple PreProc
Run Code Online (Sandbox Code Playgroud)

我的问题是,这似乎并没有工作,任何类型的块(iffunctionfor等)。例如:

突出例子

我唯一知道的是,这不是缩进问题。更改缩进没有效果,在块外使用缩进可以正常工作。

vim bash syntax-highlighting heredoc vim-syntax-highlighting

5
推荐指数
1
解决办法
1014
查看次数

Vim 在 tmux 内显示不正确的颜色

我有 Ubuntu 17.04、Tmux: 2.3、vim:8.0 和一个名为 onedark 的颜色方案

当我不在TMUX 中时,Vim 显示正确的配色方案,但是当我在 TMUX时,Vim 看起来完全不同。

我厌倦了 .bashrc、.vimrc 和 .tmux.conf 中的所有可能配置,但没有成功。我最近发现,当我使用 sudo、root(管理)权限在 Tmux 中运行 vim 时,一切都按预期工作,我认为这不是一个好的解决方案。

所以我的问题是如何让 vim 显示一致的颜色方案,无论我在 Tmux 内部还是外部的 root 权限或天气如何。

我与颜色相关的配置是。

.tmux.conf

set-option -sa terminal-overrides ",xterm*:Tc"
set -g default-terminal "xterm-256color"
Run Code Online (Sandbox Code Playgroud)

.vimrc

set encoding=utf-8
set nocompatible 
set t_Co=256
set t_ut=
set background=dark
set showmatch
syntax on

if (empty($TMUX))

  if (has("nvim"))
    let $NVIM_TUI_ENABLE_TRUE_COLOR=1
  endif

  if (has("termguicolors"))
    set termguicolors
  endif

endif

colorscheme one
Run Code Online (Sandbox Code Playgroud)

如果echo $TERM在 tmux 内部或外部进行,我得到xterm-256color

vim tmux vim-syntax-highlighting

5
推荐指数
1
解决办法
3014
查看次数

在Vim中自定义语法突出显示

如何保留文件类型的所有当前格式,但添加功能.

我想突出显示.vim文件中的颜色,以便突出显示终端将如何解析它的每种颜色.

我创建了一个包含以下内容的vim.vim文件:

syn keyword yellow yellow containedin=All                                                    
highlight yellow ctermfg=yellow                                                              

syn keyword red red containedin=all                                                          
highlight red ctermfg=red                                                                    
Run Code Online (Sandbox Code Playgroud)

把它放进去 ~/.vim/after/syntax/vim.vim

如此处所示.

这没有效果.


更新

事实上,当我说我的改变没有效果时,我错了.如果您yellow在一行上单独键入,它将突出显示为黄色.不幸的是,这并没有解决我的问题.

我添加了Al描述的F3功能.

当我f3黄色(在上下文中ctermfg=yellow)它返回:

hi<vimHiCtermColor> trans<vimHiCtermColor> lo<vimHiCtermColor> FG:-1 BG:-1
Run Code Online (Sandbox Code Playgroud)

然后:syn list vimHiCtermColor返回:

--- Syntax items ---
vimHiCtermColor xxx contained lightmagenta darkgray lightgrey darkgrey lightgreen lightgray darkmagenta gray white red grey darkred brown darkblue darkgreen lightblue yellow cyan
                   contained lightcyan lightred black …
Run Code Online (Sandbox Code Playgroud)

vim customization overriding vim-syntax-highlighting

4
推荐指数
1
解决办法
7331
查看次数

Sass的语法高亮在Vim中不起作用

我刚下载了一个用于Sass语法高亮的Vim插件.

说明说:

安装详细信息将其放入语法目录并添加sass文件类型

AU!BufRead,BufNewFile*.sass
setfiletype sass

在你的filetype.vim中

我已经将sass.vim放入vimfiles/syntax/(使用Windows).

并在以下所有目录中使用上面的代码(au!Buf ...)创建了一个filetype.vim文件:

  • vimfiles /
  • vimfiles/ftdetect
  • vimfiles/ftplugins

但没有人工作(我甚至在我的vimrc中键入了au!Buf ...代码).

我的.sass文件仍然如下所示:

alt text http://img193.imageshack.us/img193/4791/sassi.png

有什么建议?

vim syntax-highlighting sass vim-syntax-highlighting

4
推荐指数
1
解决办法
2340
查看次数

将Notepad ++语法高亮文件转换为vim(或者有没有人有aq/kdb + vim语法高亮文件?)

我有一个语法突出显示q/kdb +语言的文件,我想将它转换为vim兼容文件,所以我的q代码看起来不会比平常更难看.

是否有可用于将notepad ++ xml语法高亮文件自动转换为vi版本的实用程序?我环顾四周,但找不到任何东西.

或者,是否有人有vim q语法高亮文件?

vim notepad++ kdb vim-syntax-highlighting

4
推荐指数
1
解决办法
2753
查看次数

非常简单的vim语法文件

我想创建一个非常简单的vim语法文件,只强调特定的关键字

我救了一个名为coffee.vim~/.vim/syntax/

文件syn keyword basicLanguageKeywords if then for in of do中有

我是在正确的轨道上吗?

我从哪里开始实际使用那个简单的vim语法文件?

syntax vim vim-syntax-highlighting

4
推荐指数
1
解决办法
480
查看次数

Vim语法高亮显示Fortran OpenMP注释

关于如何在Fortran代码中突出显示openmp指令(对于多行fortran openmp指令的Vim语法突出显示),有一个非常有用的答案。所以像

!$omp parallel
Run Code Online (Sandbox Code Playgroud)

不再以注释突出显示。

使vim不要被视为以“ !$” 开头的注释行(例如,在类似

! Make it compile both with and without OMP
nThreads = 1
!$ nThreads = omp_get_num_threads()
Run Code Online (Sandbox Code Playgroud)

我想!$突出显示为fortrandirective,最后一行的其余部分正常突出显示。

vim fortran openmp fortran90 vim-syntax-highlighting

4
推荐指数
1
解决办法
269
查看次数