Mac Textmate shortcut key problems

Greetings,

I'm evaluating RM for use in our development group out our company, and I've run across some keymap issues. We're coming from Textmate, so the natural thing to do is use the the Textmate keymap. I'll list what I've run across so far.

This first one is Dvorak-specific and affects only me, and doesn't seem to be affected by the keymap choice.

Commenting a line using CMD-/ doesn't work. When I attempt to remap the shortcut to CMD-/, when I type that combination, it shows up in the 'Add Shortcut' dialog as CMD-{ which is wrong on two levels, first, it should be CMD-/ in the first place, and second, if it were to be bound in qwerty, that would be CMD-[ not CMD-{

Strangely enough, when I accept that binding and accept removing the conflict, the menu shows that the key is bound to CMD-[ instead, which is what it is actually bound to, although the shortcut editor still shows CMD-{

In fact, after some more investigation, it seems that most of the punctuation keys are not mapped correctly at all. I found these other errors by trial in the Assign Shortcuts dialog:

CMD-' = CMD-Q
CMD-. = CMD-E
CMD-= = CMD-}
CMD-, - seems to work, but I think this one is intercepted by OSX for 'Preferences'

There was one post way back in 2006 about a similar, but not exactly the same problem. The poster mentioned CMD-} instead of CMD-{ for the commenting problem.

The second problem is that there seems to be a lot of conflicts in the Textmate keymap. Here are a few I've found, but is by no means an exhaustive list:

KeyCombo(operation) - Conflicts with
----------------------------------------
option-F1(Select In...) - [Main Menu | View | change view]
CMD-R - Assigned to [Other | Reload Sources]
^N (New) - Assigned to [Main Menu | Code | Generate]
Not sure which key this is, but it is a mirror image of the Backspace (Delete) - [Other | Exclude]
CMD-P( Preview) - [Other | Show/Hide Path text]
CMD-Enter(Show Source) - [ Editor | Actions | Split Line]
CMD-N(Class) - [Other | New Folder]

It seems to me that Mac Textmate users are a target market that RM would be trying to lure away from Textmate, these probably should be fixed. I know I was put off of RM at the beginning because of these issues, since I, like many other Mac users, live by keyboard shortcuts.

I also want to use the Textmate keymap in Gnome on Linux. There seems to be a problem with META in that case. I know there is a MacOS keymap in Gnome, but since I also use Dvorak, I can't use that option yet. I'm going to get a hardware solution for Dvorak soon, so I'll try setting the Gnome keymap to MacOS and try the Textmate keymap in RM when I can. Any helpful comments on that? I did see http://www.jetbrains.net/devnet/message/5238106#5238106t that mentioned that there was a Meta key problem, and the response, from a Jetbrain _lead_ developer was very troubling to me. His attitude is the wrong attitude to take. It seems like a very fixable problem, and to say "you shouldn't do that" is not very customer-friendly. I'm hopeful this is not the sort of customer service we can expect from Jetbrains. Many of us have to use one OS at work, and another OS at home, we should be able to select either one, regardless of platform, and use that if we wish and have a consistent interface if it is possible.

I'm running Rubymine 1.1 on OSX - 10.5.7

2 comments
Comment actions Permalink

Hello,

In fact, after some more investigation, it seems that most of the punctuation keys are not mapped correctly at all.

Thank you for the feedback. We are not experienced in using TextMate so if our users find some bugs in TextMate keymap we will try to fix it with pleasure.

I found these other errors by trial in the Assign Shortcuts dialog:

CMD-' = CMD-Q
CMD-. = CMD-E
CMD-= = CMD-}

Excuse me, I didn't understand this. Could your explain a bit more detailed?

KeyCombo(operation) - Conflicts with
----------------------------------------
option-F1(Select In...) - [Main Menu | View | change view]
CMD-R - Assigned to [Other | Reload Sources]
^N (New) - Assigned to [Main Menu | Code | Generate]
Not sure which key this is, but it is a mirror image of the Backspace (Delete) - [Other | Exclude]
CMD-P( Preview) - [Other | Show/Hide Path text]
CMD-Enter(Show Source) - [ Editor | Actions | Split Line]
CMD-N(Class) - [Other | New Folder]




Actions have different visibility context, so it is normal when actions may have the same shortcuts, and it will not lead to conflicts. E.g. "Reload Sources" action is available only in editor field of Rails Console, thus conflict with "Run" action will not affect anybody. Also "Show Source" action is usually applicable in panels with trees of elements(methods/classes/tests suites/../usages) and "Split Line" is available only in source code editor.

There was one post way back in 2006 about a similar, but not exactly the same problem. The poster mentioned CMD-} instead of CMD-{ for the commenting problem.

If we are thinking about the same post, that post was related to indent/unindent action because we accidentally swapped shortcuts for them.


Comparing to TextMate RubyMine has more actions and specific shortcuts(e.g. for refactorings, version control, debugging, advanced navigation). So we are looking for some compromise which allow TextMate users to migrate easily. E.g. some times it's quite unnatural for us to remap some important RubyMine feature to shortcut of more rare TextMate feature. We will appreciate any help of TextMate users. May be we should post here large list of RubyMine's actions and then discuss TextMate style shortcuts for them?

0
Comment actions Permalink

Roman.Chernyatchik wrote:

Hello,

In fact, after some more investigation, it seems that most of the punctuation keys are not mapped correctly at all.

Thank you for the feedback.

       You are quite welcome.


We are not experienced in using TextMate

        Well, that is understandable

I found these other errors by trial in the Assign Shortcuts dialog:


CMD-' = CMD-Q
CMD-. = CMD-E
CMD-= = CMD-}

Excuse me, I didn't understand this. Could your explain a bit more detailed?

It may help to show you how to reproduce this.


In OSX, turn on the Dvorak Keymap. You can do this by going to System->International->Input Menu, Scroll down until you see 'Dvorak' (Not Dvorak-Qwerty), checkmark it, and make sure that 'Show Input menu in menu bar' is checked. Now, you can select between your normal keyboard and Dvorak from the menu bar. Go to Rubymine, select Settings->Keymap, use an editable keymap, select any menu item, Press the 'Add Keyboard


Shorcut'  button. Now, make sure the Dvorak keyboard is selected in the menu bar and press CMD-[ as if you were going to add CMD-[ as the keyboard shortcut. You should see it show CMD-{ in the dialog. This is wrong. It should be CMD-/ in Dvorak. Try CMD-Q, this is wrong too, it should be CMD-', Try CMD-E, this is wrong, it should be CMD-. (that is CMD-dot)  I haven't tried all of the combinations, but this should give you an idea what I'm talking about.


KeyCombo(operation) - Conflicts with
----------------------------------------
option-F1(Select In...) - [Main Menu | View | change view]
CMD-R - Assigned to [Other | Reload Sources]
^N (New) - Assigned to [Main Menu | Code | Generate]
Not sure which key this is, but it is a mirror image of the Backspace (Delete) - [Other | Exclude]
CMD-P( Preview) - [Other | Show/Hide Path text]
CMD-Enter(Show Source) - [ Editor | Actions | Split Line]
CMD-N(Class) - [Other | New Folder]


Actions have different visibility context, so it is normal when actions may have the same shortcuts, and it will not lead to conflicts. E.g. "Reload Sources" action is available only in editor field of Rails Console, thus conflict with "Run" action will not affect anybody. Also "Show Source" action is usually applicable in panels with trees of elements(methods/classes/tests suites/../usages) and "Split Line" is available only in source code editor.


Well, when I used the Textmate keymap, and tried to go to an RSpec test in one of my projects, and selectively ran a single test by pressing CTRL-SHIFT-F10, that worked. But when I then tried to run the same test again by pressing CMD-R, while still in the same RSpec file nothing happened. CMD-R was listed as the shortcut that would select 'Run' but nothing would happen when I pressed that key combo. When I then went to the keymap editor, copied the Textmate keymap and tried to re-assign CMD-R, I saw the message that there was a conflict. When I pressed OK, and allowed the conflicting shortcut assignment to be removed, CMD-R started working. So you can see how I might have thought that it was the conflict causing the trouble. Does the same thing happen to you? BTW, this has nothing to do with Dvorak, it happens the same way using QWERTY. I can understand how the editor context should make a difference, but it doesn't seem to be in the case I mentioned. Of those other ones I listed, I didn't actually try, I just saw that there were conflicts listed when I looked at them in the shorcut assignment dialog .




There was one post way back in 2006 about a similar, but not exactly the same problem. The poster mentioned CMD-} instead of CMD-{ for the commenting problem.

If we are thinking about the same post, that post was related to indent/unindent action because we accidentally swapped shortcuts for them.


We probably are talking about the same post, but it might not matter. These are probably different issues altogether. The post I mentioned was very old.

Comparing to TextMate RubyMine has more actions and specific shortcuts(e.g. for refactorings, version control, debugging, advanced navigation). So we are looking for some compromise which allow TextMate users to migrate easily. E.g. some times it's quite unnatural for us to remap some important RubyMine feature to shortcut of more rare TextMate feature. We will appreciate any help of TextMate users. May be we should post here large list of RubyMine's actions and then discuss TextMate style shortcuts for them?

I think it is a good place to start. We should try to map all of the RubyMine features that are similar to Textmate to Textmate mappings, and for those RubyMine features that have no analog in Textmate, leave them alone, or if they conflict, then find a good place for them, but the most important thing is to have RubyMine features that are in Textmate mapped to Textmate mappings, and go from there. It would be heplful if users coming from Textmate could have input in the process.

I know it is a pain, but I think it will pay off for you guys in the long run.

0

Please sign in to leave a comment.