Saya masuk di salah satu server penyedia hosting dan memperhatikan ALT + kiri dan ALT + kanan bergerak di antara kata-kata dalam prompt shell di Layar GNU.
Apa jenis binding kunci yang perlu saya konfigurasi dan di mana mendapatkan perilaku ini ke OS X zsh lokal saya yang berjalan di iTerm2?
keyboard-shortcuts
zsh
iterm2
key-binding
Mikko Ohtamaa
sumber
sumber
FOO=BAR
adalah satu kata untuk zsh dan 2 kata untuk bash. Demikian pula, jika Anda mengatur kursor ke akhirfoo --bar
dan melakukan alt + backspace, di bash Anda akan memilikifoo --
dan di zsh Anda akan memilikifoo
. Zsh menambahkan banyak fitur ke bash, tetapi ia juga memiliki banyak default gila untuk ditimpa.Jawaban:
Saya menemukan solusinya di sini: https://coderwall.com/p/h6yfda . Akan menyalin bagian terpenting darinya, jika tautannya turun.
sumber
Anda mencari kata kunci
backward-word
danforward-word
. Jadi, jika Anda menggunakan shell di mana keybindings tidak berfungsi cobabindkey -L | grep backward-word
untuk memeriksa apakah mereka bahkan dikonfigurasi. Ada informasi lebih lanjut tentang ini di zshzle (1) .Anda dapat secara manual mengatur ikatan tombol dengan mengetikkan sesuatu seperti ini:
Saya memiliki beberapa masalah dengan keybindings juga dan masalahnya hampir selalu bahwa tombol Option / Alt mengirim sesuatu yang berbeda dari Meta / Escape yang diharapkan.
sumber
emacs-forward-word
danemacs-backward-word
. Perbedaannya adalah bahwa Anda melompat maju ke akhir kata dan mundur ke awal kata daripada selalu melompat di awal kata.Saya tidak dapat berbicara untuk iTerm tetapi ini adalah keybindings yang saya gunakan untuk menyelesaikan masalah ini di bawah Terminal GNOME, pada Fedora 19, menjalankan ZSH 5.0.7 dengan Oh-my-zsh:
where
\e
== Escape-key-sequence (seperti yang didokumentasikan pada bagian 4.1.1 )dan
[
==O
(huruf besar O; seperti yang didokumentasikan pada bagian 4.2.1 ), dalam beberapa kasus. Untuk misalnya dalamtmux
substitusi ini diperlukan bagi saya, namun tanpatmux
itu diperlukan bahwa tidak ada substitusi yang dilakukan dan[
==[
Kode kunci untuk suatu urutan dapat diperoleh dengan menggunakan
cat
dan menekan urutan yang diinginkan. Sebagai contoh, hasil dari penekanan<Alt+Right>
harus ditafsirkan seperti:^[
==\e
== Escape-key-sequence[
==[
tanpatmux
OR[
==O
(huruf besar) dengantmux
1;3
== Saya tidak yakin tentang yang ini, tetapi secara logis artinya<Alt>
C
== Tombol panah kananKemudian urutan ini diberikan
bindkey
dalam~/.zshrc
file untuk persistensi, sebagai argumen pertama, dan terikat , yang berarti bahwa keystroke dalam argumen satu akan menjalankan perintah editor tertentu (atau widget dalam istilah zsh), ke widget, yang pada widget baris contoh di atas adalahforward-word
.The
~/.zshrc
harus kembali bersumber setelah dua perintah ini ditambahkan untuk itu dengan:$ source ~/.zshrc
Sekarang satu gangguan pada sistem saya adalah bahwa kombinasi khusus ini menyebabkan emulator terminal mengeluarkan bunyi bip setiap kali perintah dikeluarkan, ini saya perbaiki dengan menonaktifkannya.
'Edit'->'Profile Preferences'->'Terminal Bell'
kotak centang.sumber
Apa yang bekerja paling baik untuk saya dalam membuat navigasi baris perintah iTerm2 lebih intuitif bagi saya (saya adalah orang dewasa muda yang tidak tumbuh di baris perintah, tetapi saya telah menghabiskan banyak waktu dalam editor teks dan IDE) adalah untuk:
Natural Text Editing
opsi di drop-down Preset.Ini default kunci editor ke pengaturan yang lebih standar tanpa saya harus memodifikasi setiap opsi secara individual.
sumber
Saya sarankan Anda gunakan
zkbd
untuk mengkonfigurasi keybindings. Saya menggunakannya dan Alt+ Left/ Alt+ Rightberfungsi dengan baik di iTerm2. Lihatzshcontrib(1)
detail di zkbd.sumber