开发者

Textmate tab and de-tab selected block

Recently switched to Textmate on Mac for coding. On PC when ever I want to tab in or out a block of code I just highlight and press tab or shift+tab to move it in our out. It's very useful when you are adding an extra loop or conditional statement to a block of code to keep everything tidy and neatly indented开发者_如何学编程.

On Textmate however when I try this it just replaces my selected text with a tab. So is there a way to do tab and de-tab lines of code in textmate?


Indent: Alt+Tab

Un-Indent: Shift+Alt+Tab


the hotkey is command-left bracket to move left and command-right bracket to move right (the buttons next to 'p')

heres a link to more hotkeys and such http://projects.serenity.de/textmate/tutorials/basics/


You can use Shift+Tab to decrease indent; You just need to make and assign a macro. You can reuse this technique to accomplish a great many things.

  1. Enter some text, and intend them, this is mostly for feedback.

  2. Click the Record Macro Button

Textmate tab and de-tab selected block

  1. Use ++ (aka; Shift + Option + Tab) to decrease the indentation.

  2. Click the record button to stop recording the macro.

  3. Use the Edit menu or ++M to save your macro;

    Textmate tab and de-tab selected block

  4. Saving will prompt you to create a new bundle*, or add your macro to an existing bundle.

  5. Add a Key Equivalent by clicking in the field and pressing +

  6. Your bundle-macro should look like the one below, simply Save and you're done! TextMate will now decrease indent on +

Textmate tab and de-tab selected block

*: (as noted by u/PatrickT) Sadly the create new bundle functionality has not yet been implemented, and you must choose to add to an existing bundle. You can still create a bundle via Bundles -> Edit Bundles then Command + N.


As an alternative, you can change the keybindings, see Link

Here is what I did:

  • Install Link
  • Go to File -> Open -> User Key Bindings, this will create/edit ~/Libary/KeyBindings/DefaultKeyBinding.dict
  • Add a binding, for the action enter shiftRight: (indent) manually (this is a TextMate specific action and not in the pre-populated actions list)
  • Choose a shortcut, I used cmd+alt+right
  • Do the same for the action shiftLeft: (un-indent, I used cmd+alt+left)
  • Save and then restart TextMate

I used a shortcut with arrow keys as my right hand is already on the arrow keys when I am selecting multiple lines, so this is a good fit.

The reason why I did it was because I have a german keyboard and alt+tab/alt+shift+tab don't work for me since I am using Witch for app-switching using these exact shortcuts.

EDIT: cmd+alt+left/right don't work when you have multiple tabs open, as they are used for navigate to next or previous tab in TextMate... seems this cannot be changed or overridden (I tried Setting Shortcut Keys in Textmate). Looking for an alternative shortcut now.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜