首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Emacs的local- set -key不覆盖模式钩子中的全局set- key?

Emacs是一个非常强大的文本编辑器,它的local-set-key函数用于在当前缓冲区中设置局部快捷键绑定。而模式钩子(mode hook)是一种特殊的变量,其中包含了在特定模式下启动时需要执行的函数列表。当模式钩子中的全局set-key函数与local-set-key函数同时存在时,为什么local-set-key不会覆盖全局set-key呢?

这是因为Emacs的快捷键绑定具有优先级。当按下一个键时,Emacs会按照特定的顺序检查绑定到该键的函数。该顺序为:局部绑定(local-set-key)> 当前major mode绑定 > 全局绑定。

模式钩子中的全局set-key函数属于当前major mode绑定的一部分,因此具有较高的优先级。而local-set-key函数在特定缓冲区中设置局部绑定,仅在该缓冲区中生效,因此具有较低的优先级。这种优先级的设计使得Emacs可以在不同的缓冲区或模式中,为同一个按键设置不同的功能。

对于Emacs的用户来说,这种设计非常灵活且强大。它允许用户在不同的缓冲区中根据需要定制快捷键绑定,而不会影响全局的快捷键设置。这样可以提高工作效率,并且更好地适应不同的编辑环境和需求。

腾讯云相关产品中与云计算领域相关的推荐产品和产品介绍链接地址如下:

  1. 云服务器(CVM):提供可靠的云服务器实例,适用于各类应用场景。详情请查看:https://cloud.tencent.com/product/cvm
  2. 云数据库MySQL版(CDB):提供稳定可靠的云数据库服务,支持高可用、高性能的MySQL数据库。详情请查看:https://cloud.tencent.com/product/cdb_mysql
  3. 弹性负载均衡(ELB):通过将流量分发到多个服务器实例上,提供高可用、高可扩展性的负载均衡服务。详情请查看:https://cloud.tencent.com/product/clb
  4. 云对象存储(COS):提供安全、稳定、低成本的云端对象存储服务,适用于大规模数据存储和静态网站托管。详情请查看:https://cloud.tencent.com/product/cos

总之,Emacs的local-set-key不会覆盖模式钩子中的全局set-key是因为Emacs的快捷键绑定具有优先级,在同一个按键上会按照特定的顺序检查绑定的函数。这样的设计使得Emacs具备灵活的定制性,使用户可以根据需要在不同缓冲区中设置不同的快捷键绑定,而不会影响全局的设置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 2022必会vue高频面试题(附答案)

    为什么vue组件data必须是一个函数?...Vue 为什么要用 vm.$set() 解决对象新增属性不能响应问题 ?你能说说如下代码实现原理么?1)Vue为什么要用vm....动更新,让开发者从繁琐⼿动dom解放缺点:Bug很难被调试: 因为使⽤双向绑定模式,当你看到界⾯异常了,有可能是你View代码有Bug,也可能是Model代码有问题。...vue-router 路由钩子函数是什么 执行顺序是什么路由钩子执行流程, 钩子函数种类有:全局守卫、路由守卫、组件守卫完整导航解析流程:导航被触发。...在被激活组件里调用 beforeRouteEnter。调用全局 beforeResolve 守卫 (2.5+)。导航被确认。调用全局 afterEach 钩子。触发 DOM 更新。

    2.8K40

    告别Vuex,发挥compositionAPI优势,打造Vue3专用轻量级状态 定义main.jscontroller组件设置监听和钩子局部状态

    、组件、代码位置(开发模式)、修改时间、状态、属性名(含路径)、原值、新值。...changeLog: [], // 内部钩子key:数组 _watch: {}, // 外部函数,设置钩子key:回调函数 watch: {}, // 状态初始化回调函数...,拦截 get: function (target, key, receiver) { const __path = getPath(key) _getPath = _...set 操作,实现记录日志、改变状态函数、组件、位置等功能。...我们可以直接指定要监听状态,不会影响其他状态,在钩子里面可以获取当前 set产生日志,从而获得各种信息。 还可以通过返回值方式来影响状态改变: 没有返回值:允许状态改变。

    1.1K20

    19 道高频 vue 面试题解答(下)

    ,但是在不同场景,该行为有不同实现方案-比如选项合并策略...其他模式欢迎补充生命周期钩子是如何实现Vue 生命周期钩子核心实现是利用发布订阅模式先把用户传入生命周期钩子订阅好(内部采用数组方式存储...为什么Vue采用异步渲染呢?Vue 是组件级更新,如果采用异步更新,那么每次更新数据都会对当前组件进行重新渲染,所以为了性能,Vue 会在本轮数据更新后,在异步更新视图。核心思想nextTick 。...hash模式下,仅hash符号之前url会被包含在请求,后端如果没有做到对路由覆盖,也不会返回404错误;history模式下,前端url必须和实际向后端发起请求url一致,如果没有对用路由处理...$set() 解决对象新增属性不能响应问题 ?你能说说如下代码实现原理么?1)Vue为什么要用vm....在将要进入路由组件调用 beforeRouteEnter调用全局解析守卫 beforeResolve导航被确认。调用全局后置钩子 afterEach 钩子。触发DOM更新(mounted)。

    1.8K00

    【面试题】973- 一篇由简到难 Vue 面试题+详解答案

    9 v-if 与 v-for 为什么建议一起使用 v-for 和 v-if 不要在同一个标签中使用,因为解析时先解析 v-for 再解析 v-if。...[7] 19 vue-router 路由钩子函数是什么 执行顺序是什么 路由钩子执行流程, 钩子函数种类有:全局守卫、路由守卫、组件守卫 「完整导航解析流程:」 导航被触发。...在被激活组件里调用 beforeRouteEnter。 调用全局 beforeResolve 守卫 (2.5+)。 导航被确认。 调用全局 afterEach 钩子。 触发 DOM 更新。...vuex 个人理解 vuex 是专门为 vue 提供全局状态管理系统,用于多个组件数据共享、数据缓存等。...Vue 生命周期钩子核心实现是利用发布订阅模式先把用户传入生命周期钩子订阅好(内部采用数组方式存储)然后在创建组件实例过程中会一次执行对应钩子方法(发布) 相关代码如下 export function

    85121

    前端vue面试题2020及答案_c++ 面试题

    117.Vue.set 改变数组和对象属性 118.vm.$set(obj, key, val) 做了什么? 119.第一次页面加载会触发哪几个钩子?...36.v-if和v-for为什么建议一起使用?...钩子函数种类有: 全局路由钩子函数:beforeEach、afterEach(一般用于全局进行权限跳转) 单个路由钩子函数:beforeEnter、beforeLeave(路由内部钩子,一般在路由表里...1.全局路由 全局导航钩子主要有两种钩子:前置守卫(beforeEach)、后置钩子(afterEach) 2....Vue组件神兵利器,插槽Slot 128.v-for 为什么要加上 key key 主要功能是提高 vdom 更新速度;因为 vue 在 patch (补丁)过程 diff 算法对新旧节点比对时是可以通过

    4.2K10

    【Vuejs】1146- 这些 Vue 技巧你都掌握了吗?

    Hash模式Hash变化会被浏览器记录(onhashchange事件),History模式利用 H5 新增pushState和replaceState方法可改变浏览器历史记录栈。...* 如果是根组件,走当前 else 分支 * 合并 Vue 全局配置到根组件,如 Vue.component 注册全局组件合并到根组件 components 选项...组件 data 为什么是个函数 对象在栈存储都是地址,函数作用就是属性私有化,保证组件修改自身属性时不会影响其他复用组件。...$set 如何解决对象新增属性不能响应问题 Vue.$set出现是由于Object.defineProperty局限性:无法检测对象属性新增或删除。...mixin 混入分全局混入和局部混入,本质是 JS 对象,如 data、components、computed、methods 等。 全局混入推荐使用,会影响后续每个Vue实例创建。

    1.7K20

    上帝视角看Vue源码整体架构+相关源码问答

    beforeCreate 钩子函数前完成了什么?父子组件,子组件调用执行本身注册自定义事件 A(),那么父子组件,谁监听事件 A() 执行调用?created 钩子函数前完成了什么?...思考问题后,答案在下方,根据自己阅读整理源码,对自己提出有意义问题并自我回答。确保是面试热点题噢(切勿入题太深)致命五答一答问:什么是 MVVM 模式?...三答问:Vue 当父子组件配置选项发生冲突时,是如何处理?答:Vue 混合父子组件配置选项时,采用配置项 key 值作为标识,若 key 值相等冲突,则子组件配置选项将覆盖父组件配置选项。...若节点 key 值相等且节点不同,新节点会覆盖旧节点吗?vnode 是什么?有什么用?Vue 如何处理 Vnode 上属性?...undefined最后新老数组某一数组遍历完成,则进行添加或删除节点操作。五答问:若节点 key 值相等且节点不同,新节点会覆盖旧节点吗?

    1.8K10

    前端一面经典vue面试题(持续更新

    因此,我们有必要把组件共享状态抽取出来,以一个全局单例模式管理。通过定义和隔离状态管理各种概念并通过强制规则维持视图和状态间独立性,我们代码将会变得更结构化且易维护。.../src/views/xxx.vue'), meta:{ keepAlive: true // 需要被缓存 }},v-for 为什么要加 key如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能尝试就地修改...set, // 当修改属性时调用此方法};对 React 和 Vue 理解,它们异同相似之处:都将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关库;都有自己构建工具,能让你得到一个根据最佳实践设置项目模板...mixin,但是如果滥用的话也是很有帮助,比如可以全局混入封装好 ajax 或者一些工具函数等等。...Vue生命周期钩子是如何实现vue生命周期钩子就是回调函数而已,当创建组件实例过程中会调用对应钩子方法内部会对钩子函数进行处理,将钩子函数维护成数组形式Vue 生命周期钩子核心实现是利用发布订阅模式先把用户传入生命周期钩子订阅好

    90230

    面试官:说说你对vuemixin理解,有哪些应用场景?

    ,当组件使用 mixins对象时所有mixins对象选项都将被混入该组件本身选项来 在Vue我们可以局部混入跟全局混入 局部混入 定义一个mixin对象,有组件optionsdata、methods...里面的方法,在自动执行create生命钩子,执行hello方法 全局混入 通过Vue.mixin()进行全局混入 Vue.mixin({ created: function () {...,进行递归合并时候组件选项会覆盖mixin选项 但是如果相同选项为生命周期钩子时候,会合并成一个数组,先执行mixin钩子,再执行组件钩子 二、使用场景 在日常开发,我们经常会遇到在不同组件中经常会需要用到一些相同或者相似的代码...hasOwn(parent, key)) { // 如果parent已经处理过某个key 就不处理了 mergeField(key) // 处理childkey 也就parent没有处理过...data 所有属性,然后根据不同情况进行合并: 当目标 data 对象包含当前属性时,调用 set 方法进行合并(set方法其实就是一些合并重新赋值方法) 当目标 data 对象包含当前属性并且当前值为纯对象时

    1.9K10

    进程间通讯(五).message queue(2)

    @ubuntu:~/c$ 编译执行过程没有报错,从结果来看,符合预期 ---- ftok 此函数原型在 sys/ipc.h /* Generates key for System V style...type System V IPC key 此函数把从pathname导出信息与id低序8位组合成一个整数IPC键 ---- key_t emacs@ubuntu:/usr/include$ grep...如果指定这个参数,那么进程将被阻塞直到函数可以从队列得到符合条件消息为止。如果一个client 正在等待消息时候队列被删除,EIDRM 就会被返回。...如果指定这个参数,E2BIG 将被返回,而消息则留在队列不被取出。当消息从队列内取出后,相应消息就从队列删除了。...' options. */ //把msgid_ds结构数据设置为消息队列的当前关联值,即用消息队列的当前关联值覆盖msgid_ds值 __buf msqid_ds 结构体指针 对删除消息队列处理不是很完善

    80620

    【Vuejs】778- 超全 Vuejs 知识点(基础到进阶)

    如果应用够简单,最好不要使用 Vuex,一个简单 store 模式即可 需要构建一个中大型单页应用时,使用Vuex能更好地在组件外部管理状态 Vuex和单纯全局对象有什么区别?...为什么 Vuex mutation 不能做异步操作?...为什么 v-for 和 v-if 建议用在一起 当 v-for 和 v-if 处于同一个节点时,v-for 优先级比 v-if 更高,这意味着 v-if 将分别重复运行于每个 v-for 循环中。...更快速:利用 key 唯一性生成 map 对象来获取对应节点,比遍历方式更快 为什么建议用index作为key建议 用index 作为 key,和没写基本上没区别,因为不管你数组顺序怎么颠倒,index.../Foo.vue') 复制代码 Vue-router 导航守卫有哪些 全局前置/钩子:beforeEach、beforeResolve、afterEach 路由独享守卫:beforeEnter 组件内守卫

    3.3K51

    前端一面高频react面试题(持续更新

    ,只是合成事件和钩子函数没法立马拿到更新后值,形成了所谓异步。...当然可以通过 setState 第二个参数 callback 拿到更新后结果setState 批量更新优化也是建立在异步(合成事件、钩子函数)之上,在原生事件和 setTimeout 不会批量更新...,在异步如果对同一个值进行多次 setState,setState 批量更新策略会对其进行覆盖,去最后一次执行,如果是同时 setState 多个不同值,在更新时会对其进行合并批量更新合成事件是异步钩子函数是异步原生事件是同步...\local- cli\server\server.js文件配置 default端口值。...它可以让你在编写 class 情况下使用 state 以及其他 React 特性。通过自定义hook,可以复用代码逻辑。

    1.8K20

    从源码解读 - Vue常考面试题

    6、Vue.set 方法是如何实现? 7、Vue模板编译原理?...一般在哪一步发起请求及原因 2、生命周期钩子是如何实现? 3、Vue 父组件和子组件生命周期钩子执行顺序 三、常考-组件通信 1、Vue组件data 为什么是一个函数?...核心是一个发布订阅模式,将钩子订阅好(内部采用数组方式存储),在对应阶段进行发布。...四、常考-路由 ---- Vue-router有几种钩子函数?具体是什么及执行流程是怎样? ---- 核心答案: 路由钩子执行流程,钩子函数种类有:全局守卫、路由守卫、组件守卫。...10.调用全局afterEach钩子; 11.DOM更新; 12.用创建好实例调用beforeRouteEnter守卫传给next回调函数。

    3K22

    Python 键盘鼠标监听

    如下: HookManager() 创建一个“钩子”管家,便于接下全局设置 HookManager.onMouseEvent + HookManager.HookMouse() 监听鼠标事件...# 写一个保存到本地文件方法,而且应该以写二进制方式来写入,设置result为全局,避免文件被覆盖 global result file = open(r'F:/log.txt...可以直接设置而空而使用默认值 pythoncom.PumpMessages() # 我也不知道为什么直接放置到main函数不管用 if __name__ == "__main__":...这是实时检测结果,是我在程序添加设置result为全局,避免文件被覆盖 时所截获数据流。 问题分析 在上面的代码,注释已经做很详细了。...使用了全局变量result: 这里就是为了防止在向文件写入数据时候覆盖之前文件信息 。 在判断键盘按下Q键时候,停止键盘事件记录。

    3.2K10
    领券