经常会在bbs下载一些文章和集合,不想下载成HTML格式,直接保存纯文本格式,但是这样看起来比较累,特别是看合集,所以自己写了vim和emacs的bbs语法高亮,我一般保存成bbs后缀,这样直接识别加亮。
vim的语法高亮
" Vim syntax file
" Language: txt
" Maintainer: Jimmy Wu <frozenthrone88@gmail.com>
" Last Change: 04 Feb 2008
scriptencoding utf-8
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
syntax case ignore
syn region BbsQmd start=/\v^--\s*$/ end=/※/me=s-1
syn match BbsHeader "\v^发信人.*$"
syn match BbsHeader "\v^标\s*题.*$"
syn match Bbsheader "\v^发信站.*$"
syn match AuthorExpr "^【.*】$"
syn match AuthorExpr "^:.*"
syn match BbsFrom "^\s*※.*$"
syn match BbsQuote "\v^\s*☆[━─]+☆\s*$"
syn match BbsQuote "^.*([^)]*)\s*于\s*([^)]*).*"
syn match BbsQuote "\v^.*在该主题下发言如下:\s*$"
syn match BbsQuote "^—*┤.*├—*"
syn match Bbsquote "\v^\s*标题:●.*$"
syn match BbsVoteTitle /^⊙.*$/
" Define the default highlighting.
hi link BbsHeader PreProc
hi link BbsQmd Comment
hi link AuthorExpr Constant
hi link BbsFrom Constant
hi link BbsQuote Type
hi link BbsVoteTitle PreProc
let b:current_syntax = "bbs"
" vim: ts=8 sw=2
保存成bbs.vim放到vimfiles\syntax\下
emacs的语法高亮
;;; bbs-mode-el -- Major mode for viewing bbs files
;; Author: Jimmy Wu <frozenthrone88@gmail.com>
;; Created: 12-4-2008
;; Keywords: bbs major-mode
;; Copyright (C) 2008 Jimmy Wu <frozenthrone88@gmail.com>
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License as
;; published by the Free Software Foundation; either version 2 of
;; the License, or (at your option) any later version.
;; This program is distributed in the hope that it will be
;; useful, but WITHOUT ANY WARRANTY; without even the implied
;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
;; PURPOSE. See the GNU General Public License for more details.
;; You should have received a copy of the GNU General Public
;; License along with this program; if not, write to the Free
;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
;; MA 02111-1307 USA
;;; Commentary:
;;; Code:
(defvar bbs-mode-hook nil)
(add-to-list 'auto-mode-alist '("\\.bbs\\'" . bbs-mode))
(defconst bbs-font-lock-keywords
(list
'("^[发寄]信人.*$\\|^标\s*题.*$\\|^发信站.*$\\|^来\s*源.*$" . font-lock-preprocessor-face)
'("^【.*】$\\|^:.*$" . font-lock-doc-face)
'("^\s*☆─+☆\s*\n.*\\|^\s*☆━+☆\s*" . font-lock-variable-name-face)
'("^.*在该主题下发言如下:\s*$\\|^—*┤.*├—*$\\|^\s*标题:●.*$" . font-lock-variable-name-face)
'("^⊙.*$" . font-lock-constant-face)
'("^※.*$" . font-lock-function-name-face)
'("^--\n\\([^※].*\n\\)*" . font-lock-comment-face)
))
(defun bbs-mode ()
(interactive)
(kill-all-local-variables)
;; Set up font-lock
(set (make-local-variable 'font-lock-defaults) '(bbs-font-lock-keywords))
(setq major-mode 'bbs-mode)
(setq mode-name "bbs")
(run-hooks 'bbs-mode-hook))
(provide 'bbs-mode)
;;; bbs-mode.el ends here
使用方法,保存成bbs-mode.el放到你的site-lisp下
在你的.emacs里加入
(require 'bbs-mode)













There are 3 comments
我的没成功啊,很奇怪,下载的文章如:
发信人: vivas (维※用力跑向前), 信区: ADAgent
标 题: [公告] ADAgent 版面群版面设置调整
发信站: 水木社区 (Sun Dec 18 11:26:15 2005), 站内
【 以下文字转载自 Announce 讨论区 】
发信人: SYSOP (System Operator), 信区: Announce
标 题: [公告] ADAgent 版面群版面设置调整
发信站: 水木社区 (Sun Dec 18 11:26:08 2005), 站内
经 ADAgent 版面群正版主 fallenfox 申请,现对 ADAgent 版面群做
如下调整:
新开设 ADAgents/广告与代理 目录。
该目录中包括 ADAgent 版面群现在各版面,以利于用户更方便快捷地
利用相关版面。目录中版面列表具体如下:
ADAgent/商务广告与代理信息
ADAgent_Beauty/美容品与饰品代理
ADAgent_Manage/Ad_Agent版版务
AdAgent_TG/团购
–
※ 来源:·水木社区 newsmth.net·[FROM: 水木社区
难道是字符编码什么的问题么?
你说的是vim吗?
应该是没识别出文件类型,所以没加载语法高亮
试一下
:set ft=bbs
Leave a Reply