Slack や LINE でメッセージを書いているとき、改行したかっただけなのに Enter を押して送信してしまったこと、ありませんか?
「まだ途中なのに!」と焦る、あの瞬間。僕も何度もやらかしています。
Karabiner-Elements で Ctrl+J を Shift+Enter に割り当てるだけで解決します。
設定ファイルも用意したので、コピーするだけで導入できます。
なぜ Ctrl+J なのか
Unix の世界では、Ctrl+J は LF(Line Feed=改行)を意味します。ターミナルを日常的に使っている方には、馴染みのあるキーバインドですよね。
ところが、macOS の GUI アプリだと Ctrl+J に改行の役割が割り当てられてないんですよね。
一方で、チャットアプリでは Shift+Enter が「送信せず改行だけ」 という動作になっています。
- Slack → Shift+Enter で改行
- LINE → Shift+Enter で改行
- Discord → Shift+Enter で改行
じゃ、どうすれば、いいのか?
Ctrl+J を押したら Shift+Enter になるように、キーマッピングを変えてしまえばいいわけです。
必要なもの
- macOS
- Karabiner-Elements(無料)— 公式サイト からインストール
設定ファイルのダウンロード
設定ファイルを用意しました。
ctrl_j_lf_cgevent.zip をダウンロード
zip を展開すると ctrl_j_lf_cgevent.json が入っています。
設定手順
1. 設定ファイルをコピー
展開した ctrl_j_lf_cgevent.json を、以下のフォルダにコピーします。
~/.config/karabiner/assets/complex_modifications/
Finder で移動するには、Cmd+Shift+G を押して上記パスを貼り付けると移動できます。
ターミナルからなら、こちら。
cp ctrl_j_lf_cgevent.json ~/.config/karabiner/assets/complex_modifications/
2. ルールを有効にする
- Karabiner-Elements を開く
- Complex Modifications タブを選択
- Add predefined rule をクリック
- 「Ctrl+J → LF (Shift+Enter)」を探す
- Enable をクリック



3. ルールは2種類あります
| ルール | 説明 |
|---|---|
| all apps | すべてのアプリで Ctrl+J = 改行 |
| exclude terminals | ターミナルアプリでは無効にする |
ターミナル(Terminal.app、iTerm2、kitty、Hyper、WezTerm、Warp)を使う方は、exclude terminals がおすすめです。
ターミナルでは Ctrl+J が本来の LF として動作するので、上書きしないほうがいい感じです。
どちらか一方だけを有効にしてください。
動作確認
設定が終わったら、Slack や LINE のメッセージ入力欄で Ctrl+J を押してみてください。
送信されずに、改行だけ入ればOKです。
元に戻したいとき
Karabiner-Elements の Complex Modifications で、ルールを Remove するだけ。
設定ファイルも消したい場合は、こちら。
rm ~/.config/karabiner/assets/complex_modifications/ctrl_j_lf_cgevent.json
これで完全に元通りです。
まとめ
- Slack / LINE / Discord で Ctrl+J = 改行 にできる
- Karabiner-Elements の設定ファイルをコピーして有効にするだけ
- ターミナルを除外するルールも用意済み
- 元に戻すのもワンクリック
Enter でうっかり送信してしまう事故、これでさよならです。




