【问题标题】:Change keymap for Tree View:Toggle in Atom?更改树视图的键盘映射:在 Atom 中切换?
【发布时间】:2014-03-30 13:13:38
【问题描述】:

我开始自定义 Atom 编辑器,但在尝试更改 Tree View:Toggle 的键映射时遇到了困难。

我把它放在我的用户 keycap.cson 文件中:

'.editor': 'ctrl-t': 'Tree View:Toggle'

但它不起作用。

查看 Preferences->Keybindings 我看到它按预期列出:

ctrl-t Tree View:Toggle User .editor

我做错了什么?

更新:

改为:

'.editor': 'ctrl-t': 'tree-view:toggle'

没有解决问题。

键绑定解析器显示该命令已被识别,但它没有切换树视图。看这个截图:

http://cl.ly/image/3A2X1p350v2Q

对此还有其他想法吗?

【问题讨论】:

  • 好的,这开始工作了。我不知道为什么。也许必须重新启动编辑器?
  • 如有疑问,您可以随时按ctrl-alt-cmd-l 重新加载编辑器,但是当涉及到键绑定时,它们应该会在您的keymap.cson 文件发生更改时自动更新。
  • 我认为这已经在 atom 中修复了。它在 2017 年在 ubuntu 下运行良好。

标签: keymapping atom-editor


【解决方案1】:

我遇到了同样的问题!这让我很头疼,因为我需要使用自己的快捷键,但 atom 的键绑定与我的 latin-qwerty-keyboard 不同,所以在玩 atom 并寻找一些好的信息时,我想出了这个解决方案:

问题:

当我在我的窗口中输入 Ctrl-Alt-\ Atom 的键绑定是 Ctrl-Alt-]

或者如果我想要 '@' 我需要输入 Ctrl-Alt-q 但 Atom 的键绑定会这样做 'autoflow:reflow-selection' em> 代替。

解决方案:

1._ 转到设置->键绑定。到达那里后,在搜索栏中,找到要更改的键绑定。例如,如果我想更改 Ctrl-Alt-q,那么我输入:Q,它会过滤所有带有此字母的键绑定。

2._然后修改它,点击要修改的键绑定旁边的复制粘贴小图标,它位于Keystroke列。 (它会复制你需要的代码行以便你修改)

3._ 复制键绑定后,转到 File->Open Your Keymap,它将打开一个带有 keymap.cson 文件的选项卡。将光标放在末尾并将您在步骤#2 中复制的行粘贴到那里。它应该显示如下内容:

'.platform-win32 .editor, .platform-linux .editor':
  'ctrl-alt-q': 'autoflow:reflow-selection'

4._ 现在你可以改变 atom 的行为了。我将删除 'autoflow:reflow-selection' 并写下 'unset!' 以便它显示 arroba。

'.platform-win32 .editor, .platform-linux .editor':
  'ctrl-alt-q': 'unset!'

现在,当我在 atom 编辑器中键入 Ctrl-Alt-q 时,它终于显示了 arroba!如果你想让它做其他事情,而不是写 'unset!' 你只需要放任何你想让它做的事情。

注意:如果您想知道原子的键绑定以便更改其中的一些,请使用键绑定解析器,转到 Packages->Keybinding Resolver->Toggle

在这里,我发布了我在 keymap.cson 中所做的更改,以便将我的 atom 编辑器与我的 latin-qwerty-keyboard 一起使用。

'atom-workspace atom-text-editor:not([mini])':
  "ctrl-alt-[": "unset!",
  "ctrl-alt-]": "unset!",
  'ctrl-/': 'unset!'
  'ctrl-7': 'editor:toggle-line-comments'
  'ctrl-alt-8': 'tree-view:recursive-collapse-directory'
  'ctrl-alt-8': 'editor:fold-current-row'
  'ctrl-alt-9': 'editor:unfold-current-row'
'.platform-win32 .editor, .platform-linux .editor':
  'ctrl-alt-q': 'unset!'
'.platform-win32 .find-and-replace, .platform-linux .find-and-replace':
  'ctrl-alt-/': 'unset!'
  'ctrl-alt-7': 'find-and-replace:toggle-regex-option'
'.platform-win32 .project-find, .platform-linux .project-find':
  'ctrl-alt-/': 'unset!'
  'ctrl-alt-7': 'project-find:toggle-regex-option'

干杯!

【讨论】:

    【解决方案2】:

    这很容易解决。您没有正确格式化命令的名称。它应该如下所示:

    '.editor':
      'ctrl-t': 'tree-view:toggle'
    

    以后,如果事情没有按预期工作,请尝试检查您知道正在工作的现有开源软件包,看看是否能找到不匹配的地方。例如,你可以去tree-view's keymap filetree-view.cson,看看他们是如何格式化的。


    进一步改进

    您可能会注意到,因为您定义的键绑定与 编辑器 相关联,如果您将 树视图 放在焦点上,则不会触发您的键绑定。同样,查看上面的文件,您将看到一种改进方法。将键绑定绑定到平台 .platform-darwin(或任何适合您的),以便无论编辑器的哪个元素处于焦点位置都会触发它。

    '.platform-darwin':
      'ctrl-t': 'tree-view:toggle'
    

    这当然会引发不同的问题。现在,当编辑器成为焦点时,editor:transpose 的现有键绑定将优先,因为它具有更具体的 CSS 类(即.editor)。因此,当 editor 处于焦点时,现在不会切换 Tree View。解决此问题的最简单方法是同时为编辑器添加键绑定:

    '.platform-darwin':
      'ctrl-t': 'tree-view:toggle'
    
    '.editor':
      'ctrl-t': 'tree-view:toggle'
    

    现在无论是 editor 还是 Tree View 都处于焦点位置,但仍会触发切换。


    最后的想法

    在搞乱键绑定时的另一条建议是使用键绑定解析器。您可以使用cmd-. 打开它。如果您这样做并尝试按ctrl-t,您会注意到您添加的键绑定显示(以绿色突出显示)。您还会注意到您的键绑定正在禁止另一个键绑定editor:transpose。考虑使用不同的键绑定。

    Atom 的美妙之处在于它的可定制性,只需确保您了解自定义的权衡。

    【讨论】:

    • 感谢详细的 cmets。但如果这不起作用,我会被诅咒的。我已经用更多信息扩展了我原来的问题。
    • 您确定按下键绑定时编辑器处于焦点位置吗?尝试将.editor 更改为更通用的平台范围之一(例如.platform-darwin
    • @BobRockefeller 您有时需要重新启动 atom,以使自定义更改生效(在 2014-05-20 仍然相关)
    【解决方案3】:

    好吧,我对 ATOM 也有同样的问题,我几乎要放弃了! 我在 Windows 8 PC 上有 ATOM workink。

    1. 如果您修改了 keymap.cson,请重新启动编辑器。
    2. 如果您更改任何键绑定的值,请为您更改的函数创建一个新的键绑定。例如

    @@ 有问题,我用这条线修复它

    使用 Packages>KeyBinding 解析器实用程序我得到:

    ctrl-alt-q 是我的 @ 键序列

    使用我得到的 KeyBinding 实用程序: ctrl-alt-q 执行 autoflow:reflow-selection 命令

    '.platform-win32 atom-text-editor, .platform-linux atom-text-editor': 'ctrl-alt-q': '未设置!', 'ctrl-alt-7': 'autoflow:reflow-selection'

    首先我取消了我的键绑定,然后我为我想要覆盖的命令发明了一个新的。

    希望对你有用

    【讨论】:

    • 重启是关键。
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    相关资源
    最近更新 更多