vkocubinsky / SublimeTableEditor

This package is no more supported. I moved to vim.
Other
494 stars 67 forks source link

Shortcuts using `ALT` and arrow keys conflict with Mac standard text navigation #35

Closed deanishe closed 11 years ago

deanishe commented 11 years ago

ALT + left/right are move by word. ALT + SHIFT + left/right are select by word. ALT + SHIFT + up/down are select by paragraph.

These are default, system-wide text navigation shortcuts, and overriding them in a text editor is a source of much frustration.

SublimeTableEditor assigns these to row/column manipulation.

I'd suggest CTRL + ALT and CTRL + ALT + SHIFT instead.

vkocubinsky commented 11 years ago

Thanks for feedback!

Keybinding is the problem. For example standard Sublime keybinding for Mac ctrl+shift+up, ctrl+shift+down

    { "keys": ["ctrl+shift+up"], "command": "select_lines", "args": {"forward": false} },
    { "keys": ["ctrl+shift+down"], "command": "select_lines", "args": {"forward": true} },

run dashboard on my mac instead of multiple select lines.

Key binding in Table Editor most the same as in Emacs org mode. That is the reason for alt + left, alt + right.

Table Editor override these keys only when you edit table. This raise some problem when you like move word forward. Combination with ctrl maps in Sublime for the same purpose as without ctrl, look on the file Default (OSX).sublime-keymap in package Default(you can quick navigate if click Preferences -> Key Binding - Default

    { "keys": ["ctrl+alt+left"], "command": "move", "args": {"by": "subwords", "forward": false} },
    { "keys": ["ctrl+alt+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} },
    { "keys": ["ctrl+alt+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} },
    { "keys": ["ctrl+alt+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },

So one workaround for you is use ctrl + alt + right for move word forward, ctrl + alt + left for move word back.

Other option for you is make you own keybinding. Click Preferences - Package Settings - Key Binding - Default. This Table Editor Keybinding. Then make (if it is not exists) Default (OSX).sublime-keymap in User package (for quick navigation click Preference - Browse Packages and select User). Copy paste commands with 'wrong' keybinding from Table Editor keybinding file to User keybinding file and change it

[
  { "keys": ["ctrl+alt+right"], "command": "table_editor_move_column_right", "context":
        [
            { "key": "setting.enable_table_editor", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "^\\s*[\\|\\+]", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "[\\|\\+]", "match_all": true }
        ]
    },
   { "keys": ["ctrl+alt+left"], "command": "table_editor_move_column_left", "context":
        [
            { "key": "setting.enable_table_editor", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_contains", "operand": "^\\s*[\\|\\+]", "match_all": true },
            { "key": "following_text", "operator": "regex_contains", "operand": "[\\|\\+]", "match_all": true }
        ]
    }
]

Of course I can change regular expressions in future version of Table Editor, but you can repeat this operation again.

Thanks!

deanishe commented 11 years ago

Thanks for responding so quickly.

I already changed my own keybindings (those shortcuts are so ingrained, it was driving me absolutely nuts when trying to edit text in tables). My thinking was that overriding system-wide defaults isn't a good idea, but I'd never heard of org mode (not a fan of Emacs).

At any rate, thanks for the awesome package.