因此,我创建了自己的语法突出显示文件,如果只打开一个文件,它效果很好。但是,如果我这样做: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 中指定文件位置,语法会自动工作(对于打开的一个文件)。
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 语法高亮吗?
谢谢!
我正在 Vim 中为一种语言(还没有)编写语法突出显示文件。
与我遇到的问题类似的问题是在 Python 中突出显示列表:我希望列表的元素能够正常突出显示,假设它们是语言允许出现在此类列表中的类型,而列表的结构(即[ , ]应该以自己的颜色突出显示。
目前我使用
syn region myList start='\[' end=']' transparent contains=myList,myDelimiter,myNumber,myString
syn match myDelimiter ',' contained
Run Code Online (Sandbox Code Playgroud)
myList包含自身允许嵌套列表(因此合法的额外]结束标记)而不破坏区域。但是,由于它是透明的(以允许突出显示其他合法组(myNumber在myString本示例中)),因此[开始和]结束括号保持不突出显示。
该myDelimiter组可以被认为是至少突出显示逗号的解决方法(尽管如果没有结构的其余部分,即 start[和 end ,它是毫无意义的])。将[和添加]到myDelimiter模式中,如下所示:
syn match myDelimiter ',\|\[\|]' contained
Run Code Online (Sandbox Code Playgroud)
打破myList区域并使其在文件的不相关部分(任何列表之外)上激活,从而破坏列表中不允许的元素的其他语法突出显示。我认为问题是结尾不再被视为结尾,而是跨越到文件中最后一个数组的大数组中的分隔符)。

我尝试matchgroup=myList添加syn region myList ...(并确保它hi myList ctermfg=red在我的颜色方案中有相应的条目),但它没有改变任何内容。
有没有办法来解决这个问题?
我想在 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)
我的问题是,这似乎并没有工作,任何类型的块(if,function,for等)。例如:
我唯一知道的是,这不是缩进问题。更改缩进没有效果,在块外使用缩进可以正常工作。
vim bash syntax-highlighting heredoc vim-syntax-highlighting
我有 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文件中的颜色,以便突出显示终端将如何解析它的每种颜色.
我创建了一个包含以下内容的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) 我刚下载了一个用于Sass语法高亮的Vim插件.
说明说:
安装详细信息将其放入语法目录并添加sass文件类型
AU!BufRead,BufNewFile*.sass
setfiletype sass在你的filetype.vim中
我已经将sass.vim放入vimfiles/syntax/(使用Windows).
并在以下所有目录中使用上面的代码(au!Buf ...)创建了一个filetype.vim文件:
但没有人工作(我甚至在我的vimrc中键入了au!Buf ...代码).
我的.sass文件仍然如下所示:
alt text http://img193.imageshack.us/img193/4791/sassi.png
有什么建议?
我有一个语法突出显示q/kdb +语言的文件,我想将它转换为vim兼容文件,所以我的q代码看起来不会比平常更难看.
是否有可用于将notepad ++ xml语法高亮文件自动转换为vi版本的实用程序?我环顾四周,但找不到任何东西.
或者,是否有人有vim q语法高亮文件?
我想创建一个非常简单的vim语法文件,只强调特定的关键字
我救了一个名为coffee.vim中~/.vim/syntax/
文件syn keyword basicLanguageKeywords if then for in of do中有
我是在正确的轨道上吗?
我从哪里开始实际使用那个简单的vim语法文件?
关于如何在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,最后一行的其余部分正常突出显示。