给文本加个漂亮的小框
时间:2006-05-03 来源:pluskid
浏览邮件列表的时候经常看到有人发表这样的小框,很漂亮:
,----[ foo bar ]
| text in the box
| looks beautiful
`----
也想自己弄一个,于是写了段 elisp 小代码,用来在 Emacs 里面把选中的区域加上边框,elisp 代码如下:
处理之后会变成这样,因为 lisp 缩进很多,为了变漂亮一点,我决定多加几个“-”:
,----[ foo bar ]
| text in the box
| looks beautiful
`----
也想自己弄一个,于是写了段 elisp 小代码,用来在 Emacs 里面把选中的区域加上边框,elisp 代码如下:
(defun kid-box-region (begin end title)
(interactive "r\nsBox Title: ")
(let ((old-buffer (current-buffer)))
(switch-to-buffer (get-buffer-create "*kid-box-region-output*"))
;; 删除以前的内容,为防止误删东西,把他放在 kill-ring 里面
(kill-region (point-min) (point-max))
(insert-buffer-substring old-buffer begin end)
(goto-char (point-min))
(insert ",----------[ " title " ]\n")
(replace-regexp "^" "| ")
(goto-char (point-max))
;; 检查最后是否有换行
(if (search-backward-regexp "^| $" (point-min) t)
(delete-char 2)
(insert "\n"))
(insert "`----------\n")))
处理之后会变成这样,因为 lisp 缩进很多,为了变漂亮一点,我决定多加几个“-”:
,----------[ kid-box-region ]这下我也可以有漂亮的 box 了! :)
| (defun kid-box-region (begin end title)
| (interactive "r\nsBox Title: ")
| (let ((old-buffer (current-buffer)))
| (switch-to-buffer (get-buffer-create "*kid-box-region-output*"))
| ;; 删除以前的内容,为防止误删东西,把他放在 kill-ring 里面
| (kill-region (point-min) (point-max))
| (insert-buffer-substring old-buffer begin end)
| (goto-char (point-min))
| (insert ",----------[ " title " ]\n")
| (replace-regexp "^" "| ")
| (goto-char (point-max))
| ;; 检查最后是否有换行
| (if (search-backward-regexp "^| $" (point-min) t)
| (delete-char 2)
| (insert "\n"))
| (insert "`----------\n")))
`----------
相关阅读 更多 +