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:",
);
}