115 lines
5 KiB
VimL
115 lines
5 KiB
VimL
"Script_name: txt.vim
|
||
"Author: guoyoooping@163.com
|
||
"Date: 2011/08/07
|
||
"Release: 1.3.5
|
||
"Description: syntax for plain/text.
|
||
"Language: text/plain :)
|
||
"Location: $HOME/.vim/syntax or $VIMRUNTIME/syntax/
|
||
"Install_detail:
|
||
"1. put this file in $HOME/.vim/syntax or $VIMRUNTIME/syntax/
|
||
"2. Add the following line in your .vimrc:
|
||
"syntax on "syntax highlighting on
|
||
"filetype plugin on
|
||
"au BufRead,BufNewFile *.txt setlocal ft=txt "syntax highlight for txt.vim
|
||
|
||
"set case insensitive.
|
||
syn case ignore
|
||
|
||
"This script is encoded as utf8, and will convert to appropriate value when running.
|
||
scriptencoding utf-8
|
||
|
||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||
" key words definition.
|
||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||
"Keywords
|
||
syn keyword txtTodo todo fixme note debug comment notice
|
||
syn keyword txtError error bug caution dropped
|
||
|
||
"txtComment: Lines that start with '#'
|
||
"以#号打头的行为注释文本
|
||
syn match txtComment '^#.*$' contains=txtTodo
|
||
|
||
"txtTitle: Lines start with digit and '.'
|
||
"标题文本: 前面有任意个空格,数字.[数字.]打头, 并且该行里不含有,.。,等标点符号
|
||
"
|
||
syn match txtTitle "^\(\d\+ \)\+\s*[^,。,]\+$"
|
||
syn match txtTitle "^\(\d\+ \)\+\s*[^,。,]\+$"
|
||
"
|
||
syn match txtTitle "^\(\d\+\.\)\+\s*[^,。,]\+$"
|
||
syn match txtTitle "^\(\d\+\.\)\+\s*[^,。,]\+,"
|
||
|
||
"txtTitle: Lines start with Chinese digit and '.'
|
||
"标题文本: 汉字数字加'.、'打头,且该行不含,.。,标点符号
|
||
syn match txtTitle "^\([一二三四五六七八九十][、.]\)\+\s*[^,。,]\+$"
|
||
syn match txtTitle "^\([一二三四五六七八九十][、.]\)\+\s*[^,。,]\+,"
|
||
|
||
"txtTitle: Lines start with digit
|
||
"标题文本: 以数字打头, 中间有空格, 后跟任意文字. 且该行不含有,.。,标点符号
|
||
syn match txtTitle "^\d\s\+.\+\s*[^,。,]$"
|
||
syn match txtTitle "^\d\s\+.\+\s*[^,。,],"
|
||
|
||
"txtList: Lines start with space and then '-+*.'
|
||
"列表文本: 任意空格打头, 后跟一个[-+*.]
|
||
syn match txtList '^\s*\zs[-+*.] [^ ]'me=e-1
|
||
|
||
"txtList: Lines start with space and then digit
|
||
"列表文本: 任意空格打头, 后跟一个(数字) 或 (字母) 打头的文本行
|
||
syn match txtList '^\s*\zs(\=\([0-9]\+\|[a-zA-Z]\))'
|
||
|
||
"txtList: Lines start with space and then digit and '.'
|
||
"列表文本: 至少一个空格打头, [数字.]打头, 但随后不能跟数字(排除把5.5这样的文
|
||
"本当成列表)
|
||
syn match txtList "^\s\+\zs\d\+\.\d\@!"
|
||
|
||
"txtApostrophe: text in the apostrophe
|
||
"单引号内文字, 作用范围最多两行.
|
||
syn match txtApostrophe '\(\n\|[^a-zA-Z]\)\'[^\']\+\(\n\)\=[^\']\+\'\(\n\|[^a-zA-Z]\)' contains=txtUrl,txtReference
|
||
|
||
"txtQuotes: text in the quotoes
|
||
"双引号内文字, 包括全角半角, 作用范围最多两行
|
||
syn match txtQuotes '["“][^"”]\+\(\n\)\=[^"”]*["”]' contains=txtUrl,txtReference
|
||
|
||
"txtParentesis: text in the parentesis
|
||
"括号内文字, 不在行首(为了和txtList区别), 作用范围最多两行
|
||
syn match txtParentesis "[((][^))]\+\(\n\)\=[^))]*[))]" contains=txtUrl,txtReference
|
||
|
||
"txtBrackets: text in the brackets
|
||
"其它括号内文字, 作用范围最多两行, 大括号无行数限制
|
||
syn match txtBrackets '<[^<]\+\(\n\)\=[^<]*>' contains=txtUrl,txtReference
|
||
syn match txtBrackets '\[[^\[]\+\(\n\)\=[^\[]*\]' contains=txtUrl,txtReference
|
||
"syn region txtBrackets matchgroup=txtOperator start="{" end="}" contains=txtUrl,txtReference
|
||
|
||
"link url
|
||
syn match txtUrl '\<[A-Za-z0-9_.-]\+@\([A-Za-z0-9_-]\+\.\)\+[A-Za-z]\{2,4}\>\(?[A-Za-z0-9%&=+.,@*_-]\+\)\='
|
||
syn match txtUrl '\<\(\(https\=\|ftp\|news\|telnet\|gopher\|wais\)://\([A-Za-z0-9._-]\+\(:[^ @]*\)\=@\)\=\|\(www[23]\=\.\|ftp\.\)\)[A-Za-z0-9%._/~:,=$@-]\+\>/*\(?[A-Za-z0-9/%&=+.,@*_-]\+\)\=\(#[A-Za-z0-9%._-]\+\)\='
|
||
|
||
"email text:
|
||
syn match txtEmailMsg '^\s*\(From\|De\|Sent\|To\|Para\|Date\|Data\|Assunto\|Subject\):.*'
|
||
"reference from reply email, quotes, etc.
|
||
syn match txtReference '^[|>:]\(\s*[|>:]\)*'
|
||
|
||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||
"类html文本
|
||
"syn match txtBold '\*[^*[:blank:]].\{-}\*'hs=s+1,he=e-1
|
||
"syn match txtItalic "^\s\+.\+$" "斜体文本
|
||
|
||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||
" color definitions (specific)
|
||
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||
"hi txtUrl term=bold cterm=bold ctermfg=blue gui=underline guifg=blue
|
||
"hi txtTitle term=bold cterm=bold ctermfg=black gui=bold guifg=black
|
||
hi link txtUrl Underlined"ModeMsg"Tabline"PmenuSbar
|
||
hi link txtTitle Title"ModeMsg"Tabline"PmenuSbar
|
||
hi link txtList SignColumn"Pmenu"DiffText"Statement
|
||
hi link txtComment Special "Comment
|
||
hi link txtReference DiffAdd "Comment
|
||
hi link txtQuotes MoreMsg"String
|
||
hi link txtApostrophe MoreMsg"Special
|
||
hi link txtParentesis Special "Comment
|
||
hi link txtBrackets Special
|
||
hi link txtError ErrorMsg
|
||
hi link txtTodo Todo
|
||
hi link txtEmailMsg Structure
|
||
|
||
let b:current_syntax = 'txt'
|
||
" vim:tw=0:et
|