📄 nroff.vim
字号:
" VIM syntax file" Language: nroff / groff" Maintainer: J閞鬽e Pl鹴 <Jerome.Plut@ens.fr>" URL: http://www.eleves.ens.fr:8080/home/plut/nroff.vim" Last Change: 2001 May 10"" {{{1 Preamble" groff (GNU troff) behaves slightly differently from groff; it allows" long names being specified between brackets: for instance, \[hy] is" equivalent to \(hy." This file handle both syntaxes, depending on the value of 'filetype'." For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600 syntax clearelseif exists("b:current_syntax") finishendifif exists("nroff_space_errors") syn match nroffError /\s\+$/endif" {{{1 Escape sequences" ------------------------------------------------------------syn match nroffEscChar /\\[CN]/ nextgroup=nroffEscCharArgsyn match nroffEscape /\\[*gnYV]/ nextgroup=nroffEscRegPar,nroffEscRegArgsyn match nroffEscape /\\s[+-]\=/ nextgroup=nroffSizesyn match nroffEscape /\\[$AbDfhlLRvxXZ]/ nextgroup=nroffEscPar,nroffEscArgsyn match nroffEscRegArg /./ containedsyn match nroffEscRegArg2 /../ containedsyn match nroffEscRegPar /(/ contained nextgroup=nroffEscRegArg2syn match nroffEscArg /./ containedsyn match nroffEscArg2 /../ containedsyn match nroffEscPar /(/ contained nextgroup=nroffEscArg2syn match nroffSize /\((\d\)\=\d/ containedsyn region nroffEscCharArg start=/'/ end=/'/ containedsyn region nroffEscArg start=/'/ end=/'/ contained contains=nroffEscape,@nroffSpecialif exists("b:nroff_is_groff") syn region nroffEscRegArg matchgroup=nroffEscape start=/\[/ end=/\]/ contained oneline syn region nroffSize matchgroup=nroffEscape start=/\[/ end=/\]/ containedendifsyn match nroffEscape /\\[adprtu{}]/syn match nroffEscape /\\$/syn match nroffEscape /\\\$[@*]/" {{{1 Strings and special characters" ------------------------------------------------------------syn match nroffSpecialChar /\\[\\eE?!-]/syn match nroffSpace "\\[&%~|^0)/,]"syn match nroffSpecialChar /\\(../if exists("b:nroff_is_groff") syn match nroffSpecialChar /\\\[[^]]*]/ syn region nroffPreserve matchgroup=nroffSpecialChar start=/\\?/ end=/\\?/ onelineendifsyn region nroffPreserve matchgroup=nroffSpecialChar start=/\\!/ end=/$/ onelinesyn cluster nroffSpecial contains=nroffSpecialChar,nroffSpacesyn region nroffString start=/"/ end=/"/ skip=/\\$/ contains=nroffEscape,@nroffSpecial containedsyn region nroffString start=/'/ end=/'/ skip=/\\$/ contains=nroffEscape,@nroffSpecial contained" {{{1 Numbers and units" ------------------------------------------------------------syn match nroffNumBlock /[0-9.]\a\=/ contained contains=nroffNumbersyn match nroffNumber /\d\+\(\.\d*\)\=/ contained nextgroup=nroffUnit,nroffBadCharsyn match nroffNumber /\.\d\+)/ contained nextgroup=nroffUnit,nroffBadCharsyn match nroffBadChar /./ containedsyn match nroffUnit /[icpPszmnvMu]/ contained" {{{1 Requests" ------------------------------------------------------------" Requests begin with . or ' at the beginning of a line, or after .if or" .ie.syn match nroffReqLeader /^[.']/ nextgroup=nroffReqName skipwhitesyn match nroffReqLeader /[.']/ contained nextgroup=nroffReqName skipwhiteif exists("b:nroff_is_groff")" GNU troff allows long request names syn match nroffReqName /[^\t \\\[?]\+/ contained nextgroup=nroffReqArgelse syn match nroffReqName /[^\t \\\[?]\{1,2}/ contained nextgroup=nroffReqArgendifsyn region roffReqArg start=/\S/ skip=/\\$/ end=/$/ contained contains=nroffEscape,@nroffSpecial,nroffString,nroffError,nroffNumBlock,nroffComment" {{{2 Conditional: .if .ie .elsyn match nroffReqName /\(if\|ie\)/ contained nextgroup=nroffCond skipwhitesyn match nroffReqName /el/ contained nextgroup=nroffReqLeader skipwhitesyn match nroffCond /\S\+/ contained nextgroup=nroffReqLeader skipwhite" {{{2 String definition: .ds .assyn match nroffReqname /[da]s/ contained nextgroup=nroffDefIdent skipwhitesyn match nroffDefIdent /\S\+/ contained nextgroup=nroffDefinition skipwhitesyn region nroffDefinition matchgroup=nroffSpecialChar start=/"/ matchgroup=NONE end=/\\"/me=e-2 skip=/\\$/ start=/\S/ end=/$/ contained contains=nroffDefSpecialsyn match nroffDefSpecial /\\$/ containedsyn match nroffDefSpecial /\\\((.\)\=./ containedif exists("b:nroff_is_groff") syn match nroffDefSpecial /\\\[[^]]*]/ containedendif" {{{2 Macro definition: .de .am, also diversion: .disyn match nroffReqName /\(d[ei]\|am\)/ contained nextgroup=nroffIdent skipwhitesyn match nroffIdent /[^[?( \t]\+/ containedif exists("b:nroff_is_groff") syn match nroffReqName /als/ contained nextgroup=nroffIdent skipwhiteendif" {{{2 Register definition: .rn .rrsyn match nroffReqName /[rn]r/ contained nextgroup=nroffIdent skipwhiteif exists("b:nroff_is_groff") syn match nroffReqName /\(rnn\|aln\)/ contained nextgroup=nroffIdent skipwhiteendif" {{{1 eqn/tbl/pic" ------------------------------------------------------------" XXX: write proper syntax highlight for eqn / tbl / pic ?syn region nroffEquation start=/^\.\s*EQ/ end=/^\.\s*EN/syn region nroffTable start=/^\.\s*TB/ end=/^\.\s*TE/syn region nroffPicture start=/^\.\s*PB/ end=/^\.\s*PE/" {{{1 Comments" ------------------------------------------------------------syn region nroffIgnore start=/^[.']\s*ig/ end=/^['.]\s*\./syn match nroffComment /\(^[.']\s*\)\=\\".*/ contains=nroffTodosyn match nroffComment /^'''.*/ contains=nroffTodoif exists("b:nroff_is_groff") syn match nroffComment "\\#.*$" contains=nroffTodoendifsyn keyword nroffTodo TODO XXX FIXME contained" {{{1 Hilighting" ------------------------------------------------------------" Define the default highlighting." For version 5.7 and earlier: only when not done already" For version 5.8 and later: only when an item doesn't have highlighting yetif version >= 508 || !exists("did_nroff_syn_inits") if version < 508 let did_nroff_syn_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endifHiLink nroffEscChar nroffSpecialCharHiLink nroffEscCharAr nroffSpecialCharHiLink nroffSpecialChar SpecialCharHiLink nroffSpace DelimiterHiLink nroffEscRegArg2 nroffEscRegArgHiLink nroffEscRegArg nroffIdentHiLink nroffEscArg2 nroffEscArgHiLink nroffEscPar nroffEscapeHiLink nroffEscRegPar nroffEscapeHiLink nroffEscArg nroffEscapeHiLink nroffSize nroffEscapeHiLink nroffEscape PreprocHiLink nroffIgnore CommentHiLink nroffComment CommentHiLink nroffTodo TodoHiLink nroffReqLeader nroffRequestHiLink nroffReqName nroffRequestHiLink nroffRequest StatementHiLink nroffCond PreConditHiLink nroffDefIdent nroffIdentHiLink nroffIdent IdentifierHiLink nroffEquation PreProcHiLink nroffTable PreProcHiLink nroffPicture PreProcHiLink nroffNumber NumberHiLink nroffBadChar nroffErrorHiLink nroffError ErrorHiLink nroffPreserve StringHiLink nroffString StringHiLink nroffDefinition StringHiLink nroffDefSpecial Special delcommand HiLinkendif" I recommend using for nroffDefinition an highlight that shows spaces," since nroff includes them in the string, for instance:" hi def nroffDefinition term=italic cterm=italic gui=reverse" hi def nroffDefSpecial term=italic,bold cterm=italic,bold gui=reverse,boldlet b:current_syntax = "nroff"" }}}1" vim: set ts=8 sw=2:" vim600: set fdm=marker fdl=2:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -