这样的高亮插件Emacs下有么?

我觉得回到问题的本质,之所以大家觉得需要各种东西来辅助,是想要 快速选择快速定位

这里 选择 可以理解为两个 定位 组合起来(先定位一边再移到另一边),所以这个问题就简化成了快速的定位。

要找一个左括号其实是没有难度的,所以难点可以继续缩小为找一个右括号不容易,因为需要参照着左括号来确定具体是哪个,对于一个右括号的位置,需要标示出对应左括号的位置,所以有了各种 高亮

这种使用场景下,高亮 约等于 选择,光标在一侧的选择本身即是高亮。

这里 选择 可以理解为两个 定位 组合起来(先定位一边再移到另一边),所以这个问题就简化成了快速的定位。

要找一个左括号其实是没有难度的,所以难点可以继续缩小为找一个右括号不容易,因为需要参照着左括号来确定具体是哪个,对于一个右括号的位置,需要标示出对应左括号的位置,所以有了各种 高亮

这种使用场景下,高亮 约等于 选择,光标在一侧的选择本身即是高亮。

这里 选择 可以理解为两个 定位 组合起来(先定位一边再移到另一边),所以这个问题就简化成了快速的定位。

要找一个左括号其实是没有难度的,所以难点可以继续缩小为找一个右括号不容易,因为需要参照着左括号来确定具体是哪个,对于一个右括号的位置,需要标示出对应左括号的位置,所以有了各种 高亮

这种使用场景下,高亮 约等于 选择,光标在一侧的选择本身即是高亮。

这里 选择 可以理解为两个 定位 组合起来(先定位一边再移到另一边),所以这个问题就简化成了快速的定位。

要找一个左括号其实是没有难度的,所以难点可以继续缩小为找一个右括号不容易,因为需要参照着左括号来确定具体是哪个,对于一个右括号的位置,需要标示出对应左括号的位置,所以有了各种 高亮

这种使用场景下,高亮 约等于 选择,光标在一侧的选择本身即是高亮。

没错,那么实际需要的到底是什么呢。

2 个赞

wow, 非常感谢!实现的真快!

重要的话需要连着说三遍? :thinking:

1 个赞

思维的胡同,其实好多插件都能用提供快速选择的方案替换,因为选择这个概念被先入为主的分解了,其实可以解决很多问题的。

其实就是想要一个比高亮括号更加明显的代码块边界的高亮插件。看到这个效果的时候就觉得很好用。

还少一个 Python (indention) 版的 :)

你看看你的回复,某些段落连续重复了几遍

有意为之,这正是我纠结了很久的问题,顿悟之后感觉很舒爽。

玩这种文字游戏,最好和别人先解释一下,否则容易造成误解和困惑

也不算文字游戏吧,看下来逻辑是连着的,只是那个逻辑恰好是个圈(

用了狗哥的meow, 选择block, 很容易,太多的颜色时间长了,未必耐看。

BTW:

  1. meow-find meow-till 可以 往回搜索吗? 最好是类似 avy 那样,窗口内overlay跳。
  2. 请一定保留(meow--selection-fallback)很好用。

你是看的 develop 分支吗?

命令通过 negative-argument 反向。

如果有用户的话,看来我要认真补文档了。。。。其实我自己觉得 meow 超棒的,化身复制粘贴狂魔。

是develop分支。我用起来感觉很好,有少部分细节还不适。 inner-of-thing bounds-of-thing. 也很不错。meow的交互逻辑很科学。 值得继续打磨。

https://github.com/DogLooksGood/meow/blob/develop/README_CN.md

打算正式的开始写文档了,期间可能会做些微调和 Bug 修复,文档完成的时候就可以 PR 到 master 分支去了。

如果有什么想法和建议的话欢迎提出来。

最近在写 Common Lisp, 也被太多的括号困扰,发现了你写的这段脚本,非常符合需求,不过高亮的段太多了,简单做了下修改,只高亮光标所在的括号,提升了阅读代码的效率

(defun highlight-blocks--get-bounds ()
  "Get the bounds of the nested blocks the point is in.
The returned value is a list of conses, where car is the start of a
block and cdr is the end of a block, starting from the outermost
block."
  (let ((result '())
        (parse-sexp-ignore-comments t))
    (condition-case nil
        (let* ((parse-state (syntax-ppss))
               (starting-pos (if (or (nth 3 parse-state)
                                     (nth 4 parse-state))
                                 (nth 8 parse-state)
                               (point)))
               (begins (nreverse (nth 9 parse-state)))
               (end starting-pos)
               (i 0))
          (while (or (eq highlight-blocks-max-innermost-block-count t)
                     (< i highlight-blocks-max-innermost-block-count))
            (setq end (scan-lists end 1 1))
            (push (cons (pop begins) end) result)
            (setq i (1+ i))))
      (scan-error))
;; 修改下这个函数函数的返回值,可以只高亮当前所在的块
    (last result)))

3 个赞

插个眼,紫薯布丁

用上了,紫薯布丁

这个配色对亮色主题看上去很舒服,但是暗色主题就有点亮瞎眼ww

我试了一些深色的block配色,但感觉都稍微有些怪怪的,有哪位有深色配色推荐的吗?

      ;; '("#461212" "#464612" "#124612" "#124646" "#121246" "#461246")
      ;; '("#302946"  "#294046"  "#294630"  "#404629"  "#463029"  "#462940")
      '("#100046"  "#003646"  "#004610"  "#364600"  "#461000"  "#460036")

试用了一下,还是习惯用rainbow-delimiters-mode,阅读用focus-mode。

试用了一下,还是习惯用rainbow-delimiters-mode,阅读用focus-mode。