前言
一个月以前,我创建了一个新项目: sniem,意为: Simple united editing method
刚开始我对它的期望是: 将 evil
的操作方式和狗哥写的 meow
的亮点融合起来。后来,在1月24日,初始版本发布,我将其定位改变了: 全新操作方式 + meow
部分亮点 + 其它十分便利的功能。
大概在前几天,sniem 差不多成熟了,我做了一期关于 sniem 的视频。我犹豫是否在社区发条帖子,在翻看 commit log 时发现离首次提交刚好一个月了,因此便还是发了。
介绍
首先说说所谓的全新操作方式,就是围绕一个概念: last-point
(以下简称为LP)。一般情况下,每一次移动的移动前那一个位置会被设置为 LP 。几乎每一个 operation 都有一个针对 LP 的操作(除了sniem-paste
)。
然后是 其它十分便利的功能
,这里举两个例子。
-
sniem-digit-argument-or-fn
这个功能简单来说就是 1: 一般情况下执行之后,键盘中间那行将代替数字键和负号(sniem 支持主流的4种键盘布局),以此执行 digit-argument
,回车即输入完毕;2: 执行它后可按下固定按键,以执行特殊操作(按键在README有写,链接在最后)。也可先以用中间那行输入数字,再按特殊操作的按键,以对其使用 digit-argument
。
-
sniem-object-catch
源于我用evil
时写的插件,后将其移植了过来,并有很大改进。这个功能用来智能选中 pair,然后可对其进行操作,比如写Elisp时用来分辨括号,或者结合sniem-pair
对其进行添加或修改。
链接
最后,sniem才刚刚诞生一个月,一些功能必然比不上其它编辑模式,但我会一直将其完善下去,将其打造为一个一体化的编辑模式。更新方面,目前处于假期,我一般每天都可能有提交,也快上学了,我们学校是住宿制,因此上学期间周末可能有提交。
10 个赞
下一步计划是加入 sniem-mark-jump
功能,最近看到了关于这个的帖子,很久之前在自己配置里实现了一下,不过十分简陋,明天开始写。
考不考虑做一个通用的 cheatsheet 包,支持 jis, ios, kr 等物理布局?最近收到这么个 issue 。
我的麦克风有问题,目前还没找到调节的合适办法。可以先看README,上面写得也还算详细了
昨天所说的 sniem-mark-jump
,已经提交了
1 个赞
Weiss
10
恩恩看完了,last-point 和 object-catch 还挺好玩的,不过我感觉总操作数似乎有点多啊。你其实可以列个表,和其他系统对比下常见操作的按键数。
特殊操作基本都列出了,其它的就都是一般操作,可以在 cheatsheet 里查看
多也正常,毕竟是一体化编辑模式。
刚刚修复了一下 sniem-mark-jump
,解决了注释里有其它 face
时出错
2 个赞
最新提交为 sniem-pair
加入了删除功能,(一直在用 paredit 所以忘记了这个功能,直到写 Org 的时候才注意到这个功能)。
最近看到了一个 expand-region
项目,可用于在各个语言快速选中代码语句主体, Sniem 已经有 sniem-object-catch
的支持,因此实现也比较容易,下一个版本将针对这个功能加入 sniem-expand-region
。
最近加了不少功能,有时间会录一个介绍新功能的视频,最近应该时不会发,比较忙。
今天的所有提交内容:完善了具有相同字符的 pair 在像 comment 这样 face 相同的内容里的选取。
最新提交,主要内容:完善了 sniem-object-catch
选中内容中反斜杠和多种 face 时的出错;加入了一个简单的 sniem-expand-region-string
;为 sniem-pair
添加了添加前缀,可先输入 a 后输入 pair;修复了 sniem-object-catch-prefix-string-p
的判断
明天开学,近期推送会减少。
最新提交,增加了 EXPAND
模式,用于更加舒适地扩展选择。
1 个赞
最新提交,目前看来是最终版了,以后都是小修补。
更新内容:
- 为
sniem-replace-word
加入了换位功能,现在被 sniem-mark-content
mark 的内容不仅可以用来当做记号,还可以用来直接替换了。
- 为
sniem-object-catch
替换了指定模式 pair 的实现方式,不再使用 hook 而换为直接将其放入全局 pair 的变量。
(sniem-object-catch-mode-defalist org-mode
("~" . "~")
("=" . "="))
(insert (format "\n'%S" sniem-object-catch-global-symbol-alist))
'((org-mode ("=" . "=") ("~" . "~")) (emacs-lisp-mode ("'" . "")) ("\"" . "\"") ("'" . "'") ("[" . "]") ("<" . ">") ("(" . ")") ("{" . "}"))
- 加入了
sniem-search
命令,用于快捷搜索之前用 sniem-next-word
/ sniem-prev-word
搜索过的内容,适用于知道目标文本或要重复搜索的情况[1]。
若搜索的内容是第一个,将会在行尾显示 [FIRST]
,最后一个显示 [END]
,只有一个结果显示 [ONLY]
。[2]
注1:目前有很多强大方便的模糊搜索插件,我比起它也更经常使用 swiper
,它只是为了在一些时候更方便所创。
注2:我觉得这个情况是最多的,一般搜索结果只想知道是否为第一个、最后一个和唯一一个。
1 个赞