Ctrl+Tab Switcher in Maia

Maia brings a new powerful action Ctrl+Tab that allows you to switch between open files in editor and tool windows. It works similar to Alt+Tab on Windows or ⌘+Tab on Mac.



There are two columns: tool windows and open files (tabs). Navigation is available through the use of navigation keys and Tab (forward) or Shift+Tab (backward) keys.

Is there anything else you think would be handy to have in Switcher Panel?

This entry was posted in New Features and tagged . Bookmark the permalink.

31 Responses to Ctrl+Tab Switcher in Maia

  1. Patrick says:

    Nice work. looks great and useful :)

  2. Leszek says:

    Cool feature!
    I have a mac. How to move to the left column? By clicking on Tab or Shift+Tab I can only navigate on the right column.
    It would be nice to navigate by key arrows on keyboard, but for Ctrl+arrows in mac we have change of spaces…

  3. Konstantin Bulenkov says:

    Is it your custom shortcut? We tested it on Mac and navigation keys work fine. So, to move to the left column just use LEFT key.

  4. anders says:

    I would like to change the key mapping for this to something less awkward, like alt-a, but I can’t find this in the keymap.

  5. Another thing I’d like to get to via the keyboard is the configuration selection menu so I can choose a new run (or debug) target.

  6. poko says:

    i am on maia 10372 (9M1) (os x) but ctrl+tab does not do anything. Any ideas? Thanks Peter

  7. Leszek says:

    I have polish version ov Mac OS X 10.5. My default key for switching between spaces is ctrl+arrow.

    Maybe the issue is in another place. When I hold off ctrl+tab the popup disappeared. I have to hold on ctrl key to make it still visible.

  8. Konstantin Bulenkov says:

    That’s correct. You have to hold on control key while switching between elements. Look at MS Windows Alt+Tab or MS Visual Studio 2008 Ctrl+Tab

  9. Tobin says:

    Is this available in Milestone1? I can’t seem to get it to work on my mac.

  10. Eugene Kirpichov says:

    How about numbering the files with 0..9,a..z and toolwindows with Shift+(0..9,a..z)? Then switching to a tab can be done with, for instance, Ctrl-Tab,3.

  11. Leszek says:

    It isn’t bad idea, but then I have to look at keyboard to find the proper number. Using arrows is much faster and easier.

    For me, the best solution seems to be alt(option)+tab. Then I can use arrows. What do you think?

  12. Leszek says:

    This feature is available in build 10558.

  13. Konstantin Bulenkov says:

    2poko: it’s available since build 10558 (the latest EAP)
    2Eugene Kirpichov: you can just hold TAB and wait for a little
    2Leszek: Maybe I add alternative key to switch between panels. Like Alt or Space pressing

    2All: the latest Maia’s EAP is available here http://www.jetbrains.net/confluence/display/IDEADEV/Maia+EAP

    update: Tab is now goes through both panels. Also you can easily switch between panels by pressing Alt. Will be available starting build 10560.

  14. Chris Miller says:

    This looks promising, thanks for implementing (and pointing out!) the feature.

    One bug(?) I have noticed on WinXP. If I press Ctrl-Tab, then keep holding Ctrl but release Tab (to keep the switcher open), pressing Esc should then close the switcher (same as the WinXP Alt-Tab dialog behaves). It does, however IDEA loses focus to the Windows start menu. I’m very used to the Alt-Tab,Esc behaviour in WinXP so it would be great if IDEA could behave the same way.

    Also, the tool window ordering seems to be random? How about including the keyboard shortcuts for the tool windows, and ordering from 1. Project, … onwards. I’m not sure how you’d handle tool windows without a shortcut number. A, B, C, … perhaps?

  15. Chris Miller says:

    Hmm or how about just using Shift to toggle between the tool window list and the file list? That way you can navigate the entire dialog with combinations of just Ctrl, Shift, Tab. I think that using Shift to toggle between the two lists feels quite natural too, and doesn’t seem to interfere with Ctrl+Tab, Ctrl+Shift+Tab navigation up and down each list.

  16. A dedicated keyboard shortcut for switching between tool windows would be excellent. Although I like the way the open files and tool windows are integrated in one switcher window, having a key for switching between tool windows seems more convenient to me. No need for two hands, no need to first invoke “switch files” and then move to “switch tool windows”.

  17. Konstantin Bulenkov says:

    2Chris Miller: Ctrl+Esc is a system shortcut on Windows. Sorry. However, you can close windows by using LEFT or RIGHT keys.

    2Bas: in builds greater than 10560 use the following Ctrl+Tab, then Alt, then iterate through tool windows. Or Ctrl+Shift+Tab, Tab, Tab (Ctrl and Shift are held)

  18. Vaclav Slovacek says:

    I would welcome option to include several lastly edited files instead of currently opened tabs. I have tabs turned off and use exclusively go to class popup, which results in always having just the currently edited class in the switcher.

  19. Mark Vedder says:

    @Chris Hibbert

    You can select the Run/Debug configuration via Alt+Shift+F10. (You can change the mapping via the Keymap settings. It is under Other | Select Run/Debug Configuration). Once the drop down is open, you can start typing the name of the desired configuration to jump to it (via an inline search). Sometimes I’ll enter various configuration names with a single letter and space prefix so it acts like a simple mnemonic menu.

    If you want to get to the Edit Configuration Dialog, it becomes a two step process, Alt+Shift+F10, then Enter to open the Run/Debug Configurations dialog, which is selected by default.

    Hope that helps.

  20. Microsoft SQL Server’s enterprise management window (forget formal name) has a great UI for this same thing.

    Ctrl+Tab brings up the same type of dialog andwith Ctrl+Tab held, you can use left and right arrow to navigate within the dialog.

  21. jim popovich says:

    Just looking at the feature. I would suggest the following feature enhancement:

    (1) add a text box global somewhere or a popup w/ a means to input a filter pattern, that takes a sort of glob filename patter, if it is :
    * that means match anything
    e.g. *.xml that means we only want to see ending xml files
    e.g. c:*JF*.java means *if camel casing* anything *J*F*.java (I would toy w/ JF*.java to mean the same) Anyway you could use it here to good speed advantage. for tool window, if I want a tool starting w/ T like Todo (shown above) I enter {_} {t} or maybe {/ aka fwd slash} {t} for alternative that is faster for many people.

    (3) Then presentation, that above mentioned filter box also has a sort by: Z-a, a-Z, or LRU{ least recently used } sort order} and MRU {most recently used}

    This fast filter / greedy match / flag could be used in other places when you need to filter down a large set. And I guess you could also have another key to flip it like press {^} to flip it on and off as you type. E.g. if the filter was on and you don’t see your match press {^} to temporarily turn if off.

    Just an idea that came to me as I read this blog. But I think it would be simple and powerful.

  22. Ronny L says:

    Nice feature :) Up to now I couldn’t live without the plugin TabSwitch, but now that this feature is standard I no longer need the plugin.
    I would like to change the key binding for this feature though, but can’t find it in the keymap. On OSX cmd+tab is the OS integrated application switcher, and Opera for mac uses alt+tab, so I would like to keep alt+tab as my “tabs inside application switcher”.

    Could this feature please be configurable in the Keymap settings?

  23. Konstantin Bulenkov says:

    @Ronny: sure, you can! Go to IDEA Settings -> Keymap (IDE Settings) -> Other -> Switcher and assign your own shortcut. In case of any problems just let me know. I’m on Windows and Alt+Tab is Windows Application switcher. So, a lot of windows programs use Ctrl+Tab as a shortcut for it’s internal context switcher.

  24. Ronny L says:

    There is no “Switcher” under “Other” in my IDEA, I’m running the latest EAP (10558). I tried the search field as well. Maybe this is added inn build 10560?

    I know, Opera as well use Ctrl+Tab on windows, so I understand why this was choosen as the default keybinding in IDEA. Keybindings on IntelliJ IDEA for Mac is very Windows-like, which can be problematic on a Mac. E.g. “Resume” when debugging is F9, which on a Mac is reserved for OS functionality.

  25. Konstantin Bulenkov says:

    Ronny, you’re right. In old builds (like 10558) this action doesn’t have name. So, you’ve got two option: wait for a new build or find unnamed action in group “Other” (you can detect it by assigned shortcuts – should be Ctrl+Tab and Ctrl+Shift+Tab) and then change it.

  26. Ronny L says:

    Ahh, thanks, I found it.
    Alt+Tab now works :) But with Alt+Tab I have to hit Enter to select a tab. With Ctrl+Tab it’s enough to just let go off the keys.

  27. Konstantin Bulenkov says:

    I’ll fix it in the next build. Thanks.

  28. Ronny L says:

    Thanks Konstantin :)

  29. Steve says:

    Is also a available shortcut available which keeps this switcher on top without holding the shift key down?
    Pressing escape for example or selecting a open file could close then the window. So you have got one hand free instead pressing with one the shift key down and with the other hand selecting a file with the arrow keys. Maybe filtering like the eclipse open file list dialog does will be also useful.

  30. Konstantin Bulenkov says:

    2Steve: Ctrl+Tab is made similar to switcher controls. And all such controls require Ctrl (or Alt) holding when iterating. IntelliJ IDEA has nice action Ctrl+E which doesn’t require Ctrl holding

  31. Kyuhyun Park says:

    With Ctrl+Tab, it’s enough to just let go off the keys.
    With Mac Cmd + E, it need enter.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>