AppleScriptもAutomatorも使わずにタグやカッコで囲うキーバインドの設定
- AppleScriptもAutomatorも使わずに、
- AppleScriptやAutomatorとは比較にならないほど軽快に、
- テキストをタグやカッコで囲んだり、
- 小文字・大文字・頭文字だけ大文字に変換する等の、
- ショートカットの設定ができるのであった。
できること
以下、Cocoaアプリケーションのテキスト入力環境で有効。
- 選択範囲を小文字に変換するよ。(control-/、l)
- 選択範囲を大文字に変換するよ。(control-/、u)
- 選択範囲の単語を頭文字だけ大文字に変換するよ。(control-/、c)
- 選択範囲を' 'で囲うよ。(control-/、')
- 選択範囲を" "で囲うよ。(control-/、")
- 選択範囲を[ ]で囲うよ。(control-/、[)
- 選択範囲を{ }で囲うよ。(control-/、{)
- 選択範囲を( )で囲うよ。(control-/、()
- 選択範囲を< >で囲うよ。(control-/、<)
- 文字カーソル位置の行をすべて大文字タイトルにして改行するよ。(control-option-u)
- 例:This is a pen. → control-option-u → THIS IS A PEN.\n\n
- 直前の単語をタグにするよ。(control-shift-h)
- 例:div → control-shift-h → <div></div>
- 選択範囲の両端を1文字ずつ拡張するよ。(control-shift-+)
読み方
- 例:(control-/、u)
- controlキーを押しながら/を押す。その後uキーのみ押す。
インストール
- 以下のファイルをホームのライブラリに保存する。
- ~/Library/KeyBindings/DefaultKeyBinding.dict
- KeyBindingsフォルダが存在しない場合は自分で追加する。
- 半角¥は、半角\に、変換する必要がある。
- ちなみに自分の環境では、コピー&ペーストすると半角¥は半角\に変換された。(ブラウザ:Sfari)
{ "^/" = { /* 小文字・大文字・頭文字だけ大文字へ変換(control-/、l・u・c) */ "l" = "lowercaseWord:"; "u" = "uppercaseWord:"; "c" = "capitalizeWord:"; /* 選択範囲を囲う */ /* ''で囲う(control-/、') */ "'" = ( "setMark:", "deleteToMark:", "insertText:", "'", "yank:", "insertText:", "'", ); /* ""で囲う(control-/、") */ "\"" = ( "setMark:", "deleteToMark:", "insertText:", "\"", "yank:", "insertText:", "\"", ); /* []で囲う(control-/、[) */ "[" = ( "setMark:", "deleteToMark:", "insertText:", "[", "yank:", "insertText:", "]", ); /* {}で囲う(control-/、{) */ "{" = ( "setMark:", "deleteToMark:", "insertText:", "{", "yank:", "insertText:", "}", ); /* ()で囲う(control-/、() */ "(" = ( "setMark:", "deleteToMark:", "insertText:", "(", "yank:", "insertText:", ")", ); /* <>で囲う(control-/、<) */ "<" = ( "setMark:", "deleteToMark:", "insertText:", "<", "yank:", "insertText:", ">", ); /* 「」で囲う(control-/、control-[) */ "^[" = ( "setMark:", "deleteToMark:", "insertText:", "「", "yank:", "insertText:", "」", ); }; /* カーソル位置の行をすべて大文字タイトルにする(control-option-u) */ "^~u" = ("selectParagraph:", "uppercaseWord:", "moveToEndOfParagraph:", "insertNewline:", "insertNewline:"); /* 直前の単語をタグにする(control-shift-h) */ "^H" = ("setMark:", "moveWordBackward:", "deleteToMark:", "insertText:", "<", "yank:", "insertText:", ">", "setMark:", "insertText:", "</", "yank:", "insertText:", ">", "swapWithMark:"); /* 選択範囲の両端を1文字ずつ拡張する(control-shift-=) */ "^+" = ( "setMark:", "moveForward:", "moveForward:", "selectToMark:", "moveBackwardAndModifySelection:", ); }