Code Monkey home page Code Monkey logo

keybindings's Introduction

DefaultKeyBinding.dict file (~/Library/KeyBindings/DefaultKeyBinding.dict) for Mac OS X, created by Brett Terpstra and based heavily on work done by Lri. Please note that these bindings won't work in all applications: TextWrangler and TextMate, for example, override these with their own settings.

Installation: Copy the DefaultKeyBinding.dict file to the ~/Library/KeyBindings/ directory (create KeyBindings if it doesn't already exist). Any open applications will need to be re-started before the key bindings will take effect --- or log out and log back in.

The repository includes a script to generate a Dash docset from your customized version of the file. See here for details.

Documentation (last updated 12/21/2023.)

Grouped items begin with the groups shortcut (if exists), followed by a subgroup (if exists) followed by the keys specified.

General Commands
Key Function
⌃y Replace yank: command with yankAndSelect for use with the kill ring (defaults write -g NSTextKillRingSize -int 6)
⌃⌥y Regular yank, only insert last register and don’t select
⌃⇧u Uppercase word
⌃⌥u Lowercase word
⌃⌥t Titlecase word
⌃⌥⇧u Uppercase current paragraph
⌃⌥⇧t Titlecase paragraph
⌃w Delete word before cursor
⌥w Select word
⌥⇧w Select word backward and modify selection
⌥⇧s Select entire line/paragraph
⌥s Select from beginning of paragraph to last character
⌃⌥⇧s Select paragraph excluding leading/trailing whitespace (same as ^$@\UF701)
⌥d Delete line/paragraph
⌃u Delete to beginning of paragraph (if this isn’t already defined?)
⌥y Copy paragraph
⌥x Cut paragraph
⌥p Paste paragraph below
⌃⌥p Yank (from kill ring) paragraph below
⌥⇧p Paste paragraph above
⌃⌥⇧p Yank (from kill ring) paragraph above
⌃⇧a Select to beginning of paragraph and copy
⌃⇧e Select to end of paragraph and copy
⌥q Cut to beginning of paragraph
⌥k Cut to end of paragraph
⌥o Blank line after current
⌥⇧o Blank line before current
⌃⌘k Move line up
⌃⌘j Move line down
⌃⌘l Indent line
⌃⌘h Outdent line (one tab or char)
⌃⌘↑ Move line up (same commands but with arrow keys)
⌃⌘↓ Move line down
⌃⌘→ Indent line
⌃⌘← Outdent line (one tab or char)
⌃⇧⌘← Full outdent - Deletes all leading space of line/paragraph (updated) (Control-shift-command-left arrow)
⌃⇧⌘→ Delete trailing space (Control-shift-command-right arrow)
⌃⌘⇧↑ Delete leading and trailing whitespace for paragraph (Control-shift-command-up arrow)
⌃⌘⇧↓ Select paragraph without leading or trailing whitespace (Control-shift-command-down arrow)
⌃⌥⇧↑ Modify selection up by paragraph (Control Option Shift Up) (Control-option-shift-up arrow)
⌃⌥⇧↓ Modify selection down by paragraph (Control Option Shift Down) (Control-option-shift-down arrow)
⌃⌥⇧← Modify selection left by word (Control-option-shift-left arrow)
⌃⌥⇧→ Modify selection right by word (Control-option-shift-right arrow)
⌘⌥⌃← Move to first Alphanumeric character of line (Control-option-up arrow Control-option-command-left arrow)
⌘⌥← Move to first non-whitespace character of line (Control-options-left arrow)
⌘⌥⇧← Select to first word of paragraph modifying selection (Options-shift-command-left arrow)
⌘⌥⇧→ Select to end of paragraph modifying selection (Option-shift-command-right arrow)
⌥⌘→ Move to last non-whitespace character of paragraph (Option-command-right arrow)
⌃⌥→ Move to end of paragraph and delete trailing whitespace (Control-option-right arrow)
⌘↩ TextMate Command-Return (Command Return)
⌘⇧↩ Insert blank line above paragraph (Command Shift Return)
⇧⌥␣ Insert space and uppercase next character (Shift-Option-Space)
⌃⇧␣ Uppercase next character (Control-Shift-Space)
⌃⌥␣ Move cursor forward with spacebar (shift-space)
⌘⌥_ Hyphenate next space and move to next word (this will kill non alphanumeric symbols and punctuation, use only on words)
⌥1 Bookmark
⌥2 Jump to bookmark
⌥⌘↩ Continue a list item with indentation and include the same delimiter (Command Option Return)
⇧⇥ Remove one tab (or character) from start of line (outdent) (Shift Tab)
⌘⌥b Bold selection (Markdown)
⌘⌥i Italicize selection (Markdown)
⌘⌥` Backtick selection (Markdown)
⌃⌘↩ Break line with double space (Markdown) (Control-Command-Return)
⌘⌥= Increase markdown header level
⌘⌥- Decrease markdown header level
⌘⌥> Increase blockquote header level
⌘⌥< Decrease blockquote level
⌃< Make selected text into paired HTML tag. Allows attributes, only dupes first word into closing tag (caveat: overwrites your pasteboard)
⌥⇧r Repeat character before cursor
⌘⇧⌦ Forward delete to end of paragraph
⌘⇧⌫ Delete to beginning of paragraph (Command-shift-delete)
⌘⌥7 Right mouse click (useless, doesn’t maintain cursor position)
⌘⌥⇧s Real, honest-to-goodnes Save As…
Multi–stroke casing commands (⌃⌥c)
⌃⌥c c Snake_case to camelCase (delete forward and capitalize)
⌃⌥c s Snake_case word break
Commenting commands (⌃⌘c)
⌃⌘c / Comment with “//”
⌃⌘c   Comment with “#”
⌃⌘c ! HTML commenting
⌃⌘c * Css Commenting
Multi–stroke Markdown commands (⌃⌘w)
⌃⌘w Force carriage return in text field
⌃⌘w Force tab in text field
⌃⌘w [ Insert reference link [selection][[cursor]]
⌃⌘w ] Insert reference [selection]: [cursor]
⌃⌘w ` Fence code (new) (Requires text selection)
⌃⌘w f Insert inline footnote marker or inline footnote (new)
⌃⌘w + Unordered list item with +
⌃⌘w - Unordered list item with -
⌃⌘w * Unordered list item with *
⌃⌘w . Numeric list item (new)
⌃⌘w 8 Convert current numbered list item to bullet, handles indentation
⌃⌘w 1 Convert current bullet list item to numbered
Headlines (removes leading whitespace after inserting hashmarks) (h)
⌃⌘w h 1 #
⌃⌘w h 2 ##
⌃⌘w h 3 ###
⌃⌘w h 4 ####
⌃⌘w h 5 #####
⌃⌘w h 6 ######
Markdown link (l)
⌃⌘w l t Create a link for selected text, cursor between () [selected text]([cursor]) (links without selected text first, these can produce a mess using multiple clipboards make a text selection before you run them)
⌃⌘w l c Create a link for selected text, inserting clipboard as url [[cursor]selected text](clipboard contents)
⌃⌘w s SearchLink Basic Link
Link as image (i)
⌃⌘w i t Same as lt, but with image syntax \!\[selected text]([cursor])
⌃⌘w i c Same as lc, but with image syntax \!\[selected text](clipboard)
⌃⌘w i d Same as lc, but with image syntax and “+” for Droplr links ![selected text](clipboard+)
Reference links (:)
⌃⌘w : t Create a reference from selected text
⌃⌘w : c Create a reference from selected text, clipboard as url
HTML commands (⌃⌘e)
⌃⌘e = =“[cursor]”
⌃⌘e e Entity &[cursor];
⌃⌘e / Https://
⌃⌘e t Make previous word into paired HTML tag
HTML Links (a)
⌃⌘e a t Insert HTML link for selected text, leave cursor in the href with “https://” selected
⌃⌘e a c Insert HTML link with clipboard as href
HTML Image (i)
⌃⌘e i t Insert image tag, any selected text is alt text, leave cursor in src attribute
⌃⌘e i c Insert image tag, clipboard as src, any selected text as alt, leave cursor at beginning of alt attribute
Surround commands (⌃⌘s)
⌃⌘s ( Wrap () no spaces
⌃⌘s ) Wrap () with spaces
⌃⌘s [ Wrap [] no spaces
⌃⌘s ] Wrap [] with spaces
⌃⌘s { Wrap {} no spaces
⌃⌘s } Wrap {} with spaces
⌃⌘s < Wrap <> no spaces
⌃⌘s > Wrap <> with spaces
⌃⌘s ' Wrap single quotes
⌃⌘s ` Wrap backticks
Jekyll Shortcuts (⌃⌘j)
⌃⌘j p Pullquote Liquid Tag (new)
⌃⌘j r Raw Liquid Tag (new)
⌃⌘j ⇧r Raw Tag for entire paragraph (new)
TaskPaper Tags (⌃⌘t)
⌃⌘t d @done (new)
⌃⌘t p // @priority() (new)
⌃⌘t n @na (new)
⌃⌘t t @today (new)
SearchLink commands (⌃⌘g)
⌃⌘g g SearchLink Syntax: Google (new)
⌃⌘g ⇧a SearchLink Syntax: Amazon (new)
Apple (a)
⌃⌘g a i SearchLink Syntax: iOS App (new)
⌃⌘g a m SearchLink Syntax: Mac App Store (new)
⌃⌘g s SearchLink Syntax: Software (new)
⌃⌘g m SearchLink Syntax: IMDB (new)
⌃⌘g b SearchLink Syntax: BrettTerpstra.com (new)
⌃⌘g p SearchLink Syntax: BrettTerpstra.com Projects (new)
⌃⌘g t SearchLink Syntax: Twitter User (new)

This documentation is generated automatically from the comments and commands in the DefaultKeyBinding.dict file. The script document_keybindings.rb is free for use, but it's specifically designed for use with my formatting in the bindings plist (i.e. it's a little finicky).

keybindings's People

Contributors

jgclark avatar opichals avatar ttscoff avatar vitorgalvao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

keybindings's Issues

Lack of install help

I suggest the readme needs a few quick notes adding to cover installation and debugging. And ideally a note on which text editors override DefaultKeyBindings.dict.

Some additional documentation…

I'd suggest a couple of additional comments in the documentation.

  1. This is tied to Cocoa apps, so the list of apps this won't work on is growing.
    • For example, does not work with Slack
  2. You cannot use symbolic links to a .dict file, you must put a copy of the file in your ~/Library/KeyBindings directory.

^w does not kill to the kill ring

^w does not kill to the kill ring

I tried looking into yankAndSelect but I could not find any osx documentation on it except a brief mention about the function here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.