Pengaturan Terminal
Pi menggunakan Kitty keyboard protocol untuk deteksi kunci pengubah yang andal. Kebanyakan terminal modern mendukung protokol ini, namun beberapa memerlukan konfigurasi.
Kitty, iTerm2
Bekerja di luar kotak.
Terminal Apel
Pi mengaktifkan pelaporan kunci yang ditingkatkan bila tersedia. Jika Terminal.app masih mengirimkan Return biasa untuk Shift+Enter, pi menggunakan fallback pengubah macOS lokal untuk memperlakukan Return tersebut sebagai Shift+Enter.
Penggantian ini hanya berfungsi ketika pi berjalan di Mac yang sama dengan Terminal.app. Itu tidak dapat mendeteksi keyboard lokal melalui jarak jauh SSH.
Hantu
Tambahkan ke konfigurasi Ghostty Anda (~/Library/Application Support/com.mitchellh.ghostty/config di macOS, ~/.config/ghostty/config di Linux):
keybind = alt+backspace=text:\x1b\x7fVersi Kode Claude yang lebih lama mungkin telah menambahkan pemetaan Ghostty ini:
keybind = shift+enter=text:\nPemetaan itu mengirimkan byte linefeed mentah. Di dalam pi, itu tidak dapat dibedakan dari Ctrl+J, jadi tmux dan pi tidak lagi melihat peristiwa penting shift+enter yang sebenarnya.
Jika Kode Claude 2.x atau yang lebih baru adalah satu-satunya alasan Anda menambahkan pemetaan tersebut, Anda dapat menghapusnya, kecuali Anda ingin menggunakan Kode Claude di tmux, yang masih memerlukan pemetaan Ghostty tersebut.
Pi mengikat Ctrl+J sebagai alias baris baru default, jadi Shift+Enter tetap bekerja di tmux melalui remap tersebut tanpa konfigurasi pi tambahan.
WezTerm
WezTerm biasanya berfungsi langsung untuk Shift+Enter melalui xterm memodifikasiOtherKeys. Untuk menggunakan protokol keyboard Kitty secara eksplisit, buat ~/.wezterm.lua:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.enable_kitty_keyboard = true
return configDi macOS, WezTerm mengikat Option+Enter ke layar penuh secara default. Untuk menggunakan Option+Enter untuk antrian tindak lanjut pi, tambahkan penggantian kunci ini:
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.keys = {
{
key = 'Enter',
mods = 'ALT',
action = wezterm.action.SendString('\x1b[13;3u'),
},
}
return configJika Anda sudah memiliki tabel config.keys, tambahkan entri ke dalamnya.
Di WSL, WezTerm mungkin memerlukan kursor perangkat keras yang terlihat untuk penentuan posisi jendela kandidat IME. Jika kandidat IME CJK tidak mengikuti kursor teks, setel PI_HARDWARE_CURSOR=1 sebelum menjalankan pi atau setel showHardwareCursor ke true di pengaturan.
Sigap
Alacritty biasanya bekerja di luar kotak untuk Shift+Enter. Di macOS, Option+Enter mungkin muncul sebagai Enter biasa. Untuk menggunakan Option+Enter untuk antrian tindak lanjut pi, tambahkan ke ~/.config/alacritty/alacritty.toml:
[[keyboard.bindings]]
key = "Enter"
mods = "Alt"
chars = "\u001b[13;3u"Mulai ulang Alacritty setelah mengubah konfigurasi.
VS Code (Terminal Terintegrasi)
VS Code 1.109.5 dan yang lebih baru mengaktifkan protokol keyboard Kitty di terminal terintegrasi secara default, jadi Shift+Enter akan langsung berfungsi.
Versi VS Code yang lebih lama dari 1.109.5 memerlukan pengikatan kunci terminal eksplisit untuk Shift+Enter.
keybindings.json lokasi:
- macOS:
~/Library/Application Support/Code/User/keybindings.json - Linux:
~/.config/Code/User/keybindings.json - Jendela:
%APPDATA%\\Code\\User\\keybindings.json
Tambahkan ke keybindings.json:
{
"key": "shift+enter",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001b[13;2u" },
"when": "terminalFocus"
}Terminal Windows
Tambahkan ke settings.json (Ctrl+Shift+, atau Pengaturan → Buka file JSON) untuk meneruskan tombol Enter yang dimodifikasi yang digunakan pi:
{
"actions": [
{
"command": { "action": "sendInput", "input": "\u001b[13;2u" },
"keys": "shift+enter"
},
{
"command": { "action": "sendInput", "input": "\u001b[13;3u" },
"keys": "alt+enter"
}
]
}Shift+Entermenyisipkan baris baru.- Terminal Windows mengikat
Alt+Enterke layar penuh secara default. Itu mencegah pi menerimaAlt+Enteruntuk antrian tindak lanjut. - Memetakan ulang
Alt+EnterkesendInputmeneruskan kunci kunci sebenarnya ke pi.
Jika Anda sudah memiliki array actions, tambahkan objek ke dalamnya. Jika perilaku layar penuh lama masih berlanjut, tutup sepenuhnya dan buka kembali Terminal Windows.
xfce4-terminal, terminator
Terminal-terminal ini mempunyai dukungan escape sequence yang terbatas. Tombol Enter yang dimodifikasi seperti Ctrl+Enter dan Shift+Enter tidak dapat dibedakan dari Enter biasa, sehingga mencegah pengikatan tombol khusus seperti submit: ["ctrl+enter"] berfungsi.
Untuk pengalaman terbaik, gunakan terminal yang mendukung protokol keyboard Kitty:
IntelliJ IDEA (Terminal Terintegrasi)
Terminal internal memiliki dukungan urutan escape yang terbatas. Shift+Enter tidak dapat dibedakan dari Enter di terminal IntelliJ.
Jika Anda ingin kursor perangkat keras terlihat, setel PI_HARDWARE_CURSOR=1 sebelum menjalankan pi (dinonaktifkan secara default untuk kompatibilitas).
Pertimbangkan untuk menggunakan emulator terminal khusus untuk pengalaman terbaik.