- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
运行后cat -t
,我测试了以下情况:
ctrl
+ tab
只加了一个tab
空间
ctrl
+ /
添加 ^_
ctrl
+ `
添加 ^@
ctrl
+ shift
+ backspace
向左删除(与 backspace
行为相同)。
另一方面,以下键绑定(bind)保持一致:
ctrl
+ n
添加 ^N
ctrl
+ y
添加 ^Y
所有字母数字字符 [a-zA-Z0-9]
添加相应的字母数字字符
有没有办法将组合键重新映射到首选输出?例如,在我上面的前四个示例中,我想将它们重新映射为以下内容:
ctrl
+ tab
至 <C-tab>
(而不是 TAB
)
ctrl
+ /
至 ^/
(而不是 ^_
)
ctrl
+ `
至 ^`
(而不是 ^@
)
ctrl
+ shift
+ backspace
至 <C-S-backspace>
(而不是 DEL
)
背景(TLDR)
我想运行 emacs -nw
在远程机器上编辑时,但我注意到在运行 emacs
之间检测到的几个组合键并不一致和 emacs -nw
.以下是一些不一致的键映射,我已经使用 C-h k <key-binding>
进行了验证。在 Emacs 中:
ctrl
+ tab
被检测为 <C-tab>
在 emacs
, 但检测为 TAB
在 emacs -nw
.
ctrl
+ /
被检测为 C-/
在 emacs
, 但检测为 C-_
在 emacs -nw
.
ctrl
+ `
被检测为 C-`
在 emacs
, 但检测为 C-@
在 emacs -nw
.
ctrl
+ shift
+ backspace
被检测为 <C-S-backspace>
在 emacs
, 但检测为 DEL
在 emacs -nw
.
关于如何将正确的组合键发送到我的无窗口 emacs 的任何想法?所有不一致检测到的组合键都涉及使用 ctrl
,但并非所有与控件的键绑定(bind)都被不一致地检测到。例如,C-n
始终被检测到。
我使用的是 Ubuntu 14.04,但这个问题在 Debian Wheezy 中也存在。对于终端信息,我在所有服务器和本地计算机上都有以下信息:
[lucas@server]/home/lucas/bin$ echo $TERM
screen
[lucas@server]/home/lucas/bin$ echo $SHELL
/bin/bash
我通常在 tmux
中运行我的 session , 但无论我是否在 tmux session 中,这个问题仍然存在。
最佳答案
我怀疑您遇到的问题不止一个层面。这意味着您需要在不同的点/级别调整配置。
设置新机器时,我需要做的第一件事就是遍历并删除或更改所有地方的键绑定(bind)。主要原因是因为我大量使用 emacs,而现在,很多东西在交付给 emacs 之前“窃取”了它们的击键。
请注意,我很少在终端中运行 emacs。我几乎只在自己的窗口中运行 emacs,并将我的环境变量(如 EDITOR 等)设置为 emacsclient。这意味着我可以比打开终端和运行 emacs 更快地打开 emacs 框架。目前,我正在运行 Ubuntu Gnome,但我正在认真考虑切换回 Sawfish 或 Stumpwm。
如果您要在 gnome 下的终端中运行 emacs,您需要查看三个与键绑定(bind)相关的“层”。
第 1 层: session (gnome) 层。许多“标准”emacs 键绑定(bind)可以被 wm 窃取。我通常进入键盘设置选项并禁用与我想在 emacs 中使用的绑定(bind)冲突的快捷方式,或者将它们重新绑定(bind)到另一个键。
第 2 层:终端仿真器。这可能会有所不同,具体取决于您使用的终端。通常,由于终端仿真器转换按键事件并将其发送到应用程序的方式,在此级别上的事情会受到更多限制。终端还可以窃取一些关键事件。还有一个问题是,一些终端仿真器将比其他终端仿真器更符合传统的“控制台”界面,在这种情况下,一些在 xsession 层可能的组合键在终端层是不可能的。对于 gnome 终端,您需要查看“edit->keyborad shortcuts”下的设置和“edit->profile preferences”下的兼容性部分。
第 3 层:在某些情况下,您可能需要调整 emacs 中的 key 转换表,以便它理解终端发送的 key 转换。
您想在终端内而不是作为本地 X11 客户端运行 emacs 有什么特别的原因吗?有时这样做是有原因的(例如使用 tmux 与远程同事协作)。但是,如果没有足够的理由在终端下运行,我强烈建议在 GUI 模式下运行。这将消除至少 1 层。我还发现,与在终端下运行时相比,在本地运行时面部设置似乎更加一致,并且您可以避免在终端中使用 emacs 和运行外部接口(interface)功能(例如 ssh、tramp 等)时可能遇到的一些问题。
关于Ubuntu 终端 : How to remap keybindings from default terminal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24135968/
自从我开始工作(约 6 年)以来,我一直是 .NET 的一员。最近在做一个使用Django的项目,需要并行学习Python。很多时候我碰到的 Python 代码看起来很简单,但我就是看不懂。这是其中之
谁能解释一下 JLS §8.4.8.4 中提到的“严格的default-abstract 和default-default 冲突规则” . 它们是否在 JLS 中定义?我似乎找不到他们的定义。 最佳答
我在我的启动图像通用项目中添加了“Default.png,Default-568h@2x.png,Default@2x.png”这三个文件,我有三个不同的图像,分辨率与苹果中提到的完全相同文档,适用于
我试图在删除 AWS RDS MySQL 数据库后删除默认的数据库参数组,但出现以下错误 Failed to delete default.mysql8.0: Default DBParameterG
我想使用 firebase 云函数发送通知,所以我尝试使用 firebase.messaging().getToken() 获取 token ,但我不断收到错误消息: TypeError: fireb
无法通过 Instagram 登录我的应用。我正在使用 react-native instagram 包,但我面临这个问题,因为 _react3.default.creteRef() 不是一个函数。引
从 Rust 1.6 开始,当前特征 Default定义为, pub trait Default { fn default() -> Self; } 为什么不是这个 pub trait Def
在我的第一次代码审查(不久前)中,我被告知在所有 switch 语句中包含默认子句是一种很好的做法。我最近想起了这个建议,但不记得其理由是什么。现在对我来说听起来很奇怪。 始终包含默认语句是否有合理的
这个错误很奇怪。在 firebase 中 react native 有什么问题我已经通过 npm install 安装了 firebase这是我的代码 import React, {Component
对于以下 3 种编译情况: gcc -o helloc hello.c (1) g++ -o hellocpp hello.cpp
我有一个 switch 语句。它几乎可以正常工作,但是它不仅显示一个案例,还显示选定的案例,然后显示默认案例。这是我的代码: var people = { names: ["Sam", "Tim"
这个问题在这里已经有了答案: Default keyword in Swift parameter (1 个回答) 关闭 6 年前。 我试图理解前置条件函数并遇到了“= default”。快速谷歌和
禁止!配置的服务帐户无权访问。服务帐户可能已被撤销。用户“system:serviceaccount:default:default”无法获取命名空间“mycomp-services-process”
我一直在我的 React 中广泛使用命名导出和默认导出,我遇到了这 2 个相似的语法。 从'./Button'导出默认值; export { default } from './Button'; 有人
我很困惑什么时候使用 .prototype 来扩展一个对象,什么时候不使用它。像下面的部分代码,为什么不在FacebookApi.defaults中使用.prototype,难道.prototype只
这个问题在这里已经有了答案: What is the difference between "var=${var:-word}" and "var=${var:=word}"? (4 个答案) 关闭
我想创建一个数据类基类,其中子类中的所有字段都自动可选且默认为无(如果未提供默认值)。 下面的代码……几乎可以满足我的要求,但又不完全是。它出错的方式就像我从未编写过 __init_subclass_
所以我有三个 Typescript 文件: 配置/env/development.ts import { Config } from '../config'; class DevConfig {
我在一个名为 Activity 的表中添加了一个名为 Ordinal 的新列。问题是我给了它一个 UNIQUE 约束,将它设置为允许 NULL(尽管我最终不会想要这个。我只需要将它设置为那个以使脚本更
嗨,我是 struts2 的新手,在我的项目中,我在注册页面使用 json-default 扩展,并使用validation.xml 文件验证它,在同一个项目中,我在登录页面使用 struts-def
我是一名优秀的程序员,十分优秀!