在 Emacs 23.1.1 中绑定 M- / M-

2023-11-30

I'm trying to put in a feature that I miss from Eclipse, where Alt+[Up/Down] transposes the lines up or down, but can not for the life of me figure out how to assign to these keys properly. I am using it in -nw mode (so just in a shell window), and typically run in a screen session.

使用全局键绑定,我可以让它与字母组合一起使用,例如(kbd "M-m"),但是我尝试过的方向键组合只会给我一条没有意义的消息,我总是得到:

"ESC <up> is undefined"

我尝试过的:

(global-set-key (kbd "M-<up>") 'transpose-line-up)    
(global-set-key (kbd "<escape>-<up>") 'transpose-line-up)
(global-set-key [M-up] 'transpose-line-up)
(global-set-key [\e \M-O A] 'transpose-line-up)

And C-h c just returns:

ESC <up> (translated from ESC M-O A) is undefined

None of these work, either using ESC or Alt.

Any idea how I can make this work? I would prefer to have these as Alt+[Up/Down] just because that is what I am used to.

Edit

来自评论:

  • C-q Up prints ^[OA.

  • C-q M-Up prints ^[ and moves the cursor up a line.

  • C-h k (Alt+Up) prints ESC <up> (translated from ESC M-O A) is undefined.

感谢您的建议,但结果都是一样的。


Emacs 有一个复杂机制处理各种终端类型上功能键和修饰符编码的变化。它并非在所有情况下都能开箱即用。以下设置应该适用于您的终端:

(define-key input-decode-map "\e\eOA" [(meta up)])
(define-key input-decode-map "\e\eOB" [(meta down)])
(global-set-key [(meta up)] 'transpose-line-up)
(global-set-key [(meta down)] 'transpose-line-down)

你应该能够使用(kbd "<M-up>") and (kbd "<M-down>")代替[(meta up)] and [(meta down)],只要你完成了告诉 Emacs 的步骤(通过input-decode-map)有关您的终端用于对这些组合键进行编码的转义序列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Emacs 23.1.1 中绑定 M- / M- 的相关文章

  • 在 emacs 23 中将 python 缩进设置为 2 个空格?

    我在 Ubuntu 10 04 上使用 emacs 23 1 1 我希望在 Python 中使用 2 个空格缩进进行编程 emacs 看起来有一个 python 的默认模式 python el 我将以下内容放入我的 emacs 中 Only
  • 寻求 emacs 中的自动完成功能

    我正在寻找一个插件来为 emacs 中的 c 开发自动完成弹出窗口 我尝试过的是 Cedet Semantics 和自动完成模式 http cx4a org software auto complete index html 只要我已经有几
  • Emacs - 调用时出错(服务器启动)

    我目前在 Windows Vista SP1 中使用 GNU Emacs 23 0 93 1 在我的 emacs 文件中 我调用 server start 这导致消息错误目录 emacs d server 不安全 有没有人见过这个并知道修复
  • 如何告诉 emacs 以 C++ 模式打开 .h 文件?

    我应该向 emacs 在 Windows 上 文件中添加哪些行 以使其以 C 模式打开 h 文件 默认为C模式 尝试这个 add to list auto mode alist h c mode 每当您打开 h 文件时 都会使用 C 模式
  • 未找到 Emacs shell 命令

    我在 Mac OS X 10 5 8 上工作 我正在努力学习emacs 我对它很陌生 今天尝试从 emacs 中输入 shell 命令 我进入了pdflatex filename 但是 它给了我一个错误说 bin bash pdflatex
  • 当前缓冲区的议程视图

    编辑 解决方案很简单 但对于任何可以解释为什么我的方法不起作用的人来说都是 加分 原点 我想要一个 org mode custom command 来显示仅从当前缓冲区创建的议程 以下代码片段显示了我想要的视图类型 setq org age
  • 同时维护多个emacs配置

    我想在同一台电脑上的同一用户帐户上同时维护多个 emacs 配置 例如 emacs prelude emacs starter kit 和我自己的自定义 emacs 配置 为此 我设置了 emacs1 d emacs2 d emacs3 d
  • 如何更轻松地在 Emacs 中的缓冲区之间切换?

    我最近开始使用 emacs 并且大部分时间我都很享受使用它 我唯一不喜欢的是在缓冲区之间切换 我经常打开一些缓冲区 并且我已经厌倦了使用C x b and C x C b 是否有任何软件包可以使缓冲区之间的切换变得更容易 我调查过emacs
  • 更改组织模式新一天开始的时间

    我使用组织模式来计时我的工作 有时我会工作几个小时到午夜 例如 我记录的时间从 2013 年 6 月 3 日晚上 10 点开始 到 2013 年 6 月 4 日凌晨 2 点结束 组织模式在凌晨 0 点进行划分 开始新的一天 但如果将 0am
  • Emacs Windows 拼写检查 - aspell 或 hunspell

    我在Windows XP操作系统上使用emacs 23 1 50版本 我无法使用 emacs wiki 提供的示例将 hunspell 或 aspell 设置为 emacs 的一部分 任何人都有 Windows XP 的工作配置 请帮助我
  • 如何在emacs中获取顶部和底部边距[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 使用 emacs 时如何获得顶部和底部边距 如左右边缘 我发现当我编写或审阅大块文本时 让文本从屏幕顶部开始有点不舒服 我找不到仅顶部和底部边距设置
  • Emacs 邪恶模式:如何创建一个新的文本对象来选择带有任何非空格字符的单词?

    我正在尝试在 Evil 中创建一个新的文本对象 例如 文本对象iw只会选择包含连字符的字符串子集 我希望新的文本对象能够将单词与任何非空格字符相匹配 到目前为止我得到的是 evil define text object evil inner
  • 通过代码使 SHIFT+3 在 OSX 上生成 `#` 而不是 `£`

    在我的英国 MacBook Air 上 可以使用 OPT 3 键入 SHIFT 3 目前产生 如何重新接线以便 SHIFT 3 产生 这个问题的动机是https apple stackexchange com questions 15615
  • 将命令发送到 GNU 屏幕

    我有一个名为 demo 的 GNU 屏幕 我想向它发送命令 我该怎么做呢 screen S demo X home aa scripts outputs sh yeilds No screen session found 和做screen
  • ESS 在 Windows 上找不到 Rterm.exe

    我将 R 安装在名为 X alphaAndOmega R R 的目录中 所以Rterm exe 32位版本 位于 X alphaAndOmega R R bin i386 我知道它不是 标准 R 目录 并且 标准 R 目录 例如 R 3 0
  • Emacs 中的 C 注释 - Linux 内核风格

    我在用着 setq default comment style multi line and my region comments when doing M are void main int i int b printf format s
  • Emacs Evil“重复”(点)行为

    我的中有以下行 emacs define key evil normal state map M j lambda interactive evil next line 5 这使得文件中的导航变得更加容易 例如 与M j我在下面 5 行 所
  • 在 emacs 主要模式下正确突出显示

    我正在为一种语言开发 emacs 主要模式 又名mydsl 然而 由于某种原因 使用 xahlee 网站上的技术似乎不起作用 可能是较旧的 emacs 方言 我正在解决的关键问题是 1 突出显示评论不起作用以及 2 使用regexp opt
  • 如何根据文件位置运行钩子

    我参与了使用选项卡的 python 项目 但是我没有在我编写的所有其他代码中使用它们 在该特定项目中使用它们至关重要 项目位于特定目录下的一个目录中 IE main folder project1 project2 project3 etc
  • Pymacs 助手在 30 秒后未启动

    我见过其他关于此的问题 但没有一个得到真正的回答 而且没有一个是我的问题 我有一个新系统 emacs 23 1 Centos 6 2 我认为 我下载了最新的 pymacs 并安装了它 但是 我得到 error Pymacs helper d

随机推荐