vim 中的 gnuplot 突出显示

luc*_*ian 3 vim syntax-highlighting gnuplot

我使用 gnuplot 来显示数据,并且通常在 vim 中编辑文件。如果可能的话,我希望有某种语法突出显示。我尝试使用 gnuplot 的 vim 插件安装几个插件,但似乎无法使其工作。这是我的文件的内容.vimrc:

call plug#begin()

Plug 'tpope/vim-sensible'

Plug 'flazz/vim-colorschemes'

Plug 'junegunn/seoul256.vim'

Plug 'junegunn/vim-easy-align'

Plug 'vim-scripts/gnuplot.vim'

call plug#end()

if has("syntax")
  syntax on
endif

let mapleader=","
set cindent
set statusline+=col:\ %c,
set ruler
set nu
set showcmd
set nocompatible
set nosol
set background=dark
set autoread
set wildmenu
set lazyredraw
set magic
set showmatch
set mat=10
set noerrorbells
set novisualbell
set autoindent
set smartindent
set cursorline
set ic
set hls
set lbr
set shiftwidth=4
set expandtab
set tabstop=4
set t_Co=256
set shortmess+=A
set ff=unix
set clipboard=unnamedplus
set splitbelow
set termwinsize=10x0
set mouse=i

set formatoptions+=w
set splitright
set autochdir

set textwidth=180 wrapmargin=0
set colorcolumn=180
" 
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>
""
colorscheme Monokai
"
augroup gnuplot
    autocmd!
    autocmd FileType gp :nnoremap <Leader>c :w<CR>:!gnuplot %<CR>
    autocmd FileType gp :nnoremap <Leader>v :!okular $(awk 'BEGIN {FS="\047"} /set output/ {print $2}' "%") &<CR><CR> 
augroup END
""
let g:livepreview_previewer = 'okular'

""
map <C-m> :set nonu<CR>
map <C-n>   :set nu<CR>
Run Code Online (Sandbox Code Playgroud)

我几乎可以肯定问题出在这个文件上,但我看不到它。

如果我运行::set hl我收到以下错误:

highlight=8:SpecialKey,~:EndOfBuffer,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,a:LineNrAbove,b:LineNrBelow,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:F
oldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn,q:QuickFixLine,z:StatusLineTerm
,Z:StatusLineTermNC
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

干杯

rom*_*inl 6

    \n
  1. Vim直接gnuplot为*.gpi文件分配文件类型。
  2. \n
  3. gnuplot 的语法突出显示也是内置的。
  4. \n
\n

因此\xe2\x80\xa6

\n
    \n
  • 您的两个FiletType自动命令无法按原样工作。它们应该匹配gnuplot,而不是gp:

    \n
    augroup gnuplot\n    autocmd!\n    autocmd FileType gnuplot nnoremap <buffer> <Leader>c :w<CR>:!gnuplot %<CR>\n    autocmd FileType gnuplot nnoremap <buffer> <Leader>v :!okular $(awk 'BEGIN {FS="\\047"} /set output/ {print $2}' "%") &<CR><CR> \naugroup END\n
    Run Code Online (Sandbox Code Playgroud)\n

    (我还删除了不必要的冒号并添加了缺失的<buffer>s,以保证您的映射不会泄漏到其他文件类型的缓冲区。)

    \n
  • \n
  • 没有必要安装第三方语法脚本。

    \n
  • \n
  • 在当前形式下vimrc,Vim 应该突出显示,*.gpi而无需您执行任何操作。

    \n
  • \n
\n

  • 我做到了!我在 `~/.vim/ftdetect/` 中创建了一个名为 `gnuplot.vim` 的文件,并添加了以下行:`autocmd BufRead,BufNewFile *.gp set filetype=gnuplot`。我现在有语法高亮了!谢谢你! (2认同)