summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Terpstra2011-11-15 01:40:08 -0600
committerBrett Terpstra2011-11-15 01:40:08 -0600
commita62dfd4f8aadc4d0dffbdba4916958f2bbf78cec (patch)
tree57bd00c5b53139ebcfe6ac14cf11b47ef7bfb7b6
parent858ce6712b0e6181cfb69aa897bd9edb7c0b5582 (diff)
downloadKeyBindings-a62dfd4f8aadc4d0dffbdba4916958f2bbf78cec.tar.bz2
tweaks and documentation update
-rw-r--r--DefaultKeyBinding.dict122
-rw-r--r--KeyBindings.md196
-rw-r--r--KeyList.md103
-rwxr-xr-xauto-document.rb51
-rw-r--r--readme.md614
5 files changed, 706 insertions, 380 deletions
diff --git a/DefaultKeyBinding.dict b/DefaultKeyBinding.dict
index aa1f544..eccfb7e 100644
--- a/DefaultKeyBinding.dict
+++ b/DefaultKeyBinding.dict
@@ -50,9 +50,9 @@
"/" = (setMark:, moveToBeginningOfParagraph:, insertText:, "// ", swapWithMark:, moveRight:, moveRight:, moveRight:);
// comment with "#"
"\\" = (setMark:, moveToBeginningOfParagraph:, insertText:, "# ", swapWithMark:, moveRight:, moveRight:);
- // TODO HTML COMMENTING
+ // HTML Comment
"!" = (setMark:, moveToBeginningOfParagraph:, insertText:, "<!-- ", moveToEndOfParagraph:, insertText:, " -->", swapWithMark:, moveRight:, moveRight:, moveRight:, moveRight:, moveRight:);
- // TODO CSS COMMENTING
+ // CSS Comment
"*" = (setMark:, moveToBeginningOfParagraph:, insertText:, "/* ", moveToEndOfParagraph:, insertText:, " */", swapWithMark:, moveRight:, moveRight:, moveRight:);
};
@@ -61,42 +61,46 @@
// italicize selection (Markdown)
"@~i" = (selectWord:, setMark:, swapWithMark:, deleteToMark:, insertText:, "*", yank:, insertText:, " ", moveLeft:, insertText:, "*", moveRight:, deleteBackward:);
- // increase/decrease markdown header level
+ // increase markdown header level
"@~=" = (setMark:, moveToBeginningOfParagraph:, insertText:, "# ", selectWord:, delete:, swapWithMark:, moveRight:);
+ // decrease markdown header level
"@~-" = (setMark:, moveToBeginningOfParagraph:, deleteForward:, swapWithMark:, moveLeft:);
- "^@w" = { // Markdown commands
- // force carriage return and tab in text field
- "\U000A" = (insertNewlineIgnoringFieldEditor:);
+ "^@w" = { // Other Markdown commands
+ // force carriage return in text field
+ "\U000D" = (insertNewlineIgnoringFieldEditor:);
+ // force tab in text field
"\U0009" = (insertText:, "\t");
- // Headlines
- // #x, # - ######
- // removes leading whitespace after inserting hashmarks
- "h" = {
+
+ "h" = { // Markdown Headlines
+ // 1st level Headline
"1" = (setMark:, moveToBeginningOfParagraph:, insertText:, "# ", selectWord:, insertText:, " ",swapWithMark:, moveToEndOfParagraph:);
+ // 2nd level Headline
"2" = (setMark:, moveToBeginningOfParagraph:, insertText:, "## ", selectWord:, insertText:, " ", swapWithMark:, moveToEndOfParagraph:);
+ // 3rd level Headline
"3" = (setMark:, moveToBeginningOfParagraph:, insertText:, "### ", selectWord:, insertText:, " ", swapWithMark:, moveToEndOfParagraph:);
+ // 4th level Headline
"4" = (setMark:, moveToBeginningOfParagraph:, insertText:, "#### ", selectWord:, insertText:, " ", swapWithMark:, moveToEndOfParagraph:);
+ // 5th level Headline
"5" = (setMark:, moveToBeginningOfParagraph:, insertText:, "##### ", selectWord:, insertText:, " ", swapWithMark:, moveToEndOfParagraph:);
+ // 6th level Headline
"6" = (setMark:, moveToBeginningOfParagraph:, insertText:, "###### ", selectWord:, insertText:, " ", swapWithMark:, moveToEndOfParagraph:);
};
- // links
- "l" = { // markdown link
- // create a link for selected text, cursor between () "[selected text](|)"
- "t" = (setMark:, swapWithMark:, deleteToMark:, insertText:, " [", moveLeft:, deleteBackward:, moveRight:, yank:, insertText:, " ", moveLeft:, insertText:, "]()", moveRight:, deleteBackward:, moveLeft:, setMark:, insertText:, "http://", selectToMark:); // link text
- // create a link for selected text, inserting clipboard as url "[|selected text](clipboard contents)"
- "c" = (setMark:, swapWithMark:, deleteToMark:, insertText:, " [", moveLeft:, deleteBackward:, moveRight:, yank:, setMark:, insertText:, " ", moveLeft:, insertText:, "](", pasteAsPlainText:, insertText:, ")", moveRight:, deleteBackward:, swapWithMark:); // link with clipboard
+
+ "l" = { // markdown linking
+ // create a link for selected text, cursor between () "[selected text]()"
+ "t" = (setMark:, swapWithMark:, deleteToMark:, insertText:, " [", moveLeft:, deleteBackward:, moveRight:, yank:, insertText:, " ", moveLeft:, insertText:, "]()", moveRight:, deleteBackward:, moveLeft:, setMark:, insertText:, "http://", selectToMark:);
+ // create a link for selected text, inserting clipboard as url "[cursorselected text](clipboard contents)"
+ "c" = (setMark:, swapWithMark:, deleteToMark:, insertText:, " [", moveLeft:, deleteBackward:, moveRight:, yank:, setMark:, insertText:, " ", moveLeft:, insertText:, "](", pasteAsPlainText:, insertText:, ")", moveRight:, deleteBackward:, swapWithMark:);
};
- // image
"i" = { // link as image
- // same as lt, but with image syntax "![selected text](|)"
- "t" = (setMark:, swapWithMark:, deleteToMark:, insertText:, "![", yank:, insertText:, " ", moveLeft:, insertText:, "]()", moveRight:, deleteBackward:, moveLeft:); // image link for text
- // same as lc, but with image syntax "![selected text](|)"
- "c" = (setMark:, swapWithMark:, deleteToMark:, insertText:, "![", yank:, setMark:, insertText:, " ", moveLeft:, insertText:, "](", pasteAsPlainText:, insertText:, ")", moveRight:, deleteBackward:, swapWithMark:); // image with clipboard
+ // same as lt, but with image syntax "![selected text](cursor)"
+ "t" = (setMark:, swapWithMark:, deleteToMark:, insertText:, "![", yank:, insertText:, " ", moveLeft:, insertText:, "]()", moveRight:, deleteBackward:, moveLeft:);
+ // same as lc, but with image syntax "![selected text](cursor)"
+ "c" = (setMark:, swapWithMark:, deleteToMark:, insertText:, "![", yank:, setMark:, insertText:, " ", moveLeft:, insertText:, "](", pasteAsPlainText:, insertText:, ")", moveRight:, deleteBackward:, swapWithMark:);
};
- // references
- ":" = {
- // without selected text first, these make a mess
+
+ ":" = { // references
// create a reference from selected text
"t" = (setMark:, swapWithMark:, deleteToMark:, insertText:, " [", moveLeft:, deleteBackward:, moveRight:, yank:, insertText:, " ", moveLeft:, insertText:, "]: ", moveRight:, deleteBackward:);
// create a reference from selected text, clipboard as url
@@ -105,24 +109,25 @@
// insert reference link
"[" = (setMark:, swapWithMark:, deleteToMark:, insertText:, " [", moveLeft:, deleteBackward:, moveRight:, yank:, insertText:, " ", moveLeft:, insertText:, "][]", moveRight:, deleteBackward:, moveLeft:);
- // lists
+ // + bulleted list
"+" = (setMark:, moveToBeginningOfParagraph:, insertText:, "+ ", swapWithMark:, moveRight:, moveRight:);
+ // - bulleted list
"-" = (setMark:, moveToBeginningOfParagraph:, insertText:, "- ", swapWithMark:, moveRight:, moveRight:);
+ // * bulleted list
"*" = (setMark:, moveToBeginningOfParagraph:, insertText:, "* ", swapWithMark:, moveRight:, moveRight:);
// convert current numbered list item to bullet, handles indentation
- "8" = (setMark:, moveToEndOfParagraph:,
- insertText:, "x", moveToBeginningOfParagraph:, moveWordForward:, moveRight:, moveWordForward:, moveWordBackward:, moveWordBackwardAndModifySelection:, insertText:, "* ", moveToEndOfParagraph:,
- deleteBackward:, swapWithMark:, moveLeft:);
+ "8" = (setMark:, moveToEndOfParagraph:,insertText:, "x", moveToBeginningOfParagraph:, moveWordForward:, moveRight:, moveWordForward:, moveWordBackward:, moveWordBackwardAndModifySelection:, insertText:, "* ", moveToEndOfParagraph:,deleteBackward:, swapWithMark:, moveLeft:);
// convert current bullet list item to numbered
- "1" = (setMark:, moveToEndOfParagraph:,
- insertText:, "x", moveToBeginningOfParagraph:, moveWordForward:, moveWordBackward:, moveLeftAndModifySelection:, moveLeftAndModifySelection:, insertText:, "1. ", moveToEndOfParagraph:,
- deleteBackward:, swapWithMark:, moveRight:);
+ "1" = (setMark:, moveToEndOfParagraph:,insertText:, "x", moveToBeginningOfParagraph:, moveWordForward:, moveWordBackward:, moveLeftAndModifySelection:, moveLeftAndModifySelection:, insertText:, "1. ", moveToEndOfParagraph:,deleteBackward:, swapWithMark:, moveRight:);
};
"^@e" = { // HTML
- "=" = (insertText:, "=\"\"", moveLeft:); // ="|"
- "e" = (insertText:, "&;", moveLeft:); // entity &|;
- "/" = (insertText:, "http://"); // http://
+ // ="cursor"
+ "=" = (insertText:, "=\"\"", moveLeft:);
+ // entity &cursor;
+ "e" = (insertText:, "&;", moveLeft:);
+ // http://
+ "/" = (insertText:, "http://");
// Make previous word into paired HTML tag
"t" = ( "setMark:", "moveWordBackward:", "deleteToMark:", "insertText:", "<", "yank:", "insertText:", ">", "setMark:", "insertText:", "</", "yank:", "insertText:", ">", "swapWithMark:");
"a" = { // HTML Links
@@ -179,10 +184,13 @@
// outdent line (one tab or char)
"^@h" = (setMark:, moveToBeginningOfParagraph:, moveRight:, deleteBackward:, swapWithMark:, moveLeft:);
- // same commands but with arrow keys
+ // move line up with arrow keys
"^@\Uf700" = (selectParagraph:, setMark:, deleteToMark:, moveLeft:, moveToBeginningOfParagraph:, yank:, moveLeft:, selectToMark:, moveLeft:);
+ // move line down with arrow keys
"^@\Uf701" = (selectParagraph:, setMark:, deleteToMark:, moveToEndOfParagraph:, moveRight:, setMark:, yank:, moveLeft:, selectToMark:);
+ // move line left with arrow keys
"^@\UF703" = (setMark:, moveToBeginningOfParagraph:, insertText:, "\t", swapWithMark:, moveRight:);
+ // move line right with arrow keys
"^@\UF702" = (setMark:, moveToBeginningOfParagraph:, moveRight:, deleteBackward:, swapWithMark:, moveLeft:);
// Control-shift-command-left arrow : Full outdent - Deletes all leading space (or first word) of line/paragraph
@@ -202,15 +210,6 @@
// Insert blank line above paragraph (Command Shift Enter)
"@$\U000D" = (moveToBeginningOfParagraph:, moveLeft:, insertNewline:);
- // // Page Up
- // "\Uf72c" = (pageUp:);
- // // Page Down
- // "\Uf72d" = (pageDown:);
- // // Scroll up
- // "~\Uf72c" = (scrollPageUp:);
- // // Scroll Down
- // "~\Uf72d" = (scrollPageDown:);
-
// hyphenate next space and move to next word
"~_" = (selectWord:,moveRight:,setMark:,moveWordRight:,moveWordLeft:,moveLeft:,selectWord:,insertText:,"-",moveWordRight:);
@@ -219,10 +218,8 @@
// jump to bookmark
"~2" = (swapWithMark:,centerSelectionInVisibleArea:);
- // A little vim, just as an example
-
- "$\U001B" = { // shift-escape before each command (using escape breaks other functionality)
- "d" = {
+ "$\U001B" = { // Vim commands, experimental
+ "d" = { // delete commands
// 'dd' delete line/paragraph
"d" = (setMark:, selectParagraph:, delete:, delete:, swapWithMark:);
// 'd$' delete from cursor to end of graf
@@ -232,28 +229,22 @@
// 'd^' delete to beginning of paragraph
"^" = (moveToBeginningOfParagraphAndModifySelection:, delete:);
};
+ // paste after
"p" = (moveToEndOfParagraph:,moveRight:,insertNewline:,moveLeft:, yank:);
+ // paste before
"P" = (moveToBeginningOfParagraph:, moveLeft:, yank:);
+ // Yank
"y" = (yank:);
- "5" = {
+ "5" = { // commands times 5
"d" = {
// 'dd' delete line/paragraph
- "d" = ( selectParagraph:, delete:, delete:, moveRight:,
- selectParagraph:, delete:, delete:, moveRight:,
- selectParagraph:, delete:, delete:, moveRight:,
- selectParagraph:, delete:, delete:, moveRight:,
- selectParagraph:, delete:, delete:, moveRight:);
+ "d" = ( selectParagraph:, delete:, delete:, moveRight:, selectParagraph:, delete:, delete:, moveRight:, selectParagraph:, delete:, delete:, moveRight:, selectParagraph:, delete:, delete:, moveRight:, selectParagraph:, delete:, delete:, moveRight:);
};
- "p" = ( moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:,
- moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:,
- moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:,
- moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:,
- moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:);
- "P" = ( moveToBeginningOfParagraph:, moveLeft:, yank:,
- moveToBeginningOfParagraph:, moveLeft:, yank:,
- moveToBeginningOfParagraph:, moveLeft:, yank:,
- moveToBeginningOfParagraph:, moveLeft:, yank:,
- moveToBeginningOfParagraph:, moveLeft:, yank:);
+ // paste 5 times after
+ "p" = ( moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:, moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:, moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:, moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:, moveToEndOfParagraph:, moveRight:, insertNewline:, moveLeft:, yank:);
+ // paste 5 times before
+ "P" = ( moveToBeginningOfParagraph:, moveLeft:, yank:, moveToBeginningOfParagraph:, moveLeft:, yank:, moveToBeginningOfParagraph:, moveLeft:, yank:, moveToBeginningOfParagraph:, moveLeft:, yank:, moveToBeginningOfParagraph:, moveLeft:, yank:);
+ // paste 5 times in a row
"y" = ( yank:, yank:, yank:, yank:, yank:);
};
};
@@ -262,7 +253,4 @@
"~r" = (moveLeftAndModifySelection:, copy:, moveRight:, paste:);
// Forward delete to end of paragraph
"@\Uf728" = (deleteToEndOfParagraph:);
-
- // TODO
- //
} \ No newline at end of file
diff --git a/KeyBindings.md b/KeyBindings.md
index 142364e..359d437 100644
--- a/KeyBindings.md
+++ b/KeyBindings.md
@@ -14,96 +14,106 @@ DefaultKeyBindings.dict file for Mac OS X, created by [Brett Terpstra][] and bas
*Grouped items begin with the groups shortcut, followed by the Keys specified. Items separated by commas are sequential, not concurrent.*
-| Group | Keys | Function |
-| :-------: | :---------------------: | :------------------------------------------------------ |
-| | &#x2325;z | copy character before cursor |
-| | &#x2325;r | repeat character before cursor |
-| | &#x2325;t | transpose characters |
-| | &#x2325;+ | uppercase word |
-| | &#x2325;- | lowercase word |
-| | &#x2325;. | capitalize word |
-| | ^w | delete word before cursor |
-| | &#x2325;w | select word |
-| | &#x2325;f | cut word (fold) |
-| | &#x2325;g | copy word (grab) |
-| | &#x2325;h | paste word (hit) |
-| | &#x2325;l | select entire line/paragraph |
-| | &#x2325;s | select from beginning of paragrah to last character |
-| | &#x2325;d | delete line/paragraph |
-| | &#x2325;y | copy paragraph |
-| | &#x2325;x | cut paragraph |
-| | &#x2325;p | paste paragraph below |
-| | &#x2325;&#x21E7;P | paste paragraph above |
-| | ^&#x21E7;A | select to beginning of paragraph and copy |
-| | ^&#x21E7;E | select to end of paragraph and copy |
-| | &#x2325;q | cut to beginning of paragraph |
-| | &#x2325;k | cut to end of paragraph |
-| | &#x2325;, | move paragraph up a line, inserting blank space after |
-| | &#x2325;&#x2420; | move paragraph to end of document |
-| | &#x2325;o | blank line after current |
-| | &#x2325;&#x21E7;O | blank line before current |
-| | &#x2318;&#x2325;/ | comment with "//" |
-| | &#x2318;&#x2325;3 | comment with "#" |
-[ All purpose key combos ]
-
-
-| Group | Keys | Function |
-| :---: | :--: | :------- |
-| | &#x2318;&#x2325;b | bold selection |
-| | &#x2318;&#x2325;i | italicize selection |
-|^&#x2318;w | &#x23CE; | force Return |
-|^&#x2318;w | &#x21E5; | force Tab |
-|^&#x2318;w | 1-4 | # Headlines |
-|^&#x2318;w | l,t | link text `"[selected text]( | )"` |
-|^&#x2318;w | l,c | clipboard link `"[ | selected text](clipboard contents)"` |
-|^&#x2318;w | i,t | image, selection as alt `"![selected text]( | )"` |
-|^&#x2318;w | i,c | clipboard image `"![ | selected text](clipboard contents)"` |
-|^&#x2318;w | :,t | create a reference from selected text |
-|^&#x2318;w | :,c | create a reference from selected text, clipboard as url |
-|^&#x2318;w | [ | insert reference link |
-|^&#x2318;w | +\|-\|* | lists |
-|^&#x2318;w | =,&#x2325;&#x21E7;L | new list item after current |
-|^&#x2318;w | e | entity |
-|^&#x2318;w | =,/ | http:// |
-[ Markdown-specific shortcuts (^&#x2318;W) ]
-
-
-| Group | Keys | Function |
-| :---: | :--: | :------- |
-|^&#x2318;s | ( | wrap () with spaces |
-|^&#x2318;s | ) | wrap () no spaces |
-|^&#x2318;s | \[ | wrap [] with spaces |
-|^&#x2318;s | \] | wrap [] no spaces |
-|^&#x2318;s | { | wrap {} with spaces |
-|^&#x2318;s | } | wrap {} no spaces |
-|^&#x2318;s | < | wrap <> with spaces |
-|^&#x2318;s | > | wrap <> no spaces |
-|^&#x2318;s | ' | wrap single quotes |
-|^&#x2318;s | ` | wrap backticks |
-|^&#x2318;s | " | wrap double quote |
-[ Surround (^&#x2318;s) ]
-
-
-| Group | Keys | Function |
-| :---: | :--: | :------- |
-| | ^&#x2318;k | move line up |
-| | ^&#x2318;j | move line down |
-| | ^&#x2318;l | indent line |
-| | ^&#x2318;h | outdent line (all the way) |
-| | ^&#x2325;k | copy line and paste above |
-| | ^&#x2325;j | copy line and paste below |
-| | &#x2318;&#x2325;&#xA71B;| modify selection up |
-| | &#x2318;&#x2325;&#xA71C;| modify selection down |
-| | &#x2318;&#x2421; | Forward delete to end of paragraph |
-[ List/Paragraph motion ]
-
-
-| Group | Keys | Function |
-| :---: | :-----------: | :--------------- |
-| | PgUp | Page Up |
-| | PgDown | Page Down |
-| | &#x2325;PgUp | Scroll up |
-| | &#x2325;PgDown| Scroll Down |
-| | &#x2325;1 | bookmark |
-| | &#x2325;2 | jump to bookmark |
-[ Document navigation ] \ No newline at end of file
+| Group | Subgroup | Keys | Function |
+| :----: | :------: | :------------: | :------------------------------------------------------------------------------------------------------------ |
+| | | '^U' | uppercase word |
+| | | '^u' | lowercase word |
+| | | '^T' | titlecase word |
+| | | '^⌥U' | uppercase current paragraph |
+| | | '^⌥u' | lowercase current paragraph |
+| | | '^⌥t' | titlecase paragraph |
+| | | '^w' | delete word before cursor |
+| | | '⌥w' | select word |
+| | | '⌥S' | select entire line/paragraph |
+| | | '⌥s' | select from beginning of paragrah to last character |
+| | | '⌥d' | delete line/paragraph |
+| | | '⌥y' | copy paragraph |
+| | | '⌥x' | cut paragraph |
+| | | '⌥p' | paste paragraph below |
+| | | '⌥P' | paste 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 |
+| ^⌘c | | '/' | comment with "//" |
+| ^⌘c | | '\\' | comment with "#" |
+| ^⌘c | | '!' | HTML Comment |
+| ^⌘c | | '*' | CSS Comment |
+| | | '⌘⌥b' | bold selection (Markdown) |
+| | | '⌘⌥i' | italicize selection (Markdown) |
+| | | '⌘⌥=' | increase markdown header level |
+| | | '⌘⌥-' | decrease markdown header level |
+| ^⌘w | | '↩' | force carriage return in text field |
+| ^⌘w | | '⇥' | force tab in text field |
+| ^⌘w | h | '1' | 1st level Headline |
+| ^⌘w | h | '2' | 2nd level Headline |
+| ^⌘w | h | '3' | 3rd level Headline |
+| ^⌘w | h | '4' | 4th level Headline |
+| ^⌘w | h | '5' | 5th level Headline |
+| ^⌘w | h | '6' | 6th level Headline |
+| ^⌘w | l | 't' | create a link for selected text, cursor between () "[selected text]()" |
+| ^⌘w | l | 'c' | create a link for selected text, inserting clipboard as url "[cursorselected text](clipboard contents)" |
+| ^⌘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](cursor)" |
+| ^⌘w | : | 't' | create a reference from selected text |
+| ^⌘w | : | 'c' | create a reference from selected text, clipboard as url |
+| ^⌘w | | '[' | insert reference link |
+| ^⌘w | | '+' | + bulleted list |
+| ^⌘w | | '-' | - bulleted list |
+| ^⌘w | | '*' | * bulleted list |
+| ^⌘w | | '8' | convert current numbered list item to bullet, handles indentation |
+| ^⌘w | | '1' | convert current bullet list item to numbered |
+| ^⌘e | | '=' | ="cursor" |
+| ^⌘e | | 'e' | entity &cursor; |
+| ^⌘e | | '/' | http:// |
+| ^⌘e | | 't' | Make previous word into paired HTML tag |
+| ^⌘e | a | 't' | Insert HTML link for selected text, leave cursor in the href with "http://" selected |
+| ^⌘e | a | 'c' | Insert HTML link with clipboard as href |
+| ^⌘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 |
+| | | '⌥⌘↩' | Command Option Enter to continue a list item with indentation and include the same delimiter |
+| | | '⇧⇥' | Shift Tab remove one tab (or character) from start of line (outdent) |
+| ^⌘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 <> no spaces |
+| ^⌘s | | ''' | wrap single quotes |
+| ^⌘s | | '`' | wrap backticks |
+| ^⌘s | | '\' | wrap double quote |
+| | | '^⌘k' | move line up |
+| | | '^⌘j' | move line down |
+| | | '^⌘l' | indent line |
+| | | '^⌘h' | outdent line (one tab or char) |
+| | | '^⌘↑' | move line up with arrow keys |
+| | | '^⌘↓' | move line down with arrow keys |
+| | | '^⌘→' | move line left with arrow keys |
+| | | '^⌘←' | move line right with arrow keys |
+| | | '^⇧⌘←' | Control-shift-command-left arrow : Full outdent - Deletes all leading space (or first word) of line/paragraph |
+| | | '⌘⌥⇧↑' | modify selection up by paragraph (Command Option Shift Up) |
+| | | '⌘⌥⇧↓' | modify selection down by paragraph (Command Option Shift Down) |
+| | | '^⌥⇧←' | modify selection left by word |
+| | | '^⌥⇧→' | modify selection right by word |
+| | | '⌘↩' | TextMate Command-Return (Command Enter) |
+| | | '⌘⇧↩' | Insert blank line above paragraph (Command Shift Enter) |
+| | | '⌥_' | hyphenate next space and move to next word |
+| | | '⌥1' | bookmark |
+| | | '⌥2' | jump to bookmark |
+| ⇧⎋ | d | 'd' | 'dd' delete line/paragraph |
+| ⇧⎋ | d | '⇧' | 'd$' delete from cursor to end of graf |
+| ⇧⎋ | d | '0' | 'd0' delete to beginning of paragraph |
+| ⇧⎋ | d | '^' | 'd^' delete to beginning of paragraph |
+| ⇧⎋ | | 'p' | paste after |
+| ⇧⎋ | | 'P' | paste before |
+| ⇧⎋ | | 'y' | Yank |
+| ⇧⎋ | 5 | 'd' | 'dd' delete line/paragraph |
+| ⇧⎋ | | 'p' | paste 5 times after |
+| ⇧⎋ | | 'P' | paste 5 times before |
+| ⇧⎋ | | 'y' | paste 5 times in a row |
+| | | '⌥r' | repeat character before cursor |
+| | | '⌘␡' | Forward delete to end of paragraph |
diff --git a/KeyList.md b/KeyList.md
new file mode 100644
index 0000000..009ee50
--- /dev/null
+++ b/KeyList.md
@@ -0,0 +1,103 @@
+| Group | Subgroup | Keys | Function |
+| :----: | :------: | :------------: | :------------------------------------------------------------------------------------------------------------ |
+| | | '^U' | uppercase word |
+| | | '^u' | lowercase word |
+| | | '^T' | titlecase word |
+| | | '^⌥U' | uppercase current paragraph |
+| | | '^⌥u' | lowercase current paragraph |
+| | | '^⌥t' | titlecase paragraph |
+| | | '^w' | delete word before cursor |
+| | | '⌥w' | select word |
+| | | '⌥S' | select entire line/paragraph |
+| | | '⌥s' | select from beginning of paragrah to last character |
+| | | '⌥d' | delete line/paragraph |
+| | | '⌥y' | copy paragraph |
+| | | '⌥x' | cut paragraph |
+| | | '⌥p' | paste paragraph below |
+| | | '⌥P' | paste 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 |
+| ^⌘c | | '/' | comment with "//" |
+| ^⌘c | | '\\' | comment with "#" |
+| ^⌘c | | '!' | HTML Comment |
+| ^⌘c | | '*' | CSS Comment |
+| | | '⌘⌥b' | bold selection (Markdown) |
+| | | '⌘⌥i' | italicize selection (Markdown) |
+| | | '⌘⌥=' | increase markdown header level |
+| | | '⌘⌥-' | decrease markdown header level |
+| ^⌘w | | '↩' | force carriage return in text field |
+| ^⌘w | | '⇥' | force tab in text field |
+| ^⌘w | h | '1' | 1st level Headline |
+| ^⌘w | h | '2' | 2nd level Headline |
+| ^⌘w | h | '3' | 3rd level Headline |
+| ^⌘w | h | '4' | 4th level Headline |
+| ^⌘w | h | '5' | 5th level Headline |
+| ^⌘w | h | '6' | 6th level Headline |
+| ^⌘w | l | 't' | create a link for selected text, cursor between () "[selected text]()" |
+| ^⌘w | l | 'c' | create a link for selected text, inserting clipboard as url "[cursorselected text](clipboard contents)" |
+| ^⌘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](cursor)" |
+| ^⌘w | : | 't' | create a reference from selected text |
+| ^⌘w | : | 'c' | create a reference from selected text, clipboard as url |
+| ^⌘w | | '[' | insert reference link |
+| ^⌘w | | '+' | + bulleted list |
+| ^⌘w | | '-' | - bulleted list |
+| ^⌘w | | '*' | * bulleted list |
+| ^⌘w | | '8' | convert current numbered list item to bullet, handles indentation |
+| ^⌘w | | '1' | convert current bullet list item to numbered |
+| ^⌘e | | '=' | ="cursor" |
+| ^⌘e | | 'e' | entity &cursor; |
+| ^⌘e | | '/' | http:// |
+| ^⌘e | | 't' | Make previous word into paired HTML tag |
+| ^⌘e | a | 't' | Insert HTML link for selected text, leave cursor in the href with "http://" selected |
+| ^⌘e | a | 'c' | Insert HTML link with clipboard as href |
+| ^⌘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 |
+| | | '⌥⌘↩' | Command Option Enter to continue a list item with indentation and include the same delimiter |
+| | | '⇧⇥' | Shift Tab remove one tab (or character) from start of line (outdent) |
+| ^⌘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 <> no spaces |
+| ^⌘s | | ''' | wrap single quotes |
+| ^⌘s | | '`' | wrap backticks |
+| ^⌘s | | '\' | wrap double quote |
+| | | '^⌘k' | move line up |
+| | | '^⌘j' | move line down |
+| | | '^⌘l' | indent line |
+| | | '^⌘h' | outdent line (one tab or char) |
+| | | '^⌘↑' | move line up with arrow keys |
+| | | '^⌘↓' | move line down with arrow keys |
+| | | '^⌘→' | move line left with arrow keys |
+| | | '^⌘←' | move line right with arrow keys |
+| | | '^⇧⌘←' | Control-shift-command-left arrow : Full outdent - Deletes all leading space (or first word) of line/paragraph |
+| | | '⌘⌥⇧↑' | modify selection up by paragraph (Command Option Shift Up) |
+| | | '⌘⌥⇧↓' | modify selection down by paragraph (Command Option Shift Down) |
+| | | '^⌥⇧←' | modify selection left by word |
+| | | '^⌥⇧→' | modify selection right by word |
+| | | '⌘↩' | TextMate Command-Return (Command Enter) |
+| | | '⌘⇧↩' | Insert blank line above paragraph (Command Shift Enter) |
+| | | '⌥_' | hyphenate next space and move to next word |
+| | | '⌥1' | bookmark |
+| | | '⌥2' | jump to bookmark |
+| ⇧⎋ | d | 'd' | 'dd' delete line/paragraph |
+| ⇧⎋ | d | '⇧' | 'd$' delete from cursor to end of graf |
+| ⇧⎋ | d | '0' | 'd0' delete to beginning of paragraph |
+| ⇧⎋ | d | '^' | 'd^' delete to beginning of paragraph |
+| ⇧⎋ | | 'p' | paste after |
+| ⇧⎋ | | 'P' | paste before |
+| ⇧⎋ | | 'y' | Yank |
+| ⇧⎋ | 5 | 'd' | 'dd' delete line/paragraph |
+| ⇧⎋ | | 'p' | paste 5 times after |
+| ⇧⎋ | | 'P' | paste 5 times before |
+| ⇧⎋ | | 'y' | paste 5 times in a row |
+| | | '⌥r' | repeat character before cursor |
+| | | '⌘␡' | Forward delete to end of paragraph |
diff --git a/auto-document.rb b/auto-document.rb
new file mode 100755
index 0000000..f2db812
--- /dev/null
+++ b/auto-document.rb
@@ -0,0 +1,51 @@
+#!/usr/bin/ruby
+require 'cgi'
+
+fh = File.new('./DefaultKeyBinding.dict','r')
+outfile = File.new('KeyList.md','w')
+
+ingroup = 0
+group, subgroup, comment, key = ''
+
+output =<<HEADER
+| Group | Subgroup | Keys | Function |
+| :-------: | :------: | :---------------------: | :------------------------------------------------------ |
+HEADER
+
+def sub_symbols(text)
+ return text.gsub(/@/,'⌘').gsub(/\$/,'⇧').gsub(/~/,'⌥').gsub('\UF702','←').gsub('\UF703','→').gsub('\Uf700','↑').gsub('\Uf701','↓').gsub('\U000D','↩').gsub('\Uf728','␡').gsub('\U0009','⇥').gsub('\U001B', '⎋')
+end
+
+counter = 0
+while (line = fh.gets)
+ counter+=1
+ if line =~ /\s*\};/
+ if ingroup == 1
+ group = ''
+ ingroup = 0
+ elsif ingroup > 1
+ subgroup = ''
+ ingroup -= 1
+ end
+ elsif line =~ /^\s*\"([^\"]+)"\s*=[^(]+\{\s*\/\/(.*)$/
+ if ingroup == 1
+ ingroup += 1
+ subgroup = "#{sub_symbols($1.strip)}"
+ elsif ingroup == 0
+ group = "#{sub_symbols($1.strip)}"
+ ingroup = 1
+ end
+ elsif line =~ /^\s*\/\/(.*)$/
+ comment = $1.strip
+ nextline = fh.gets
+ if nextline =~ /^\s*\"([^\"]+)\"/
+ key = sub_symbols($1.strip)
+ output += "| #{group} | #{subgroup} | '#{key}' | #{comment} |\n"
+ end
+ else
+ puts "#{counter}: #{line}"
+ end
+end
+fh.close
+outfile.puts output
+outfile.close \ No newline at end of file
diff --git a/readme.md b/readme.md
index ff8c8e7..57b3657 100644
--- a/readme.md
+++ b/readme.md
@@ -5,23 +5,25 @@ DefaultKeyBindings.dict file (`~/Library/KeyBindings/DefaultKeyBindings.dict`) f
[lrigists]: https://gist.github.com/Lri
[brett terpstra]: http://brettterpstra.com
-*Grouped items begin with the groups shortcut, followed by the Keys specified. Items separated by commas are sequential, not concurrent.*
+*Grouped items begin with the groups shortcut (if exists), followed by a subgroup (if exists) followed by the Keys specified.*
<p>DefaultKeyBindings.dict file for Mac OS X, created by <a href="http://brettterpstra.com">Brett Terpstra</a> and based heavily on work done by <a href="http://www.cs.helsinki.fi/u/lranta/keybindings/">Lri</a>. See Lri&#8217;s <a href="https://gist.github.com/Lri">gists</a> and <a href="http://www.cs.helsinki.fi/u/lranta/">website</a> for more coding madness.</p>
<p><em>Grouped items begin with the groups shortcut, followed by the Keys specified. Items separated by commas are sequential, not concurrent.</em></p>
+
<table>
-<caption id="allpurposekeycombos"> All purpose key combos </caption>
<colgroup>
<col style="text-align:center;"/>
<col style="text-align:center;"/>
+<col style="text-align:center;"/>
<col style="text-align:left;"/>
</colgroup>
<thead>
<tr>
<th style="text-align:center;">Group</th>
+ <th style="text-align:center;">Subgroup</th>
<th style="text-align:center;">Keys</th>
<th style="text-align:left;">Function</th>
</tr>
@@ -30,438 +32,610 @@ DefaultKeyBindings.dict file (`~/Library/KeyBindings/DefaultKeyBindings.dict`) f
<tbody>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-z</td>
- <td style="text-align:left;">copy character before cursor</td>
-</tr>
-<tr>
- <td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-r</td>
- <td style="text-align:left;">repeat character before cursor</td>
-</tr>
-<tr>
- <td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-t</td>
- <td style="text-align:left;">transpose characters</td>
-</tr>
-<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-+</td>
+ <td style="text-align:center;">&#8216;^U&#8217;</td>
<td style="text-align:left;">uppercase word</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt--</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^u&#8217;</td>
<td style="text-align:left;">lowercase word</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-.</td>
- <td style="text-align:left;">capitalize word</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^T&#8217;</td>
+ <td style="text-align:left;">titlecase word</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-w</td>
- <td style="text-align:left;">delete word before cursor</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌥U&#8217;</td>
+ <td style="text-align:left;">uppercase current paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-w</td>
- <td style="text-align:left;">select word</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌥u&#8217;</td>
+ <td style="text-align:left;">lowercase current paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-f</td>
- <td style="text-align:left;">cut word (fold)</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌥t&#8217;</td>
+ <td style="text-align:left;">titlecase paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-g</td>
- <td style="text-align:left;">copy word (grab)</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^w&#8217;</td>
+ <td style="text-align:left;">delete word before cursor</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-h</td>
- <td style="text-align:left;">paste word (hit)</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥w&#8217;</td>
+ <td style="text-align:left;">select word</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-l</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥S&#8217;</td>
<td style="text-align:left;">select entire line/paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥s&#8217;</td>
<td style="text-align:left;">select from beginning of paragrah to last character</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-d</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥d&#8217;</td>
<td style="text-align:left;">delete line/paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-y</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥y&#8217;</td>
<td style="text-align:left;">copy paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-x</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥x&#8217;</td>
<td style="text-align:left;">cut paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-p</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥p&#8217;</td>
<td style="text-align:left;">paste paragraph below</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-Shift-P</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥P&#8217;</td>
<td style="text-align:left;">paste paragraph above</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-Shift-A</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^A&#8217;</td>
<td style="text-align:left;">select to beginning of paragraph and copy</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-Shift-E</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^E&#8217;</td>
<td style="text-align:left;">select to end of paragraph and copy</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-q</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥q&#8217;</td>
<td style="text-align:left;">cut to beginning of paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-k</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥k&#8217;</td>
<td style="text-align:left;">cut to end of paragraph</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-,</td>
- <td style="text-align:left;">move paragraph up a line, inserting blank space after</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥o&#8217;</td>
+ <td style="text-align:left;">blank line after current</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-␠</td>
- <td style="text-align:left;">move paragraph to end of document</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥O&#8217;</td>
+ <td style="text-align:left;">blank line before current</td>
</tr>
<tr>
+ <td style="text-align:center;">^⌘c</td>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-o</td>
- <td style="text-align:left;">blank line after current</td>
+ <td style="text-align:center;">&#8216;/&#8217;</td>
+ <td style="text-align:left;">comment with &#8220;//&#8221;</td>
</tr>
<tr>
+ <td style="text-align:center;">^⌘c</td>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-Shift-O</td>
- <td style="text-align:left;">blank line before current</td>
+ <td style="text-align:center;">&#8216;\&#8217;</td>
+ <td style="text-align:left;">comment with &#8220;#&#8221;</td>
</tr>
<tr>
+ <td style="text-align:center;">^⌘c</td>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Cmd-Opt-/</td>
- <td style="text-align:left;">comment with “//”</td>
+ <td style="text-align:center;">&#8216;!&#8217;</td>
+ <td style="text-align:left;">HTML Comment</td>
</tr>
<tr>
+ <td style="text-align:center;">^⌘c</td>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Cmd-Opt-3</td>
- <td style="text-align:left;">comment with “#”</td>
+ <td style="text-align:center;">&#8216;*&#8217;</td>
+ <td style="text-align:left;">CSS Comment</td>
</tr>
-</tbody>
-</table>
-
-
-<table>
-<caption id="markdown-specificshortcutsx2318w"> Markdown-specific shortcuts (Ctrl-Cmd-W) </caption>
-<colgroup>
-<col style="text-align:center;"/>
-<col style="text-align:center;"/>
-<col style="text-align:left;"/>
-</colgroup>
-
-<thead>
<tr>
- <th style="text-align:center;">Group</th>
- <th style="text-align:center;">Keys</th>
- <th style="text-align:left;">Function</th>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘⌥b&#8217;</td>
+ <td style="text-align:left;">bold selection (Markdown)</td>
</tr>
-</thead>
-
-<tbody>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Cmd-Opt-b</td>
- <td style="text-align:left;">bold selection</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘⌥i&#8217;</td>
+ <td style="text-align:left;">italicize selection (Markdown)</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Cmd-Opt-i</td>
- <td style="text-align:left;">italicize selection</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘⌥=&#8217;</td>
+ <td style="text-align:left;">increase markdown header level</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">Return</td>
- <td style="text-align:left;">force Return</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘⌥-&#8217;</td>
+ <td style="text-align:left;">decrease markdown header level</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;↩&#8217;</td>
+ <td style="text-align:left;">force carriage return in text field</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⇥&#8217;</td>
+ <td style="text-align:left;">force tab in text field</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">h</td>
+ <td style="text-align:center;">&#8216;1&#8217;</td>
+ <td style="text-align:left;">1st level Headline</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">h</td>
+ <td style="text-align:center;">&#8216;2&#8217;</td>
+ <td style="text-align:left;">2nd level Headline</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">h</td>
+ <td style="text-align:center;">&#8216;3&#8217;</td>
+ <td style="text-align:left;">3rd level Headline</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">h</td>
+ <td style="text-align:center;">&#8216;4&#8217;</td>
+ <td style="text-align:left;">4th level Headline</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">⇥</td>
- <td style="text-align:left;">force Tab</td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">h</td>
+ <td style="text-align:center;">&#8216;5&#8217;</td>
+ <td style="text-align:left;">5th level Headline</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">1–4</td>
- <td style="text-align:left;"># Headlines</td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">h</td>
+ <td style="text-align:center;">&#8216;6&#8217;</td>
+ <td style="text-align:left;">6th level Headline</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">l,t</td>
- <td style="text-align:left;">link text <code>"[selected text](|)"</code></td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">l</td>
+ <td style="text-align:center;">&#8216;t&#8217;</td>
+ <td style="text-align:left;">create a link for selected text, cursor between () &#8220;<a href="">selected text</a>&#8221;</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">l,c</td>
- <td style="text-align:left;">clipboard link <code>"[|selected text](clipboard contents)"</code></td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">l</td>
+ <td style="text-align:center;">&#8216;c&#8217;</td>
+ <td style="text-align:left;">create a link for selected text, inserting clipboard as url &#8220;[cursorselected text](clipboard contents)&#8221;</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">i,t</td>
- <td style="text-align:left;">image, selection as alt <code>"![selected text](|)"</code></td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">i</td>
+ <td style="text-align:center;">&#8216;t&#8217;</td>
+ <td style="text-align:left;">same as lt, but with image syntax &#8220;<img src="cursor" alt="selected text" />&#8221;</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">i,c</td>
- <td style="text-align:left;">clipboard image <code>"![|selected text](clipboard contents)"</code></td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">i</td>
+ <td style="text-align:center;">&#8216;c&#8217;</td>
+ <td style="text-align:left;">same as lc, but with image syntax &#8220;<img src="cursor" alt="selected text" />&#8221;</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">:,t</td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">:</td>
+ <td style="text-align:center;">&#8216;t&#8217;</td>
<td style="text-align:left;">create a reference from selected text</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">:,c</td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;">:</td>
+ <td style="text-align:center;">&#8216;c&#8217;</td>
<td style="text-align:left;">create a reference from selected text, clipboard as url</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">[</td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;[&#8217;</td>
<td style="text-align:left;">insert reference link</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">+|-|*</td>
- <td style="text-align:left;">lists</td>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;+&#8217;</td>
+ <td style="text-align:left;">+ bulleted list</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;-&#8217;</td>
+ <td style="text-align:left;">- bulleted list</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;*&#8217;</td>
+ <td style="text-align:left;">* bulleted list</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;8&#8217;</td>
+ <td style="text-align:left;">convert current numbered list item to bullet, handles indentation</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘w</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;1&#8217;</td>
+ <td style="text-align:left;">convert current bullet list item to numbered</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">=,Opt-Shift-L</td>
- <td style="text-align:left;">new list item after current</td>
+ <td style="text-align:center;">^⌘e</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;=&#8217;</td>
+ <td style="text-align:left;">=&#8220;cursor&#8221;</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">e</td>
- <td style="text-align:left;">entity</td>
+ <td style="text-align:center;">^⌘e</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;e&#8217;</td>
+ <td style="text-align:left;">entity &cursor;</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-w</td>
- <td style="text-align:center;">=,/</td>
+ <td style="text-align:center;">^⌘e</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;/&#8217;</td>
<td style="text-align:left;">http://</td>
</tr>
-</tbody>
-</table>
-
-
-<table>
-<caption id="surroundx2318s"> Surround (Ctrl-Cmd-s) </caption>
-<colgroup>
-<col style="text-align:center;"/>
-<col style="text-align:center;"/>
-<col style="text-align:left;"/>
-</colgroup>
-
-<thead>
<tr>
- <th style="text-align:center;">Group</th>
- <th style="text-align:center;">Keys</th>
- <th style="text-align:left;">Function</th>
+ <td style="text-align:center;">^⌘e</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;t&#8217;</td>
+ <td style="text-align:left;">Make previous word into paired HTML tag</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘e</td>
+ <td style="text-align:center;">a</td>
+ <td style="text-align:center;">&#8216;t&#8217;</td>
+ <td style="text-align:left;">Insert HTML link for selected text, leave cursor in the href with &#8220;http://&#8221; selected</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘e</td>
+ <td style="text-align:center;">a</td>
+ <td style="text-align:center;">&#8216;c&#8217;</td>
+ <td style="text-align:left;">Insert HTML link with clipboard as href</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘e</td>
+ <td style="text-align:center;">i</td>
+ <td style="text-align:center;">&#8216;t&#8217;</td>
+ <td style="text-align:left;">Insert image tag, any selected text is alt text, leave cursor in src attribute</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘e</td>
+ <td style="text-align:center;">i</td>
+ <td style="text-align:center;">&#8216;c&#8217;</td>
+ <td style="text-align:left;">Insert image tag, clipboard as src, any selected text as alt, leave cursor at beginning of alt attribute</td>
</tr>
-</thead>
-
-<tbody>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">(</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥⌘↩&#8217;</td>
+ <td style="text-align:left;">Command Option Enter to continue a list item with indentation and include the same delimiter</td>
+</tr>
+<tr>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⇧⇥&#8217;</td>
+ <td style="text-align:left;">Shift Tab remove one tab (or character) from start of line (outdent)</td>
+</tr>
+<tr>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;(&#8217;</td>
<td style="text-align:left;">wrap () with spaces</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">)</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;)&#8217;</td>
<td style="text-align:left;">wrap () no spaces</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">[</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;[&#8217;</td>
<td style="text-align:left;">wrap [] with spaces</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">]</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;]&#8217;</td>
<td style="text-align:left;">wrap [] no spaces</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">{</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;{&#8217;</td>
<td style="text-align:left;">wrap {} with spaces</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">}</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;}&#8217;</td>
<td style="text-align:left;">wrap {} no spaces</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">&lt;</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;&lt;&#8217;</td>
<td style="text-align:left;">wrap &lt;&gt; with spaces</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">&gt;</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;&gt;&#8217;</td>
<td style="text-align:left;">wrap &lt;&gt; no spaces</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">’</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8217;&#8217;&#8217;</td>
<td style="text-align:left;">wrap single quotes</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">`</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;`&#8217;</td>
<td style="text-align:left;">wrap backticks</td>
</tr>
<tr>
- <td style="text-align:center;">Ctrl-Cmd-s</td>
- <td style="text-align:center;">"</td>
+ <td style="text-align:center;">^⌘s</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;\&#8217;</td>
<td style="text-align:left;">wrap double quote</td>
</tr>
-</tbody>
-</table>
-
-
-<table>
-<caption id="listparagraphmotion"> List/Paragraph motion </caption>
-<colgroup>
-<col style="text-align:center;"/>
-<col style="text-align:center;"/>
-<col style="text-align:left;"/>
-</colgroup>
-
-<thead>
-<tr>
- <th style="text-align:center;">Group</th>
- <th style="text-align:center;">Keys</th>
- <th style="text-align:left;">Function</th>
-</tr>
-</thead>
-
-<tbody>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-Cmd-k</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌘k&#8217;</td>
<td style="text-align:left;">move line up</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-Cmd-j</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌘j&#8217;</td>
<td style="text-align:left;">move line down</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-Cmd-l</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌘l&#8217;</td>
<td style="text-align:left;">indent line</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-Cmd-h</td>
- <td style="text-align:left;">outdent line (all the way)</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌘h&#8217;</td>
+ <td style="text-align:left;">outdent line (one tab or char)</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-Opt-k</td>
- <td style="text-align:left;">copy line and paste above</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌘↑&#8217;</td>
+ <td style="text-align:left;">move line up with arrow keys</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Ctrl-Opt-j</td>
- <td style="text-align:left;">copy line and paste below</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌘↓&#8217;</td>
+ <td style="text-align:left;">move line down with arrow keys</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Cmd-Opt-Up</td>
- <td style="text-align:left;">modify selection up</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌘→&#8217;</td>
+ <td style="text-align:left;">move line left with arrow keys</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Cmd-Opt-Down</td>
- <td style="text-align:left;">modify selection down</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌘←&#8217;</td>
+ <td style="text-align:left;">move line right with arrow keys</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Cmd-Del</td>
- <td style="text-align:left;">Forward delete to end of paragraph</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⇧⌘←&#8217;</td>
+ <td style="text-align:left;">Control-shift-command-left arrow : Full outdent - Deletes all leading space (or first word) of line/paragraph</td>
</tr>
-</tbody>
-</table>
-
-
-<table>
-<caption id="documentnavigation"> Document navigation </caption>
-<colgroup>
-<col style="text-align:center;"/>
-<col style="text-align:center;"/>
-<col style="text-align:left;"/>
-</colgroup>
-
-<thead>
<tr>
- <th style="text-align:center;">Group</th>
- <th style="text-align:center;">Keys</th>
- <th style="text-align:left;">Function</th>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘⌥⇧↑&#8217;</td>
+ <td style="text-align:left;">modify selection up by paragraph (Command Option Shift Up)</td>
+</tr>
+<tr>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘⌥⇧↓&#8217;</td>
+ <td style="text-align:left;">modify selection down by paragraph (Command Option Shift Down)</td>
+</tr>
+<tr>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌥⇧←&#8217;</td>
+ <td style="text-align:left;">modify selection left by word</td>
</tr>
-</thead>
-
-<tbody>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">PgUp</td>
- <td style="text-align:left;">Page Up</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;^⌥⇧→&#8217;</td>
+ <td style="text-align:left;">modify selection right by word</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">PgDown</td>
- <td style="text-align:left;">Page Down</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘↩&#8217;</td>
+ <td style="text-align:left;">TextMate Command-Return (Command Enter)</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-PgUp</td>
- <td style="text-align:left;">Scroll up</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘⇧↩&#8217;</td>
+ <td style="text-align:left;">Insert blank line above paragraph (Command Shift Enter)</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-PgDown</td>
- <td style="text-align:left;">Scroll Down</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥_&#8217;</td>
+ <td style="text-align:left;">hyphenate next space and move to next word</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-1</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥1&#8217;</td>
<td style="text-align:left;">bookmark</td>
</tr>
<tr>
<td style="text-align:center;"></td>
- <td style="text-align:center;">Opt-2</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥2&#8217;</td>
<td style="text-align:left;">jump to bookmark</td>
</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;">d</td>
+ <td style="text-align:center;">&#8216;d&#8217;</td>
+ <td style="text-align:left;">&#8216;dd&#8217; delete line/paragraph</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;">d</td>
+ <td style="text-align:center;">&#8216;⇧&#8217;</td>
+ <td style="text-align:left;">&#8216;d$&#8217; delete from cursor to end of graf</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;">d</td>
+ <td style="text-align:center;">&#8216;0&#8217;</td>
+ <td style="text-align:left;">&#8216;d0&#8217; delete to beginning of paragraph</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;">d</td>
+ <td style="text-align:center;">&#8216;^&#8217;</td>
+ <td style="text-align:left;">&#8216;d^&#8217; delete to beginning of paragraph</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;p&#8217;</td>
+ <td style="text-align:left;">paste after</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;P&#8217;</td>
+ <td style="text-align:left;">paste before</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;y&#8217;</td>
+ <td style="text-align:left;">Yank</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;">5</td>
+ <td style="text-align:center;">&#8216;d&#8217;</td>
+ <td style="text-align:left;">&#8216;dd&#8217; delete line/paragraph</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;p&#8217;</td>
+ <td style="text-align:left;">paste 5 times after</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;P&#8217;</td>
+ <td style="text-align:left;">paste 5 times before</td>
+</tr>
+<tr>
+ <td style="text-align:center;">⇧⎋</td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;y&#8217;</td>
+ <td style="text-align:left;">paste 5 times in a row</td>
+</tr>
+<tr>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌥r&#8217;</td>
+ <td style="text-align:left;">repeat character before cursor</td>
+</tr>
+<tr>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;"></td>
+ <td style="text-align:center;">&#8216;⌘␡&#8217;</td>
+ <td style="text-align:left;">Forward delete to end of paragraph</td>
+</tr>
</tbody>
</table>