1855_emacs_compnay的使用探索

2023-12-23 21:38:04

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!

文章来源:https://blog.csdn.net/grey_csdn/article/details/135173844
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。