Изменить раскладку для древовидного представления: переключить в Atom?

Я начинаю настраивать редактор 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'

не устранил проблему.

Key Binding Resolver показывает, что команда была распознана, но не переключает представление в виде дерева. Смотрите этот снимок экрана:

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

Любые другие мысли по этому поводу?


person Bob Rockefeller    schedule 30.03.2014    source источник
comment
Хорошо, это начало работать. Я не знаю почему. Может надо было перезапустить редактор?   -  person Bob Rockefeller    schedule 05.04.2014
comment
Если вы сомневаетесь, вы всегда можете нажать ctrl-alt-cmd-l, чтобы перезагрузить редактор, но когда дело доходит до привязок клавиш, они должны автоматически обновляться при внесении изменений в ваш файл keymap.cson.   -  person jbranchaud    schedule 06.04.2014
comment
Я думаю, что теперь это исправлено в атоме. Он отлично работает в 2017 году под Ubuntu.   -  person Adam    schedule 17.06.2017


Ответы (3)


Я прошел через ту же проблему! Это была боль в заднице, потому что мне нужно было использовать свои собственные сочетания клавиш, но привязка клавиш атома отличается от моей латинской клавиатуры qwerty, поэтому, играя с атомом и ища полезную информацию, я нашел это решение:

Проблема:

Когда я набираю в своих окнах Ctrl-Alt-\, Atom связывает клавиши Ctrl-Alt-]

Или, если я хочу '@', мне нужно набрать Ctrl-Alt-q, но привязка клавиш Atom делает вместо этого 'autoflow:reflow-selection' .

Решение:

1._ Перейдите в раздел Настройки->Привязки клавиш. Оказавшись там, в строке поиска найдите комбинацию клавиш, которую хотите изменить. Например, если я хочу изменить Ctrl-Alt-q, я набираю: Q, и он отфильтрует все сочетания клавиш с этой буквой.

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 в редакторе атомов, наконец-то появляется арроба! Если вы хотите, чтобы он делал что-то еще, вместо того, чтобы писать 'unset!', вам просто нужно указать то, что вы хотите.

Примечание. Если вы хотите узнать привязки клавиш атома, чтобы можно было изменить некоторые из них, используйте преобразователь привязки клавиш, перейдите в раздел Пакеты->Распознаватель привязки клавиш->Переключатель.

Здесь я публикую изменения, которые я сделал в своем keymap.cson, чтобы использовать мой редактор атомов с моей латинской 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'

Ваше здоровье!

person 3ryck    schedule 16.01.2015

Это достаточно легко исправить. Вы неправильно отформатировали имя команды. Это должно выглядеть следующим образом:

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

В будущем, если что-то не работает должным образом, попробуйте проверить существующие пакеты с открытым исходным кодом, которые, как вы знаете, работают, и посмотрите, сможете ли вы найти несоответствие. Например, вы можете перейти к файлу tree-view., tree-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 заключается в его настраиваемости, просто убедитесь, что вы знаете компромиссы своих настроек.

person jbranchaud    schedule 02.04.2014
comment
Спасибо за подробные комментарии. Но будь я проклят, если это не сработает. Я расширил свой первоначальный вопрос дополнительной информацией. - person Bob Rockefeller; 05.04.2014
comment
Вы уверены, что редактор был в фокусе, когда вы нажали привязку клавиш? Попробуйте изменить .editor на одну из более общих областей платформы (например, .platform-darwin. - person jbranchaud; 05.04.2014
comment
@BobRockefeller вам нужно иногда перезапускать атом, чтобы пользовательские изменения вступили в силу (все еще актуально 20 мая 2014 г.) - person JorgeArtware; 20.05.2014

Ну, у меня была такая же проблема с ATOM, я почти сдаюсь!. У меня есть ATOM workink на ПК с Windows 8.

  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'

сначала я удалил свою привязку клавиш, а затем придумал новую для команды, которую хочу перезаписать.

надеюсь, это сработает для тебя

person Sp_GerAlf    schedule 02.06.2015
comment
перезагрузка — это ключ. - person aks; 10.11.2016