不知道用outshine的人多不多,基本上outshine就是outline加上给每级header的高亮,还有快捷按键,比如像org一样在header上TAB可以折叠/展开。outshine有个问题是乱绑按键:tab被绑到一个奇怪的东西上,self-insert-command
也全被改绑,把outshine-mode-map
清空都没用,但其实这些快捷键我都不用。outshine本来是一个outline的简单扩展,prefix都是用的outline,现在感觉有些乱了。换了maintainer以后有改进的愿望,但进度很慢。我终于明白了,outshine……是有极限的!我不用outshine了,alphapapa!
今天看到hi-lock.el
里的sample,有了这个,outshine的功能不是白给吗:
(注意那个Hi-lock
魔法)
所以就写了个基本版outshine,支持各种mode,叫color-outline.el
:
;;; color-outline.el --- Outline w/ color -*- lexical-binding: t; -*-
;; Author: Yuan Fu <[email protected] >
;; This file is NOT part of GNU Emacs
;;; Commentary:
;;
;; This package is a basic version of outshine.el, it provides a quick
;; and easy way of setting up headline patterns and integration with
;; outline commands, highlighting of headlines and imenu support.
;;
;; Usage:
;;
;; M-x color-outline-mode RET
;;
;; Header level is determined by the number of comment characters.
;; The first level header starts from 3 comment characters.
;; For example, in ‘emacs-lisp-mode’:
;;
This file has been truncated. show original
注:其实只是自动改outline-regexp
和设置hi-lock-set-file-patterns
。想要自定义pattern的直接改这些就好。
4 个赞
再看了一下,我没用过的 outshine,我只写了统一 outline 折叠行为这部分,不包括着色。
alphapapa 这位仁兄不久刚成为 quelpa 的维护者,看了他最近的提交,我有点担心他把 quelpa 改得我不会用了。
他挺活跃,但是挖坑太多了。我都不用quelpa了,用我自己的小工具直接从github克隆,方便我修改。
twlz0ne:
我有点担心他把 quelpa 改得我不会用了。
简单google了一下, 从没用过 Quelpa,好奇这个是干嘛的。
Why “Quelpa”?
The German word quelle means spring (as in: water source) but also source . Source code is translated to quellcode . ELPA is the abbreviation for Emacs Lisp Package Archive. You get the idea.
所以,这个 Quelpa 就是 elpa 的源代码咯?
也就是说,我们想学习 use-package 的原理,更应从 quelpa 下手?
还请各位台兄批评指正。
能从git装package,如果有其他更好的方法,很想知道。
QUELPA /MELPA / ELAP 的关系/区别:
ELPA 是 Emacs 包的发布规范。对比 Linux 的 deb, rpm。
MELPA 是一个 Emacs 包的托管平台,开发者通过提交 recipe 到该项目来发布包,MELPA 审核完之后,开始拉取代码 → 编译 → 打包 → 发布。
QUELPA 直接把 MELPA 那一套代码搬(搬运工的搬)到本地。也就是说,你自己写一段 recipe 就可以了,不必提交给 MELAP 审核,QUELPA 会按 MELPA 的步骤拉取代码 → 编译,但是不打包,而是直接“发布”到 ~/.emacs.d/elpa
。
use-package
是配置管理,不是包管理,属于另一个层面的东西。
3 个赞
(apply #'color-outline–create-pattern cell)))
这个应该是 (cdr cell)吧。
1 个赞
这个东西的初始化方式太不讨喜了,还要挂代理才行,所以就pass了。。
就是到 github 下载安装。不过我也不用,试过发现速度确实是硬伤,主要是国内网络的问题吧。占用磁盘也比较大。