更改树视图的键盘映射:在Atom中切换?

时间:2014-03-30 13:13:39

标签: keymapping atom-editor

我开始定制Atom编辑器,并且试图更改树视图的键映射:切换。

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

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

但它没有用。

查看首选项 - >键绑定我看到它列为我期待:

ctrl-t Tree View:Toggle User .editor

我做错了什么?

更新

更改为:

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

没有解决问题。

Key Binding Resolver显示该命令已被识别,但它没有切换树视图。见这个截图:

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

对此有何其他想法?

3 个答案:

答案 0 :(得分:6)

我遇到了同样的问题!这是一个痛苦的屁股,因为我需要使用自己的快捷方式,但原子的键绑定不同于我的拉丁语 - qwerty键盘,所以在玩原子和寻找一些好的信息,我出来了这个溶液:

问题:

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

或者,如果我想' @' ,我需要输入 Ctrl-Alt-q ,但Atom的键绑定会执行此操作' autoflow:reflow-selection'

解决方案:

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

2.2。要修改它,请点击要修改的键绑定旁边的复制并粘贴小图标,它位于按键列。 (它将复制您需要的代码行,以便您可以对其进行修改)

3._复制键绑定后,转到文件 - >打开键盘,然后打开带有keymap.cson文件的选项卡。将光标放在末尾,然后粘贴在步骤#2中复制的行。它应该显示如下:

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

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

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

现在当我在原子编辑器中输入 Ctrl-Alt-q 时,它最终显示了arroba!如果你想让它做其他事情,而不是写'取消设置!' 你只需要放置你想做的任何事情。

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

在这里,我发布了我在keymap.cson中所做的更改,以便使用我的原子编辑器和我的latin-qwerty键盘。

'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'

干杯!

答案 1 :(得分:4)

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

'.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)。因此,当编辑器处于焦点时,树视图将不会立即切换。解决此问题的最简单方法是为编辑器添加键绑定:

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

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

现在,无论编辑器树视图是否处于焦点位置都不重要,但仍会触发切换。


最后的想法

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

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

答案 2 :(得分:2)

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

  1. 如果您修改了keymap.cson,请重新编辑编辑器。
  2. 如果更改任何键绑定的值,请为您更改的功能创建新的键绑定。 e.g。
  3. 我遇到了问题@并且我使用此行修复了

    使用包> 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'

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

    希望它适用于你