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!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/266492.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

物联网产品设计,聊聊设备OTA的升级

物联网产品设计部分的OTA设备固件是一个非常重要的部分,能够实现升级用户服务、保障系统安全等功能。 在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样…

simulinkveristandlabview联合仿真——模型导入搭建人机界面

目录 1.软件版本 2.搭建simulink仿真模型 编译错误 3.导入veristand并建立工程 4.veristand导入labview labview显示veristand工程数据 labview设置veristand工程数据 运行labview工程 1.软件版本 matlab2020a,veristand2020 R4,labview2020 SP…

7种常见的网络安全设备及其功能

网络安全设备在现代网络环境中起着至关重要的作用,帮助保护个人和组织免受恶意攻击。本文将介绍7种常见的网络安全设备,包括防火墙、入侵检测系统、反病毒软件、数据加密设备、虚拟私人网络、安全信息和事件管理系统以及网络访问控制设备,并详…

阅读笔记-A Cluster Separation Measure

A Cluster Separation Measure(一种聚类分离测度) 1.这篇论文要解决什么问题?要验证一个什么科学假设? 问题是确定数据中聚类的适当数量,解决这种问题的两种方法都取决于确定指数中相对较大的变化,而不是…

将PPT的图保持高分辨率导入到Word / WPS中

1、将PPT中画好的图组合在一起,选择组合后的图复制(Ctrlc) 2、在Word中,选中左上角的粘贴选项--->选择性粘贴 WPS选择元文件 / Word选择增强型图元文件 这样放大也不模糊了

Gateway API

Gateway API 目录 原文链接 https://onedayxyy.cn/docs/GatewayAPI 本节实战 实战名称🚩 实战:Gateway API在istio里的安装及测试-2023.12.23(测试失败) 前言 Gateway API 是由 SIG-NETWORK 社区管理的开源项目,项目地址:http…

【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建

文章目录 前言一、搭建 Tauri 2.0 开发环境二、创建 Tauri 2.0 项目1.创建项目2.安装依赖4. 编译运行 三、设置开发环境四、项目结构 前言 Tauri在Rust圈内成名已久,凭借Rust的可靠性,使用系统原生的Webview构建更小的App 以及开发人员可以灵活的使用各…

阿里云 ARMS 应用监控重磅支持 Java 21

作者:牧思 & 山猎 前言 今年的 9 月 19 日,作为最新的 LTS (Long Term Support) Java 版本,Java 21 正式 GA,带来了不少重量级的更新,详情请参考 The Arrival of Java 21 [ 1] 。虽然目前 Java 11 和 Java 17 都…

AI创作系统ChatGPT系统源码,支持Midjourney绘画,GPT语音对话+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

【RabbitMQ】RabbitMQ详解(一)

RabbitMQ详解 RabbitMQ介绍四大核心概念RabbitMQ 入门案例Hello RabbitMQ生产者消费者 Work Queues轮询消费 RabbitMQ消息应答与发布自动应答手动应答的方法肯定确认应答否定确认应答拒绝处理该消息恢复到消息队列Multiple的解释消息重新入队手动应答案例 RabbitMQ持久化队列持…

面向对象设计与分析40讲(12)简单工厂方法模式

文章目录 定义示例优缺点 定义 简单工厂模式是一种创建型模式,用于根据客户端的需求创建对象实例,所谓的需求反映到编程语言里就是传入的参数。 简单工厂模式包括三个主要部分: 工厂类(Simple Factory):…

python dash学习2

代码 内有说明: from dash import Dash, html, dcc, callback, Output, Input import plotly.express as px import pandas as pd# 从 Plotly 数据集中读取数据 df pd.read_csv(https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.c…

STM32实现流水灯

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_…

Golang 链表的基础知识

文章目录 链表链表基础知识部分链表的存储方式链表的定义链表的操作性能分析 链表 更多有关于go链表的内容可以见这篇文章链表的创建和读取 链表基础知识部分 什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,…

图解LRU缓存

图解LRU缓存 OJ链接 介绍 LRU 缓存机制可以通过哈希表辅以双向链表实现,我们用一个哈希表和一个双向链表维护所有在缓存中的键值对。 双向链表按照被使用的顺序存储了这些键值对,靠近尾部的键值对是最近使用的,而靠近头部的键值对是最久未…

论文润色的原理是什么 PaperBERT

大家好,今天来聊聊论文润色的原理是什么,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 标题:论文润色的原理――探究论文润色背后的科学依据 一、…

nodejs+vue+ElementUi洗衣店订单管理系统4691l

衣服但是找订单的时间太长,体验非常的差。而且对于店家这也很头疼,麻烦的查找订单的方式,让他总是重复着繁琐的步骤,记录的时候也很容易出问题,容易把衣服弄错,再然后就是对于收来的衣服也很麻烦&#xff0…

HarmonyOS构建第一个ArkTS应用(FA模型)

构建第一个ArkTS应用(FA模型) 创建ArkTS工程 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。 选择Application应用开发&a…

P4 音频知识点——PCM音频原始数据

目录 前言 01 PCM音频原始数据 1.1 频率 1.2 振幅: 1.3 比特率 1.4 采样 1.5 量化 1.6 编码 02. PCM数据有以下重要的参数: 采样率: 采集深度 通道数 ​​​​​​​ PCM比特率 ​​​​​​​ PCM文件大小计算: ​…

如何利用PPT绘图并导出清晰图片

在写论文的过程中,免不了需要绘图,但是visio等软件绘图没有在ppt上绘图比较熟练,尤其流程图结构图. 但是ppt导出的图片也不够清晰,默认分辨率是96dpi,而杂志投稿一般要求至300dpi。解决办法如下: 1.打开注…