Как стать автором
Обновить

Комментарии 39

Вызов меню рефакторинга на Windows это Ctrl+Alt+Shift+T.

Си-мажорный септаккорд, он же B7(или H7 в другой традиции записи), выглядит настолько же устрашающе :)

И при этом берется на первом-втором ладу довольно легко.

Именно поэтому я и привел в пример его, а не что-то более сложное, типа F#m7.

Как альтернатива, хотя где-то и более "многоклавишная", есть Find Action

Не понял проблему, неудобные биндинги по умолчанию? Так можно настроить. Тем более у jetbrains обычно несколько keymap-ов на выбор. Например в keymap resharper rename это F2.

Зачем вам больше 36-ти биндингов, вы реально ими пользуетесь каждый день? КМК ходовых биндингов на каждый день нужно намного меньше: rename, go to everything, go to everywhere, go to declaration/implementation, comment/uncomment, fold/unfold... что ещё? ну может ещё 2-3 биндинга. Для всего остального можно пользоваться клавишей контекстно меню.

Логики нет? Ну нет да, но когда привыкнешь к сочетаниям то уже пофиг. Да и поменять на более логичное всегда можно.

Ух ты, интересно. Надо будет попробовать.

Тоже пользуюсь KeyPromt X, специально во всех IDE от JB выставил одинаковую раскладку и переучился на нее (rider, pycharm и т.д.), но все ровно конца и края этим хоткеям нет, да и нечастые хоткеи часто забываются. Однозначно попробую ваш плагин, спасибо за статью, очень интересный подход.

А можно ссылку на гитхаб?

И можно ли сделать leader key доступным, когда окно intellij не в фокусе (на Ctrl + shift + L, например)?

Ссылочка на гитхаб вот https://github.com/Mishkun/ataman-intellij

Насчёт того чтобы открывать лидер когда окно не в фокусе, я не знаю о такой возможности, и быстрый поиск по API ничего не дал. Будь у intellij какой-нибудь daemon, которому можно было слать экшоны - это стало бы возможно, но его нет

Так через AutoHotKey какой-нибудь, наверное, можно сделать? Типа, если пришла комбинация кнопок, и intellij присутствует в списке активных процессов, и его окно не в фокусе — передать этому окну фокус и повторить комбинацию кнопок туда.

Ни разу не возникало описываемой автором проблемы при работе JB. Все базовое на хоткеях, в которых не больше 3 кнопок. Нажать их вообще не проблема. Все что нужно реже - вынесено на тулбар иконками. Все что ещё более редко - всегда проще либо мышкой нажать в соотв. меню, либо поиском и нажать. Я, естественно, за то, чтобы плагинов было как можно больше, но смысла вот такого - честно - не понимаю. И если оно что-то и сэкономит -то, имхо, какие-то крохи.

А вот мне лично клавиш Идеи "не хватает", т.е. все базовые сочетания уже заняты, и если я хочу забиндить доп.действия, приходится извращаться, и о мнемонике уж говорить и не стоит вообще. Появляются всякие абстрактные Ctrl+Alt+Shift+Буква. В том же Виме проблема решена изящно - мнемоникой, поэтому, работая в Виме, в уме я каждый раз мысленно конструирую команды Вима как предложения на его "языке" - это очень удобно.

Вы серьёзно используете десятки хоткеев каждый день?

Ну да. У меня около 20 кастомных комбинаций, и по максимуму использую дефолтные комбинации, коих тоже несколько десятков. Это же удобнее и быстрее, чем "работа мышкой", разве это не очевидно? Что вас тут смущает?))

Ну так я еще спамлю в джетбрейнс тикеты по поводу того, что не все экшны байндятся))

Какие действия? Вот возьмем для примера ежедневные действия:

Навигация:
1. F2 / Shift+F2
2. Ctrl+Shift+Bk
3. Ctrl+Alt+Left/Right
4. Ctrl+Shift+F (и в диалоге поиска: Alt+S, Alt+P)
5-10. работа с результатами поиска: Alt+3, Alt+Down, Ctrl+Enter, Del, Ctr+Alt+Up/Down
11. Ctrl+G
12-13. Ctrl+Shift+Цифра/Ctrl+Цифра

Навигация по структуре и вызовам:
14. Ctrl+U
15. Alt+F7
16. Ctrl+Shift+F7
17. Ctrl+Alt+B
18. Ctrl+Shift+B
19. Ctrl+B
20. Ctrl+F12
21. Alt+Up/Down
22. Alt+Left/Right
23. Ctrl+E
24. Alt+F1
25. Ctrl+Shift+F8

Работа с гитом:
26. Ctrl+Shift+Alt+Up/Down
27. Ctrl+Alt+Shift+Z
28. Ctrl+Alt+Z
29. Ctrl+D (в окне истории)

Запуск и компиляция:
30.Ctrl+F9
31-32. Alt+Shift+F9/F10
33-34. Ctrl+Shift+F9,F10

Настройки:
35. Ctrl+Alt+S
36. Ctrl+Alt+Shift+S

Создание и рефакторинг:
37. Alt+Ins
38. Ctrl+Alt+M

Редактирование текста:
39. Ctrl+W/Ctrl+Shift+W
40. Ctrl+D
41. Ctrl+Z/Ctrl+Shift+Z

Работа с окнами:
42. Ctrl+Shift+F12

Комбинации плагинов:
43-44. FunkySearch: Ctrl+Shift+S/Ctrl+Shift+D

Копирование:
45. Ctrl+Shift+C

Просмотр:
46. Ctrl+Q
47. Ctrl+Shift+I

Поиск:
48. F3/Shift+F3

Всякая всячина:
49. F4
50. F5
51. Shift+F6
52. Клавиши тулзовых окон: Alt+1, Alt+9, Alt+0 и т.д.
53. Ctrl+Space
54. Ctrl+J и Tab
55. Ctrl+M
56. Ctrl+Up/Down
57. Alt+Home

И еще пара десятков кастомных комбинаций на доп.действия, такие как увеличить/уменьшить размер шрифта (полезно при демонстрациях экрана), pin/unpin окон типа Search Results, скопировать строку, Close All Notifications, и т.д.

Это то, что сходу вспомнилось, т.е. это частые ежедневные действия. И еще может десяток-другой редких действий. Вот и выходит примерно 70-80 комбинаций. При анализе конечно можно увидеть, что половина этих хоткеев относятся к классическим, типа Ctrl+Z/Ctrl+Shift+Z - это классические undo/redo. Таким анализом не занимался, но даже если половину указанных выше хоткеев списать на "классику", останется ещё 30-40 хоткеев, которые не имеют мнемоник и для которых данный плагин будет уместен. Например, хоткеи типа Ctrl+J или Ctrl+Alt+B вообще не имеют мнемоник и запоминаются чисто "на мышечной памяти" от постоянно употребления.

А почему эти действия нельзя выполнять тычком мышки?

Таже навигация по гиту?

У меня хоткеев для частого использования около 20, все остальное - это действия мышкой, если надо.

Т. е. если мне надо структуру или гит за исключением коммита - это делается мышой. Она для этого и дана.

НЛО прилетело и опубликовало эту надпись здесь

>мне надо структуру или гит
90% этих задач прекрасно делаются клавиатурой, часто это быстрее и удобнее чем мышкой. Хотя с гитом мне больше нравится работать в SmartGit, он тоже позволяет работать с помощью клавиш - делать и мерж, и изучение изменений, и прочие операции.

На самом деле замечал, что многие вещи, если их сделать проще в использовании, становятся внезапно нужными и даже необходимыми. Я до того как начал пользоваться Emacs вообще не понимал, как люди пишут кастомные плагины для IDE и что там вообще можно такого сделать. Это потому что в IntelliJ написать плагин – создать и настроить проект, разобраться в API, почитать доки, помучать gradle. А в Emacs – это добавить пару строчек в свой конфиг. Но решения находятся, есть замечательный LivePlugin, который сильно упрощает написание таких мелочей. Ataman так и родился, как один класс в конфиге LivePlugin.

Суть моего спича выше в том, что если уменьшить трение, то многие вещи начинают быть удобнее. В моём конфиге несколько десятков биндингов и то, я каждую неделю добавляю новые

Я не знаю как можно закрывать таб ctrl + f4 вместо ctrl + w

Конгениально, будем пробовать!

Я когда учился играть на гитаре так сильно пальцы не утруждал.

Вы хотите сказать что после работы в IDEA обучение игре на гитаре будет легче.

Подскажите, пожалуйста, как написать баиндинг что бы запускать External Tool, по имени? Спасибо.

"Tool_External Tools_Имя Твоего External Tool с Пробелами"

Попробуйте Quick Lists: Settings / Appearance & Behavior / Quick List
Затем задать leading shortcut на Quick List в Settings / Keymap

 От квиклистов этот плагин отличает две важные вещи:

1) В квиклистах нужно либо использовать 0-9 для выбора либо quicksearch. Циферки не запомнишь толком, а квиксёрч для меня это слишком медленно и не сильно лучше чем поиск по экшонам. Я прокликиваю биндинги быстрее чем атаман успевает отрисоваться =)

2) Я пользуюсь IdeaVim и мой leader key это пробел. Поэтому без специального хака с Transparent Leader который проверяет нет ли редактируемого поля в фокусе не обойтись. Я вообще этот плагин сделал для того чтобы лидер использовать вне редактора, так-то можно и в IdeaVim конфиге лидер прописать, но он работает только в активном editor-е, а если сместить фокус на какой-нибудь logcat, то нет

Разумно, да. Про первый пункт особенно согласен. Можно было бы улучшить конфигурирование Quick List и разрешить указывать мнемоники, но вообще функциональностью Quick List настолько редко пользуются, к сожалению, поэтому всегда находятся задачи поважнее

Лучше уж отрефакторить Second Stroke биндинги, чтобы можно было их делать больше двух =)

Ого, пользовался таким в Visual Studio и не знал что это такая распространённая фича. Хотя там комбинации все сильно короткие

как вариант - включить internal mode и сделать help -> Find action -> dump keyboard shortcuts

Спасибо, частично получилось. В отчете не все экшены, возможно, .только те, на которые назначены шорткаты.

Идея хорошая и вроде как в windows это должно работать по нажатию Alt - вы попадаете в меню и там уже переходите по подпунктам нажимая соответствующие клавиши.

Если ты имеешь в виду клавишу, которая открывает контекстное меню – Ataman не ограничен лишь им. Ты можешь прописать в конфиге любой экшн, а не только доступные из текущего контекстного меню

Я про верхнее меню (контекстное - это про правый клик мышью).

Тут хорошая статья есть про шорткаты и удобство http://xahlee.info/kbd/banish_key_chords.html. Пункт "Microsoft's Alt Key System" как раз про то что я описал.

Статья (да и весь блог) классны, схоронил

Это то, чего мне не хватало для полного клавиатурного счастья! Спасибо огромное! :)

Чётко получилось, это мега удобно, спасибо!!!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации