其实我就觉得 submodule 配合我写的 magit-submodule-add 和 magit-submodule-remove 最好用.
这就是我一直弃用straight
的原因,不过如果是极少量的包也还凑合。submodule 确实可以考虑……
这个是鸡生蛋蛋生鸡的问题了?
用quelpa-use-package作为补充其实也不错
submodule 真的比那些乱七八糟的包管理器好太多了, 啥限制都没有. 缺啥就 magit-submodule-add, 试用好 commit, 不好直接 magit-submodule-remove 就可以了.
我真的就不明白, 那些包管理器搞那么多功能, 然后限制又大, 真麻烦.
我就两种途径, github (magit / submodule), emacswiki (auto-install.el ), 虽然现在都是用的 github.
嗯,我研究下。谢谢!
我的理解是,MELPA 存在的价值在于有个集中审核、管理的类似官方市场,package 内置也方便了其推广使用。虽然审核和管理做得还不够好,但是已经有很大进步。就像其他语言基本都有一套包管理系统是一样的道理。
目前大多数代码库都是依赖于 github(或者其他基于 git 的系统),用起来是最灵活的。Golang 的包管理基本就是基于 git 的,用起来很爽很方便。不过同样也有问题,就是太容易开发和引入第三方库,导致库的水平参差不齐,需要费很大劲才能找到质量好的库,用着用着还被废弃了,头大得很。其实我这是在吐槽开源的问题吧,扯远了~~~
最近我在Windows上使用你的配置,启动速度快的飞起啊。
有个小白问题想请教一下,你的one-key.el 使用的是哪个按键作为Leader键,绑定的是哪个函数?
我找了wiki的文档,上面写的是 键,但是我Windows系统这个键是apps键。
完全自定义的,可以搜索 lazycat-emacs源码,很多例子
感谢猫哥,原来我将s键误认为shift键了, 原来这是super键。 你的配置是我目前用过的感觉最好用的,它解决了我困扰已久的几个问题:
- 在Windows 操作系统启动慢 (之前的配置有几个.session需要要回复的时候就要30-50s)
现在基本就是3s左右,而且F5关闭emacs时没有了烦人的yes/no - 自动保存的功能也是贼强,已经不用再按C-c,C-s了。
- 自动补全不会没次都弹出烦人的文档。
- 有了Awesome-tab,很少用C-x,b 去切换buffer了。
- 其他的就不列举了。 总体感觉:操作顺畅,爽快,简洁,是我理想中的emacs
thing-edit 不支持引号(单引号,双引号)吗?还是说支持,怎么没有找到。
thing-copy-parentheses
一直这个问题:”Scan error: “Unbalanced parentheses”, 6, 1“ 我是裸emacs配置的。
我的配置
(add-to-list 'load-path "~/Vemacs/myemacs/packages/thing-edit")
(require 'thing-edit)
;; {{{ thing-edit settings using hydra
;; see @ https://github.com/manateelazycat/thing-edit for more details
(defhydra hydra-thing-edit (:color pink :hint nil)
"
^Thing edit^
-----------------------------------------------------------------------
^file^ ^sentence^ ^buffer^ ^line^ ^parenthese^ ^sexp^ ^paragrap^
_f_ copy _s_ _b_ _r_ _p_ _s_ _a_
_F_ cut _S_ _B_ _R_ _P_ _S_ _A_
_1_ replace _2_ _3_ _4_ _5_ _6_ _7_
"
("f" thing-copy-filename)
("F" thing-cut-filename)
("1" thing-replace-filename)
("s" thing-copy-sentence)
("S" thing-cut-sentence)
("2" thing-replace-sentence)
("b" thing-copy-whole-buffer)
("B" thing-cut-whole-buffer)
("3" thing-replace-whole-buffer)
("r" thing-copy-line)
("R" thing-cut-line)
("4" thing-replace-line)
("p" thing-copy-parentheses)
("P" thing-cut-parentheses)
("5" thing-replace-parentheses)
("s" thing-copy-sexp)
("S" thing-cut-sexp)
("6" thing-replace-sexp)
("a" thing-copy-paragrap)
("A" thing-cut-paragrap)
("7" thing-replace-paragrap)
;; quit
("q" nil)
("." nil :color blue))
(global-set-key (kbd "C-.")'hydra-thing-edit/body)
;;; }}}
貌似问题是这样的:如果是这样的
'thing'
这样执行 thing-copy-parentheses 就提示错误:Scan error: “Unbalanced parentheses”,。 如果是这样的
('thing')
执行上面的命令就work。奇怪。 我使用 emacs -Q 也发现有这个问题。
thing-copy-parentheses 的算法是,如果光标在字符串中先拷贝字符串的内容,如果不在字符串语法区域内再拷贝括号内的内容。
‘thing’ 不行的原因是 Elisp 只认 “” 不认 ‘’ 为字符串 (‘thing’) 可以是,因为 thing-copy-parentheses 认为 ‘’ 不是字符串,向外扩展到 () 内的内容。
核心原因是,Emacs每个语言的 mode 有自己的正则表达式,如果编程语言的 mode 不认为光标在字符串中,thing-edit.el 也会遵守语言 mode 的设定规则。
我尝试了我常用的mode, latex-mode, matlab-mode, python-mode,都存在这个问题,matlab python特别是一些打印信息的代码经常出现这个‘’,不能选中这个感觉不是太方便。之前用过很长时间的vim,vim中还是normal 模式下 vi’ vi" vi( vi} di’ di" di} di( 等这个功能该觉比较好用。也是快速选中,快速删除。不能快速选中引号里面的内容,感觉不是太方便。
那你可以用awesome-pair
请教下这里的thing-copy-whole-buffer 和 thing-copy-page 有什么区别? 使用下来感觉二者都是Copy了整页的内容。