Saya baru saja beralih dari bash ke zsh, namun saya merindukan Alt+ LeftArrowKeydan Alt+ saya RightArrowKeyuntuk bolak-balik kata demi kata.
Sekarang, jika saya menekan Alt+ LeftArrowKeysaya mundur beberapa huruf dan kemudian saya macet. Saya tidak akan mundur lebih jauh dan itu tidak akan kembali ke akhir baris dengan Alt+ RightArrowKeyseperti yang saya harapkan. Saya bahkan tidak bisa menggunakan tombol panah untuk pergi ke akhir baris, hanya ke detik hingga terakhir. Tidak dapat memasukkan karakter baru pada baris atau memang menghapus.
Bagaimana cara mendapatkan kembali pintasan kesayangan saya?
Saya menggunakan Mac OS X menggunakan Terminal jika itu penting.
^[[D
untuk saya sementara ctrl + v melaporkan^[OD
. Saran Ctrl + v berhasil, tetapi cat tidak. Lebih lanjut, ctrl + v melaporkan hal yang sama untuk alt + <- dan alt + ->. Saya dapat menambahkan keduanya dengan melihat output kucing dan mengganti "[[" dengan "O"^[^[[C
untuk kata maju dan^[^[[D
untuk kata mundur, tetapi memperbarui ini dalam .zshrc tidak berhasil karena beberapa alasan.bindkey "^[^[[D" backward-word
danbindkey "^[^[[C" forward-word
masuk ~ / .zprofile berhasil untuk saya!Untuk siapa saja yang menggunakan iTerm, apa pun cangkangnya
Semua solusi yang ditawarkan di sini mengambil pendekatan mundur menurut saya. Anda pada dasarnya memberi tahu shell Anda untuk mendengarkan beberapa urutan esc atau pengikatan kunci lain yang telah Anda atur di terminal Anda, menciptakan masalah kompatibilitas saat Anda mengganti shell (Jika Anda SSH ke shell lain, beralih dari BASH ke ZSH, dll dan Anda kehilangan beberapa jika tidak semua keybindings Anda).
Kebanyakan shell memiliki serangkaian urutan default yang sudah terikat sebelumnya. Selain itu, meskipun tidak 100% konsisten, mereka cukup dekat. Jadi, cara termudah yang saya temukan untuk membuat keybinding untuk tindakan tertentu di shell adalah memberi tahu aplikasi terminal Anda untuk mengikat keybindings default yang konsisten di seluruh shell.
Saya menulis solusi kompresif agar terminal Anda merespons sedekat mungkin dengan keybindings mac asli di sini
Buka preferensi iTerm ⌘+ ,dan navigasikan ke
Profiles
tab (Keys
tab dapat digunakan, tetapi menambahkan pengikatan tombol ke profil Anda memungkinkan Anda untuk menyimpan profil Anda dan menyelaraskannya ke beberapa komputer) dankeys
sub-tab dan masukkan yang berikut:Pindahkan kursor satu kata ke kiri
Pindahkan kursor satu kata ke kanan
Dan itu akan memberi Anda perilaku yang diinginkan tidak hanya di ZSH, tetapi juga jika Anda SSH ke server yang menjalankan BASH, irb / pry, node, dll.
sumber
bindkey | grep forward-word
Anda harus melihat"^[f" forward-word
kembali tetapi jika tidak, Anda memiliki 2 opsi. peta ke salah satu dari yang lain yang dikembalikan, atau tambahkan"^[f" forward-word
ke.zshrc
."^[f"
tampaknya yang paling konsisten digunakan mengikat untukforward-word
digunakan di seluruh shell, dan satu-satunya yang ditetapkan secara default dalam versi bash saya.Menambahkan yang berikut ke ~ / .zshrc berhasil untuk saya di OSX Mountain Lion.
sumber
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word
Pada MacOS High Siera 10.13.6 atau Mojave 10.14.2 dan menggunakan iTerm2 dengan ZSH Untuk berpindah dari kata-kata, saya harus mengatakan seperti ini:
Solusi lain tidak berhasil untuk saya
sumber
Meskipun tidak menjawab pertanyaan Anda secara ketat, default mengikat untuk
forward-word
danbackward-word
adalahalt-f
resp.alt-b
.Ini berfungsi di mana-mana, tidak mengharuskan Anda meninggalkan baris beranda, dan memiliki properti mnemonik yang bagus (f = maju, b = mundur), sementara juga konsisten dengan
ctrl-f
danctrl-b
sedangforward-character
danbackward-character
.Sobek tombol panah Anda!
sumber
Untuk membuatnya bekerja untuk saya, saya menggunakan jawaban ini , namun saya harus menukar kode (kiri <-> kanan)
⌥ + ← Kirim Kode Hex: 0x1b 0x66
⌥ + → Kirim Kode Hex: 0x1b 0x62
dan tambahkan yang berikut ini ke saya
~/.zshrc
sumber
bindkey
s Anda , untuk mengikat^[f
keforward-word
, dan tidak kebackward-word
.Pada Mavericks (10.9.4) kodenya adalah 1; 5 ... jadi untuk mengikat alt dengan panah saya memiliki .zshrc saya menggunakan ini:
Anda dapat menggunakan CTRL + V lalu perintah yang ingin Anda gunakan
di Yosemite gunakan solusi Rob
sumber
bindkey "[C" forward-word bindkey "[D" backward-word
Di zsh, Anda dapat menggunakan
bindkey
perintah untuk melihat pintasan keyboard.Gunakan
bindkey
untuk menjelajahi opsi yang tersedia tanpa keybindings kustom.Yaitu
^[b
untuk memundurkan sebuah kata dan^[f
untuk memajukan sebuah kata.sumber