1855_emacs_compnay的使用探索

Grey

全部学习内容汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used.

1855_emacs_compnay****的使用探索

company其实是一个老伙伴了,之前我emacs中体验提升的主力插件之一。主要是用来做各种场景下的补全,但是使用上其实应该注意细节上的细腻性。

主题由来介绍

company自从使用emacs以来基本上就一直在使用,不过使用的方式也是简单粗暴。基本上就是下面一行配置:

(global-company-mode 1)

在我以往的工作中,C语言编程是主要的emacs使用场景,这样使用也就没有什么大的问题。不过随着最近我在自己的工作流中扩大emacs的用途,拿来作为编写笔记文件的主要工具之后,这个补全的功能可能会给我带来一点点干扰。

我在编写笔记材料的时候有时候会进行搜索,而搜索的方式就是直接调用eshell。因为,很多时候便捷要比速度给我带来的体验好得多。但是,我觉得我的配置下,eshell带给我的最大问题不在于本身执行的效率快慢,而是在于我的命令输入过于卡顿。主要的原因我发现其实是 company-mode 导致的。而每次尝试手动关闭 company-mode 有时候也会卡顿。因此,我想找到一个能够针对某一个major-mode进行关闭的方式。

资料整理过程说明

我的确是找到了在某一个major-mode中禁用某一个mode的方法,但是尝试之后,似乎对于compnay-mode是无效的。为此,继续寻找网络上的解决方案,这次直接针对compnay-mode做了查询,找到了一个issue的链接。

how to disable company-mode in eshell? · Issue #2390 · syl20bnr/spacemacs · GitHub

  • 这里有很多人遇到了这样的问题没能够解决,甚至包括网络上emacs的高手。
  • 从这里的描述看,其实很大的原因可能在于company-mode使能的滞后。不过,这个似乎也不是我现在遇到的情况。因为我的配置并不是这样的,spacemacs是我的抄袭参考对象,但是现在却不是我用的最多的配置。
  • 不过这个问题上面的这个描述倒是给了我更多的启发。既然如此,我不妨直接单独启动每一种 major-mode 的配置,毕竟我自己的用到的场景并不多。
  • It would be difficult to disable in a certain major mode if use global-company-mode
    (global-company-mode 1)
    (add-hook 'c-mode-hook 'company-mode)
    (add-hook 'emacs-lisp-mode-hook 'company-mode)
    configurations for org-mode
    (add-hook 'org-mode-hook 'company-mode)
  • major-mode,而且暂时也排除掉了我遇到的使用问题。

要点细节分析

类似的插件实现是复杂的,使用自然也是复杂的。如果从满足我们一时的需求来说,可能一切都是简单的。但是如果考虑让它尽善尽美,可能我们的确得投入无穷无尽的时间。

实际探索体验以及效果

针对org-mode的生效测试:

从上面的效果看,org-mode下company生效。

针对C语言的测试:

针对C语言也是自动生效的。

接下来看看一个没配置的txt文件:

从上面的效果看,没有配置的major-mode没有自动开启。我想修改成为不开启的eshell-mode应该也是如此。

测试下来,配置成功了,而且操作交互的时候的确是没有了之前的卡顿。

小结

单纯的一个小功能看起来或许的确是简单的,但是如果从一整个配置上来说,用不上几个插件就会觉得emacs配置的复杂性。使用别人成熟的配置自然是一个很好的选择,但是这种庞大的配置有时候让我遇到使用障碍的时候觉得绝望。或许,维持自己的配置还是一个很好的选择。这样,不仅可以掌握可控度,自己对于整个体系的理解也会在潜移默化中不断积累成长。

Happy hacking!

相关推荐
白鹭鸣鸣!3 分钟前
WSL2 + OpenCode 完整搭建全流程(含迁移 WSL 到 D 盘)
编辑器
Masimaro2 小时前
《elisp 每日一练》—— 同步进程调用
emacs
骑着蜗牛撵大象3273 小时前
四种库收进一个SQL编辑器(下):跨库取数、方言对齐与四库巡检的落地拆解
jvm·数据库·sql·编辑器·数据迁移·跨库查询
学习论之费曼学习法5 小时前
无人值守AI内容矩阵实战(7):Playwright 发布器避坑——编辑器竞态、索引延迟与风控
python·线性代数·矩阵·编辑器·浏览器自动化·playwright·踩坑记录
心态还需努力呀5 小时前
把 Zettlr 搬上鸿蒙 PC:墨匣学术写作编辑器移植与上架全记录
华为·编辑器·harmonyos
努力学习的小廉6 小时前
UE5 入门系列(二):编辑器基础操作速通
ue5·编辑器
Highcharts.js1 天前
BI可视化图表“维护难”问题的解决方案
开发语言·前端·javascript·编辑器·ecmascript·bi·highcharts
aluluka1 天前
《elisp 每日一练》——定时器机制
emacs·lisp·elisp
叼烟扛炮1 天前
Linux 学习笔记(七):软件安装与 Vim 编辑器极速入门
linux·学习·编辑器
幸运小圣1 天前
fs 模块完全指南:文件读写、移动删除与文件夹操作(新手友好)【Node.js】
node.js·编辑器·vim