免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 887 | 回复: 0
打印 上一主题 下一主题

给文本加个漂亮的小框 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-03 22:34 |只看该作者 |倒序浏览
浏览邮件列表的时候经常看到有人发表这样的小框,很漂亮:
,----[ foo bar ]
| text in the box
| looks beautiful
`----
也想自己弄一个,于是写了段 elisp 小代码,用来在 Emacs 里面把选中的区域加上边框,elisp 代码如下:
([color="#afeeee"]defun [color="#7fffd4"]kid-box-region (begin end title)
  (interactive [color="#87cefa"]"r\nsBox Title: ")
  ([color="#afeeee"]let ((old-buffer (current-buffer)))
    (switch-to-buffer (get-buffer-create [color="#87cefa"]"*kid-box-region-output*"))
    [color="#add8e6"];; [color="#add8e6"]删除以前的内容,为防止误删东西,把他放在 kill-ring 里面
    (kill-region (point-min) (point-max))
    (insert-buffer-substring old-buffer begin end)
    (goto-char (point-min))
    (insert [color="#87cefa"]",----------[ " title [color="#87cefa"]" ]\n")
    (replace-regexp [color="#87cefa"]"^" [color="#87cefa"]"| ")
    (goto-char (point-max))
    [color="#add8e6"];; [color="#add8e6"]检查最后是否有换行
    ([color="#afeeee"]if (search-backward-regexp [color="#87cefa"]"^| $" (point-min) t)
         (delete-char 2)
       (insert [color="#87cefa"]"\n"))
    (insert [color="#87cefa"]"`----------\n")))
处理之后会变成这样,因为 lisp 缩进很多,为了变漂亮一点,我决定多加几个“-”:
,----------[ kid-box-region ]
| ([color="#afeeee"]defun [color="#7fffd4"]kid-box-region (begin end title)
|   (interactive [color="#87cefa"]"r\nsBox Title: ")
|   ([color="#afeeee"]let ((old-buffer (current-buffer)))
|     (switch-to-buffer (get-buffer-create [color="#87cefa"]"*kid-box-region-output*"))
|     [color="#add8e6"];; [color="#add8e6"]删除以前的内容,为防止误删东西,把他放在 kill-ring 里面
|     (kill-region (point-min) (point-max))
|     (insert-buffer-substring old-buffer begin end)
|     (goto-char (point-min))
|     (insert [color="#87cefa"]",----------[ " title [color="#87cefa"]" ]\n")
|     (replace-regexp [color="#87cefa"]"^" [color="#87cefa"]"| ")
|     (goto-char (point-max))
|     [color="#add8e6"];; [color="#add8e6"]检查最后是否有换行
|     ([color="#afeeee"]if (search-backward-regexp [color="#87cefa"]"^| $" (point-min) t)
|          (delete-char 2)
|        (insert [color="#87cefa"]"\n"))
|     (insert [color="#87cefa"]"`----------\n")))
`----------这下我也可以有漂亮的 box 了! :)

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18458/showart_108112.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP