将 Mma 7 中的 Caps lock 键重新映射为 Esc

2024-01-02

TLDR:如何在 Mma 7 中将 CapsLock 转换为“ShortNameDelimiter”?

I like pretty text in my mma notebooks, and often define functions as f[\[Alpha]_] =... so as to match the exact equation that I'm working with. As such, it involves a lot of Esc-letter-Esc sequences, and reaching for Esc every other stroke breaks my flow of typing.

Now, the CapsLock key is seldom used (I can't remember the last time I needed it), but conveniently placed (your pinky is right there!). Remapping it to Esc on vim worked wonders for me and I was wondering if there was a way to do the same in mma, without having to modify the system's keyboard layout.

我尝试编辑KeyEventTranslations.tr通过添加以下内容EventTranslations[{...

Item[KeyEvent["CapsLock"], "ShortNameDelimiter"]

但这没有效果。还有其他方法吗?是CapsLock不是正确的标识符?如果有帮助的话,我正在 Mac 上使用 Mma7 学生版。


修饰键的处理非常特殊,我怀疑 Mathematica 是否能够覆盖该系统。你可能have在 Mathematica 和操作系统之间的层中执行此操作。但是,根据您所在的应用程序,可以使密钥的行为有所不同。因此,只需做一些工作,就有可能仅在 Mathematica 中大写锁定键的行为有所不同.

编辑:我没有看到你说你有哪个操作系统,所以我添加了Mac指令。


Windows

例如,如果您有 Windows,则可以使用名为http://www.autohotkey.com/ http://www.autohotkey.com/。它特别具有一个功能,您可以将密钥绑定到脚本,特别是以下脚本:

如何使热键或热字符串专用于某些程序?

换句话说,我希望某个键能够正常工作,除非特定窗口处于活动状态。 在以下示例中,除非标题为“CAD 编辑器”的窗口处于活动状态,否则 NumpadEnter 会正常执行。请注意“$NumpadEnter”中 $ 前缀的使用,这是让热键“自行发送”所必需的:

$NumpadEnter::
IfWinNotActive, CAD Editor
{
    Send, {NumpadEnter}
    return
}
; Otherwise, the desired application is active, so do a custom action:
Send, abc
return

下一个示例比上面的更纯粹,但只有当“CAD 编辑器”应用程序设计为忽略 NumpadEnter 键本身时,它才会起作用。波形符前缀 (~) 使 NumpadEnter 成为非抑制热键,这意味着 NumpadEnter 击键本身始终发送到活动窗口,唯一的区别是它触发热键操作。 ~ 功能需要 Windows NT/2k/XP。

~NumpadEnter::
IfWinNotActive, CAD Editor
    return
; Otherwise, the desired application is active, so do a custom action:
Send, abc
return

引用本论坛帖子中的“MRCS”,您可能会发现以下内容很有用:

第一个我命名为 CapsLockR.ahk 并包含以下脚本:

CapsLock UP::Run C:\Documents and Sett...[path to script]...\CapsLock.ahk 

第二个名为 CapsLock.ahk 并具有以下脚本:

GetKeyState, state, CapsLock, T 
if state = D 
    SetCapsLockState, off 
else 
    SetCapsLockState, on 
exit

因此,更糟糕的是,如果您在修改“如果 Active Window = Mathematica 则行为像 Bar,则行为像 Foo”脚本时遇到困难,我认为您可以添加此脚本来手动切换 CapsLock 状态。谷歌搜索还将揭示更多结果。


Linux

我知道在 Linux 上,你可以使用名为xbindkeys将 CapsLock 绑定到脚本,您可以依次调用xdo如果您检测到 Mathematica 是最顶层的窗口之一(例如通过获取最顶层窗口的 pid 和详细信息 https://stackoverflow.com/questions/2041532/getting-pid-and-details-for-topmost-window , or xdotool getwindowfocus)或者更糟,你可以只用一个脚本来切换你的配置CapsLock -> xdotool key Escape, xdotool type "whatever", xdotool key Escape(“Mathematica 模式”)和“正常模式”...尽管这可能会阻止您在做数学时因即时消息而对数学家大喊大叫。除非你可能需要找到某种方法来以编程方式切换 CapsLock,也许是通过创建一个虚拟的 CapsLock 键(尽管这是一种极端的黑客行为,但很可能可以找到某种库;也许有人知道如何在Python中打开/关闭大写锁定吗? https://stackoverflow.com/questions/2353112/anybody-know-how-to-toggle-caps-lock-on-off-in-python可能有用)。 (可以通过使用 CapsLock 之外的键来避免此问题,或者不关心您想要保留 CapsLock 功能;您也可以将另一个从未使用过的键变成 CapsLock。)


Mac

Mac 可能有类似的工具。例如,您可以获得xdotool就像上面的 Linux 上的 MacPorts 项目一样。我听说 CapLock 键通常无法在 Mac 上轻松反弹,因此如果您可以使用另一个键,可能会容易得多。不过理论上应该是可以的...

如果您想使用 CapsLock,可以使用 PCKeyboardHackhttp://pqrs.org/macosx/keyremap4macbook/extra.html http://pqrs.org/macosx/keyremap4macbook/extra.html将 Caps Lock 键重新映射为告诉 OS X 让您重新映射 Caps Lock 的键。然后重新映射它,然后使用 Quicksilver 将密钥绑定到进行调用的脚本xdotool检查您是否在 Mathematica 中,还可以发出:esc:...:esc:如果你是(请参阅此答案的 Linux 部分)。否则,您将模拟 CapsLock 上的按键。但你重新映射了 CapsLock!因此,您可能需要将另一个从未使用过的虚拟键放入 CapsLock 键中,并使用 Cocoa 库或简单的 AppleScript 触发按键。如果您想采用 CapsLock 路线,您可能会发现在 Mac OS X 中将 Caps Lock 用作 Esc https://stackoverflow.com/questions/127591/using-caps-lock-as-esc-on-a-mac useful.

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

将 Mma 7 中的 Caps lock 键重新映射为 Esc 的相关文章

  • iPad - 无法在框架内滚动

    我无法滚动 iPad Safari 中框架内调用的 pdf 我已经尝试过两件事 2 指滚动 使用对象 嵌入代替框架 但这是行不通的 事实上我已经尝试了很多东西 溢出 高度等等 请帮我 先感谢您 根据这篇文章http support appl
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • 当所选选项是下拉列表中已选择的选项时如何接收事件?

    动机 我想动态加载一个select使用来自 AJAX 调用的值 并允许用户select加载后列表中的第一项after它获得焦点 现在 第一项是selected项目 当您单击下拉列表并单击第一项时 什么也没有发生 我无法添加任何无效选择的占位
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 在 mac-os-x Yosemite 上调用“npm”时,Jenkins 构建步骤失败

    在开始之前 我想说我已经检查过这些答案 Jenkins 构建步骤在 npm install 上失败 https stackoverflow com questions 11564508 jenkins build step fails on
  • Mac OS 上的诗歌安装失败,显示“should_use_symlinks”

    我正在尝试使用以下命令安装诗歌 curl sSL https install python poetry org python3 但它失败了 但有以下例外 例外 此版本的 python 无法在不使用符号链接的情况下创建 venvs 下面是详
  • Mac OS X 中文件系统的 Unicode 编码在 Python 中不正确?

    在 OS X 和 Python 中处理 Unicode 文件名有点困难 我试图在代码中稍后使用文件名作为正则表达式的输入 但文件名中使用的编码似乎与 sys getfilesystemencoding 告诉我的不同 采取以下代码 usr b
  • Spyder 无法启动:spyder:找不到命令

    我已经安装了spyderpip3 install spyder在苹果电脑上 但是 当我无法从 bash 启动它时 它会显示spyder command not found 我已按照其说明进行操作Github页面 https github c
  • 安装 libjpeg v8 到 /opt/local

    如何在 OSX 上将 libjpeg 8 安装到 opt local 我问的原因是我想用以下方法制作大脑活动的小电影MNE C 库 http www nmr mgh harvard edu martinos userInfo data MN
  • NSView 鼠标跟踪

    我在 Mac OS X 上遇到了 Cocoa NSView 的奇怪行为 我在 NSView 容器中有一个自定义 NSView 这个自定义 NSView 跟踪鼠标移动 点击 并有一个工具提示 当我在所描述的视图上方添加 NSView 时 即使
  • 未找到符号,预计出现在平面命名空间 ObjC++ 中

    我可能遇到了一个简单的问题 但是在编译过程中没有任何信息错误或警告来提醒我出了什么问题 我有一个 Objective C 应用程序 其中包含 C 主文件和 ObjC 头文件 它构建得很好 但是当运行时 它会给出以下错误消息 Dyld Err
  • 默认 iPhone 地址簿人员电话号码标签周围有哪些标签?

    我的问题涉及 iPhone 上联系人列表的人员条目中一些默认电话号码标签周围的标记 我已经为 John Smith 创建了一个 iPhone 联系人列表地址簿条目 其中包含以下电话号码条目 手机 604 123 4567 iPhone 77
  • 使用 Homebrew 安装 Git 时出现问题 [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Homebrew 升级 Git 时出现问题 https stackoverflow com questions 12362021 problems upgrading git with home
  • 仅当源文件为 LaTeX 时,Vim 才会重新映射 [重复]

    这个问题在这里已经有答案了 我的键盘上有一个 键 有时我想在 Vim 中编辑 LaTeX 时使用它来扩展为正确的表达式 即 frac 1 2 我知道我应该做类似的事情 inoremap frac 1 2 现在 我如何使其仅适用于 LaTeX
  • 从沙箱中的帮助应用程序读取 NSUserDefaults

    我找到了一些阅读资源NSUserDefaults另一个应用程序的 Objective C NSUserDefaults 缓存会阻止其他应用程序准确读取更改 https stackoverflow com questions 10667848
  • 如何设置 NSButton OSX 的背景颜色

    我想设置 NSButton 的背景颜色 属性检查器中没有任何内容 所以我想知道是否有任何方法可以以编程方式完成此操作 系统控件需要遵循 Apple 的外观和感觉 因此您无法轻松更改背景颜色 如果你想完成这个 你需要子类化 NSButton
  • 如何在全屏视图前面显示 NSPanel?

    我的应用程序以全屏方式运行 我需要类似 iOS 的 UIPopoverController 之类的东西 第一个想法是使用 NSPanel 但我无法让它显示在全屏视图前 我需要一个类似 UIPopoverController 的 Cocoa
  • 使用 XCode 进行测试时,MacOS 应用程序本地通知未显示

    我尝试将横幅通知生成器添加到我的 macOS swift 应用程序中 但在 XCode 中运行测试时 横幅没有出现 并且通知中心中也没有任何新通知可见 我计算机上的其他应用程序会定期生成通知 我错过了什么 我已按要求授予许可 我的应用程序委
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • MacOSX 下 libpng 的链接器错误

    我正在使用 MacOSX 10 7 2 和 Xcode 4 2 1 我安装了libpng使用端口 我试图在我的应用程序中加载 PNG 图像 但出现链接器错误 Undefined symbols for architecture x86 64

随机推荐

  • javax 邮件:UTF-8 编码问题

    我已经看到了几个与此相关的问题 但没有一个能解决我的问题 我有一封带有 pdf 附件的中文电子邮件 所有文本在包含在多部分电子邮件中之前都是有效的 UTF 8 Problem 电子邮件中的文本到达收件人时是垃圾字符 电子邮件标头显示其编码不
  • 从 iPhone 中的固定数字集生成随机数

    假设我有一组数字 即 1 6 3 5 7 9 我只想从这组数字生成随机数 即生成的数字应该是随机的 并且应该仅来自这些数字 1 6 3 5 7 9 标准 C C 函数也可以 arc4random set count 随机索引
  • python:如何根据 1 个列表中的内容从 2 个列表中删除值

    我有 2 个号码列表 其中一个名为xVar另一个叫yVar 我将使用这两个元素在图表上绘制 X 和 Y 值 它们都具有相同数量的元素 通常情况下 我只会绘制 ax scatter xVar yVar s 2 color tomato 我想从
  • 访问 symfony 2 中的 AppKernel 环境变量

    我正在使用 symfony 2 我们有 2 个配置 开发版和生产版 我需要知道是否可以找出我在实体或模型中使用的是哪一个 我正在寻找与 AppKernel php 中找到的代码类似的内容 this gt getEnvironment 如果我
  • 使用 Next.js 检索服务器端数据并保存在上下文中

    我希望能够从服务器端 API 检索数据 并将其加载到 React 上下文中 以便使其可供我的应用程序中的任何组件使用 我尝试过各种事情 但似乎没有什么能让我完全做我想做的事 我尝试过的一些事情包括 getServerSideProps 这允
  • Codeigniter 删除所有 html 标签

    你如何删除ALL带 codeigniter 的 HTML 标签 我猜你必须使用 PHP 函数strip tags 但我想要类似 XSS 过滤的全局设置 Thanks 如果您指的是使用input方法 是的 你可以从技术上开放system li
  • Angular2 反应式表单 - 使用下拉菜单设置表单字段的默认值

    如何设置 Angular 2 反应表单中所有表单字段的默认值 这里是plnkr https plnkr co edit GKguMzZbr0kzrraPP73f p preview重现问题 下面的代码不会更新下拉值 因为它有一个与之关联的对
  • 使用 R 检索期刊论文的引文

    使用 R 我想获取引用科学期刊论文的文章列表 我所拥有的唯一信息是文章的标题 例如 用福林苯酚试剂测量蛋白质 有人能够通过制作一个我可以使用的可复制示例来帮助我吗 这是我到目前为止所尝试的 R 包fulltext似乎很有用 因为它允许检索链
  • 概览显示重复的 EF 查询

    我的 MVC 4 应用程序运行速度太慢 出现问题 我安装了 Glimpse 来分析该应用程序 我想我已经找到了部分问题 我的许多 EF 查询似乎运行了两次 这是我的 HomeController 它正在发出一些警报 HttpGet publ
  • 将 URL 参数传递给redirect_to :root

    这可能是一个非常愚蠢的问题 但几乎不可能通过谷歌搜索答案 是否有可能 如果可以的话如何 做类似的事情 redirect to root registered gt true 然后将链接到http myurl com registered t
  • 如何告诉 scons 使用 C++11 标准

    我无法找到如何告诉 scons 接受 c 11 标准 SConstruct 文件 env Environment CPPPATH usr include boost CPPDEFINES LIBS SCONS CXX STANDARD c
  • 我如何在 FMX 中使用 showmodal?

    我正在尝试为我的主 Android 表单创建一个登录表单 所以我做了这样的事情 var CanGo Boolean begin Application Initialize Application CreateForm TForm1 For
  • OpenCV 将一种颜色转换为另一种颜色

    我有一张灰度图像 我想将所有白色像素 纯白色 255 转换为黑色 0 仅那些颜色 而不是所有灰度 我怎样才能做到这一点 谢谢你 罗恩 您可以执行以下操作 使用阈值设置图像inRange http docs opencv org module
  • Rxjava tolist() 未完成

    我的 RxJava 调用链有问题 toList 无法正常工作 我猜想 toList 需要一些东西来完成 这就是它被卡住的原因 但我不知道如何解决这个问题 The code mModel getLocations flatMapIterabl
  • “ApacheCordovaToolsPackage”包未正确加载

    我刚刚安装了 VS 2015 Professional 并尝试安装 Visual Studio Tools for Apache Cordova 它成功完成 然而 当我尝试为此创建一个新项目时 它就卡在那里了 然后 如果我打开 VS 201
  • Ant 和可用任务 - 如果某些任务不可用怎么办?

    当我使用该任务时 仅当资源 例如文件 可用时 该属性才会设置为 TRUE 如果不是 则该属性未定义 当我打印属性的值时 如果资源可用 则返回 true 否则仅打印属性名称 如果资源是 有没有办法将属性设置为某个值not可用的 我尝试在可用检
  • 请解释一下这个高阶函数的javascript代码

    我正在按照 Eloquent JavaScript 书学习高阶函数 我无法理解这段代码 为什么 布尔值 作为嘈杂的第一个参数传递 这应该是改变其他功能的功能 我只是不明白它是如何工作的 function noisy f return fun
  • 使用可变属性名称反序列化 JSON

    我想反序列化 jsonhere http feiertage jarmedia de api jahr 7Byear 7D 与此类似 BW Neujahrstag datum 2017 01 01 hinweis Heilige Drei
  • Admin 中 Django 的外键参考

    我一直在尝试在 Django admin 中解决这个问题 但仍然找不到文档 In my 模型 py 我有以下代码 from django db import models class Post models Model title mode
  • 将 Mma 7 中的 Caps lock 键重新映射为 Esc

    TLDR 如何在 Mma 7 中将 CapsLock 转换为 ShortNameDelimiter I like pretty text in my mma notebooks and often define functions as f