Sublime Text 2には、キャレットのある行を直接上や下に1行移動する (つまりスワップする) 便利なショートカットがある。
http://nerdkitchen.org/blog/sublime-text-2-useful-shortcuts-number-1/
コマンド + コントロール + ↑または下
なぜ今までこれがなかったのか不思議なぐらい便利 (よくは知らないけどEclipseでは当たり前の機能らしい)。今までは行を1つ上に移動しようとするたびに行のカット/一行上に移動/ペースト/改行調整をやっていたのだから。
ところが、少なくともこのショートカットがなかなか効かず、英語圏でも質問が続出している。
自分の環境でもこのキーが効かず、確かめてみたところ、どうやらコントロールを先に押してしまうとだめらしい。Keybindings - Defaultでは以下のようにコントロールが先に記述してあるというのに。
{ "keys": ["ctrl+super+up"], "command": "swap_line_up" },
{ "keys": ["ctrl+super+down"], "command": "swap_line_down" },
そこでさっさと以下を Keybindings - Userに登録してしまった。
{ "keys": ["+super+up"], "command": "swap_line_up" },
{ "keys": ["+super+down"], "command": "swap_line_down" }
自分の場合初代HHKを使っていて、矢印キーのためにFnキーを押さなければいけないので、キーは少しでも少ない方がありがたい。
- 直接関係ないのだけど、「行の移動」と書いてしまうと、上で言うところの「行を上に移動する」という意味の他に、「行単位でカーソルを上に移動する」という従来の意味も含まれてしまうので、何ともググりにくい。これは英語圏でも似たような事情があるらしい。実際に行なっているのはスワップなのだけど、直感的には「行を移動している」と考えてしまいがち。