Apakah Anda tahu kode / urutan untuk Command + Delete itu? (kosongkan prompt)
Steven Lu
10
Saya menjawab komentar pertama saya di tempat lain, pada dasarnya hex-code 0x15 memberikan Ctrl + U yang membersihkan baris. Namun saya menemukan 0x01 Ctrl + A untuk mengganggu penggunaan Tmux. Karenanya saya bermaksud memetakannya sebagai tombol Home (fungsi yang sama seperti Fn + Left pada keyboard Mac).
Steven Lu
7
Urutan escape untuk Home adalah [1 ~ dan sequence escape untuk End adalah [4 ~
Steven Lu
3
Bekerja seperti pesona, luar biasa!
Juto
25
Ikatan yang benar adalah ⌘← "SEND ESC SEQ" OHuntuk Home dan ⌘→ "SEND ESC SEQ" OFuntuk End (itu huruf besar 'bukan nol). Ini mensimulasikan sebenarnya menekan tombol Home dan End, dan dengan demikian akan bekerja dalam bash, vim, dll.
Timothy Zorn
433
Untuk melompat di antara kata-kata dan mulai / akhir baris di iTerm2 pilih salah satu dari dua solusi di bawah ini.
1. Solusi sederhana (disarankan)
Buka Preferensi
Klik tab "Profil"
Pilih profil dalam daftar di sebelah kiri (mis. "Default") dan klik tab "Keys"
Klik downdown "Preset" dan pilih "Natural Text Editing"
2. Memetakan kunci secara manual (Lanjutan)
Jika Anda tidak ingin menggunakan preset "Natural Text Editing" yang disebutkan di atas, Anda dapat memetakan kunci yang Anda butuhkan secara manual:
Buka Preferensi
Klik tab "Tombol"
Klik [+]ikonnya
Anda sekarang dapat menambahkan pintasan keyboard berikut:
Ini bekerja dengan baik untuk saya di iTerm2 dan sangat mudah diikuti, terima kasih!
Natetronn
3
Hanya mengklarifikasi apa yang dilakukan ikatan asli untuk b ←? Saya melihatnya Says send Hex Codes: 0x1b 0x1b 0x5b 0x44. Akan baik untuk mengetahui kalau-kalau orang tidak ingin menghapus ini.
Agustus
5
Lompat ke awal dan akhir baris tidak berfungsi untuk saya menggunakan zsh. Menggunakan "Kode Hex" "0x01" / "0x05", seperti yang disarankan oleh jawaban teratas bekerja untuk saya.
Balik
2
Melompat ke awal dan akhir baris tidak bekerja untuk saya juga. Jawaban teratas berhasil.
hisabimbola
3
Apakah iTerm memiliki cara untuk menggabungkan ini ke dalam preset yang bisa kita muat? Tampaknya menjengkelkan untuk mengetik secara manual tetapi ini bekerja untuk saya dan itu mengagumkan. Terima kasih ya!
Agustus
259
Saya melihat ada banyak jawaban bagus sudah, tetapi ini harus memberikan yang paling dekat dengan fungsionalitas OSX asli mungkin lebih dari sekedar shell Anda. Saya memverifikasi bahwa ini berfungsi dalam ZSH, Bash, node, python -i, iex dan irb / pry sesi (menggunakan permata rb-readline untuk readline, tetapi harus bekerja untuk semua).
Buka preferensi ITerm ⌘+ ,dan navigasikan ke Profilestab ( Keystab tersebut dapat digunakan, tetapi menambahkan pengikat tombol ke profil Anda memungkinkan Anda untuk menyimpan profil Anda dan menyinkronkannya ke beberapa komputer) dan keyssub-tab dan masukkan yang berikut ini:
Hapus semua karakter yang tersisa dari kursor
⌘+ ←DeleteKirim Kode Hex:
0x15Lebih kompatibel, tetapi fungsionalitas kadang-kadang adalah untuk menghapus seluruh baris daripada hanya karakter di sebelah kiri kursor. Saya pribadi menggunakan ini dan kemudian menimpa zsh bindkey saya untuk ^Umenghapus hanya hal-hal di sebelah kiri kursor (lihat di bawah).
atau
0x18 0x7fKurang kompatibel, tidak bekerja di simpul dan tidak akan bekerja di zsh secara default, lihat di bawah untuk memperbaiki zsh (bash / irb / pry harus baik-baik saja), melakukan fungsi yang diinginkan ketika itu bekerja.
Hapus semua karakter di kanan kursor
⌘+ fn+ ←Deleteatau ⌘+ Delete→Kirim Kode Hex:0x0b
Hapus satu kata di sebelah kiri kursor
⌥+ ←DeleteKirim Kode Hex:
0x1b 0x08 Istirahat di Ix Elixir, tampaknya berfungsi dengan baik di tempat lain
atau
0x17 Berfungsi di mana-mana, tetapi tidak berhenti pada pemutusan kata normal di IRB dan sebagai gantinya akan menghapus sampai ia melihat ruang literal.
Hapus satu kata di kanan kursor
⌥+ fn←Deleteatau ⌥+ Delete→Kirim Kode Hex:0x1b 0x64
Pindahkan kursor ke garis depan
⌘+ ←Kirim Kode Hex:0x01
Pindahkan kursor ke ujung garis
⌘+ →Kirim Kode Hex:0x05
Pindahkan kursor satu kata ke kiri
⌥+ ←Kirim Kode Hex:0x1b 0x62
Pindahkan kursor satu kata ke kanan
⌥+ →Kirim Kode Hex:0x1b 0x66
Batalkan
⌘+ zKirim Kode Hex:0x1f
Mengulang biasanya tidak terikat dalam bash, zsh atau readline, jadi kita dapat mengaturnya ke hexcode yang tidak terpakai yang kemudian dapat kita perbaiki di zsh
⇧+ ⌘+ Zatau ⌘+ yKirim Kode Hex:0x18 0x1f
Sekarang bagaimana cara memperbaiki yang tidak berfungsi
Untuk zsh, Anda dapat mengatur ikatan untuk ⌘+ yang belum berfungsi
←Deletedan ⇧+ ⌘+ Z/ ⌘+ ydengan menjalankan:
# changes hex 0x15 to delete everything to the left of the cursor,# rather than the whole line
$ echo 'bindkey "^U" backward-kill-line'>>~/.zshrc
# binds hex 0x18 0x7f with deleting everything to the left of the cursor
$ echo 'bindkey "^X\\x7f" backward-kill-line'>>~/.zshrc
# adds redo
$ echo 'bindkey "^X^_" redo'>>~/.zshrc
# reload your .zshrc for changes to take effect
$ source ~/.zshrc
Saya tidak dapat menemukan solusi untuk menambahkan pengulangan di bash atau readline, jadi jika ada yang tahu solusi untuk salah satu dari itu, silakan komentar di bawah ini dan saya akan mencoba menambahkannya.
Bagi siapa pun yang mencari tabel pencarian tentang cara mengubah urutan kunci ke hex, saya menemukan tabel ini sangat membantu.
Itu sangat berguna, membuat banyak perbedaan! Saya ingin menunjukkan bahwa beberapa orang dapat menjadi bingung dengan $di depan echo(hapus saja?). Selain itu, itu sempurna. Terima kasih.
edmundo
1
@Christophe Jadi sepertinya ada ikatan seperti yang seharusnya. Entah Anda membuat kesalahan dengan menambahkan nilai hex di atau pengikat tombol untuk kata mundur sedang ditimpa. Jalankan bindkey | grep "\^\[b"dan itu akan memberi tahu Anda jika ada sesuatu yang menimpa setelah ditetapkan. Ini harus hanya kembali #=> "^[b" backward-word. Jika ditimpa, Anda harus menemukan di mana ditimpa dan menghapusnya. Jika itu tidak memungkinkan, Anda dapat menjalankannya echo 'bindkey "^[b" backward-word' >> ~/.zshrcdan akan menambahkannya ke baris terakhir Anda .zshrc, kemudian restart iTerm dan itu akan berfungsi
Travis
2
@Christophe periksa keystab di preferensi iTerm untuk melihat apakah itu juga memetakan ⌥+ ←ke sesuatu. Jika demikian hapus. Anda dapat menguji apakah Anda bbekerja dengan benar dengan menekan dengan cepat escmelepaskan, lalu menekan b. Seharusnya melompat satu kata ke kiri. Atau, Anda dapat memetakan ⌥+ ←ke hex 0x1b 0x42atau0x1b 0x5b 0x31 0x3b 0x35 0x44 . Saya memverifikasi bahwa keduanya berfungsi untuk saya. Saya benar-benar berpikir Anda telah ⌥+ ←ditimpa di iTerm, baik di profilekeystab atau keystab Anda.
Travis
3
Luar biasa! Baru belajar tentang Undo plus Redo binding dari sini.
ecbrodie
3
Saya melakukan ini secara manual dan saya pikir mengapa saya tidak dapat mengimpor profil untuk melakukan ini? Kemudian saya membuat profil GabLeRoux / iterm2-macos-dynamic berdasarkan instruksi ini. Ini berfungsi dengan sempurna, terima kasih 🍻
GabLeRoux
48
Ikuti tutorial yang Anda sebutkan di atas untuk mengatur preferensi utama Anda di iterm2 .
Buat kunci shorcut baru
Pilih "Kirim urutan pelarian" sebagai tindakan
Kemudian, untuk mengatur cmd-kiri , dalam teks di bawah ini:
Suka ini! solusi lain tidak berhasil untuk saya. Saya Menghabiskan berjam-jam frustrasi bahwa saya tidak bisa menggunakan ctrl + a dan ctrl + e di iterm2. Tapi saya tidak mau menyerah begitu saja. Ini benar-benar berfungsi, terima kasih!
FLY
Solusi lain tidak bekerja untuk saya juga, tetapi yang ini berhasil.
Braham Snyder
42
Di iTerm 3.0.12 Anda dapat beralih ke Natural Text Editingpreset:
ITerm → Preferensi → Profil → Kunci
Peringatan Karena ini adalah preset, ia dapat menimpa kunci yang telah Anda ikat sebelumnya. Jadi lebih baik menyimpan bindings kunci Anda saat ini sebelum menerapkan preset.
Bisakah Anda menguraikan lebih lanjut jawaban Anda? Seperti pada, apa yang termasuk dalam pengaturan dan mungkin ditimpa?
Carles Alcolea
Terima kasih atas jawabannya. Juga membahas kemungkinan praktik terbaik untuk menerapkan ini ke profil kustom Anda sendiri sehingga Anda tidak mengacaukan default dan dapat beralih profil sebagai "mode" pengeditan teks alami
Petunjuk ada di readme dan jauh lebih cepat untuk mengimpor ini daripada menambahkannya secara manual. Saya membuat jawaban ini sesuai permintaan @ gooli karena ini disembunyikan dalam komentar. Semoga Anda menikmati ini 🍻
Kembali ke sini setahun kemudian dan sangat senang menemukan ini!
Elifiner
9
Hanya untuk membantu siapa pun yang memiliki masalah yang sama tetapi secara khusus menggunakan Zsh shell dengan iTerm 2. Ternyata Zsh tidak membaca /etc/inputrcdengan benar , sehingga gagal memahami ikatan utama apa pun yang Anda atur melalui preferensi!
Untuk memperbaiki ini, Anda perlu menambahkan beberapa binding kunci ke .zshrcfile Anda , seperti:
Perhatikan garis miring terbalik pada contoh di atas sebelum "e", artikel tertaut tidak menunjukkannya, jadi tambahkan mereka ke .zshrcfile Anda saat menambahkan binding.
Seperti Menjelaskan di sini , Anda dapat melakukannya dengan langkah-langkah sederhana:
Secara default, lompatan kata (opsi + → atau ←) dan penghapusan kata (opsi + spasi mundur) tidak berfungsi. Untuk mengaktifkannya, buka "ITerm → Preferensi → Profil → Kunci → Muat Preset ... → Pengeditan Teks Alami → Boom! Head meledak
Bagi saya, kombinasi berikut berfungsi:
| Key Action Esc+ End result |
|-----------------------------------------------------|
| ⌘← Send Escape Sequence a Send ^[ a |
| ⌘→ Send Escape Sequence e Send ^[ e |
Jawaban:
Tambahkan di iTerm2 Tombol Pintasan Profil berikut
Berikut ini visual untuk mereka yang membutuhkannya
sumber
⌘← "SEND ESC SEQ" OH
untuk Home dan⌘→ "SEND ESC SEQ" OF
untuk End (itu huruf besar 'bukan nol). Ini mensimulasikan sebenarnya menekan tombol Home dan End, dan dengan demikian akan bekerja dalam bash, vim, dll.Untuk melompat di antara kata-kata dan mulai / akhir baris di iTerm2 pilih salah satu dari dua solusi di bawah ini.
1. Solusi sederhana (disarankan)
2. Memetakan kunci secara manual (Lanjutan)
Jika Anda tidak ingin menggunakan preset "Natural Text Editing" yang disebutkan di atas, Anda dapat memetakan kunci yang Anda butuhkan secara manual:
[+]
ikonnyaAnda sekarang dapat menambahkan pintasan keyboard berikut:
Pindahkan kursor satu kata ke kiri
0x1b 0x62
Pindahkan kursor satu kata ke kanan
0x1b 0x66
Pindahkan kursor ke awal baris
0x01
Pindahkan kursor ke ujung baris
0x05
Hapus kata
0x1b 0x08
Hapus baris
0x15
Batalkan
0x1f
Jangan lupa untuk menghapus ikatan sebelumnya :
sumber
Says send Hex Codes: 0x1b 0x1b 0x5b 0x44
. Akan baik untuk mengetahui kalau-kalau orang tidak ingin menghapus ini.Saya melihat ada banyak jawaban bagus sudah, tetapi ini harus memberikan yang paling dekat dengan fungsionalitas OSX asli mungkin lebih dari sekedar shell Anda. Saya memverifikasi bahwa ini berfungsi dalam ZSH, Bash, node, python -i, iex dan irb / pry sesi (menggunakan permata rb-readline untuk readline, tetapi harus bekerja untuk semua).
Buka preferensi ITerm ⌘+ ,dan navigasikan ke
Profiles
tab (Keys
tab tersebut dapat digunakan, tetapi menambahkan pengikat tombol ke profil Anda memungkinkan Anda untuk menyimpan profil Anda dan menyinkronkannya ke beberapa komputer) dankeys
sub-tab dan masukkan yang berikut ini:Hapus semua karakter yang tersisa dari kursor
Hapus semua karakter di kanan kursor
Hapus satu kata di sebelah kiri kursor
Hapus satu kata di kanan kursor
Pindahkan kursor ke garis depan
Pindahkan kursor ke ujung garis
Pindahkan kursor satu kata ke kiri
Pindahkan kursor satu kata ke kanan
Batalkan
Mengulang biasanya tidak terikat dalam bash, zsh atau readline, jadi kita dapat mengaturnya ke hexcode yang tidak terpakai yang kemudian dapat kita perbaiki di zsh
Sekarang bagaimana cara memperbaiki yang tidak berfungsi
Untuk zsh, Anda dapat mengatur ikatan untuk ⌘+ yang belum berfungsi ←Deletedan ⇧+ ⌘+ Z/ ⌘+ ydengan menjalankan:
Saya tidak dapat menemukan solusi untuk menambahkan pengulangan di bash atau readline, jadi jika ada yang tahu solusi untuk salah satu dari itu, silakan komentar di bawah ini dan saya akan mencoba menambahkannya.
Bagi siapa pun yang mencari tabel pencarian tentang cara mengubah urutan kunci ke hex, saya menemukan tabel ini sangat membantu.
sumber
$
di depanecho
(hapus saja?). Selain itu, itu sempurna. Terima kasih.bindkey | grep "\^\[b"
dan itu akan memberi tahu Anda jika ada sesuatu yang menimpa setelah ditetapkan. Ini harus hanya kembali#=> "^[b" backward-word
. Jika ditimpa, Anda harus menemukan di mana ditimpa dan menghapusnya. Jika itu tidak memungkinkan, Anda dapat menjalankannyaecho 'bindkey "^[b" backward-word' >> ~/.zshrc
dan akan menambahkannya ke baris terakhir Anda.zshrc
, kemudian restart iTerm dan itu akan berfungsikeys
tab di preferensi iTerm untuk melihat apakah itu juga memetakan⌥
+←
ke sesuatu. Jika demikian hapus. Anda dapat menguji apakah Andab
bekerja dengan benar dengan menekan dengan cepatesc
melepaskan, lalu menekanb
. Seharusnya melompat satu kata ke kiri. Atau, Anda dapat memetakan⌥
+←
ke hex0x1b 0x42
atau0x1b 0x5b 0x31 0x3b 0x35 0x44
. Saya memverifikasi bahwa keduanya berfungsi untuk saya. Saya benar-benar berpikir Anda telah⌥
+←
ditimpa di iTerm, baik diprofile
keys
tab ataukeys
tab Anda.Ikuti tutorial yang Anda sebutkan di atas untuk mengatur preferensi utama Anda di iterm2 .
ATAU
sumber
Di iTerm 3.0.12 Anda dapat beralih ke
Natural Text Editing
preset:Peringatan Karena ini adalah preset, ia dapat menimpa kunci yang telah Anda ikat sebelumnya. Jadi lebih baik menyimpan bindings kunci Anda saat ini sebelum menerapkan preset.
sumber
Untuk referensi cepat siapa pun yang ingin pergi ke akhir baris atau mulai baris di iTerm2, tautan di atas http://hackaddict.blogspot.com/2007/07/skip-to-next-or-previous-word- in-iterm.html mencatat bahwa di iTerm2:
sumber
Saya menggunakan jawaban Travis dan saya membuat profil dinamis yang dapat Anda impor berdasarkan instruksinya.
GabLeRoux / iterm2-macos-dynamic-profile
Petunjuk ada di readme dan jauh lebih cepat untuk mengimpor ini daripada menambahkannya secara manual. Saya membuat jawaban ini sesuai permintaan @ gooli karena ini disembunyikan dalam komentar. Semoga Anda menikmati ini 🍻
sumber
Hanya untuk membantu siapa pun yang memiliki masalah yang sama tetapi secara khusus menggunakan Zsh shell dengan iTerm 2. Ternyata Zsh tidak membaca
/etc/inputrc
dengan benar , sehingga gagal memahami ikatan utama apa pun yang Anda atur melalui preferensi!Untuk memperbaiki ini, Anda perlu menambahkan beberapa binding kunci ke
.zshrc
file Anda , seperti:Perhatikan garis miring terbalik pada contoh di atas sebelum "e", artikel tertaut tidak menunjukkannya, jadi tambahkan mereka ke
.zshrc
file Anda saat menambahkan binding.sumber
Binding emacs mode lama masih bisa bekerja di terminal iterm2 dan os x:
Preferensi -> Profil -> Tombol (sub tab dalam profil)
Left/Right option <kbd>⌥</kbd> key acts as +Esc
(mirip di os x terminal)Ini harus memungkinkan alt- fdan alt- buntuk memindahkan kata demi kata. (Masih ctrl- adan ctrl- eselalu bekerja seperti biasa)
Jika diatur sebagai
meta
binding lama itu akan berfungsi sementara beberapa binding iterm2 tidak tersedia.sumber
Seperti Menjelaskan di sini , Anda dapat melakukannya dengan langkah-langkah sederhana:
sumber
Satu-satunya hal yang berhasil untuk pindah ke awal dan akhir baris adalah
⌘← "SEND ESC SEQ" OH
- untuk pindah ke awal baris⌘→ "SEND ESC SEQ" OF
- untuk pindah ke akhir barissumber
bind -p
akan menampilkan daftar kunci lolos yang terikat di shell Anda, yang mungkin membantu memberi Anda lebih banyak ide / istilah pencarian.sumber
bind -p
hanya bekerja di shell Bourne (bash, sh) untuk zsh, csh tcsh, gunakanbindkey
.dijelaskan di https://aaronaddleman.com/articles/hexcodes-and-iterm/
Anda dapat menggunakan
xxd -psd
untuk mendapatkan kode hex kunci.sumber
Bagi saya, kombinasi berikut berfungsi:
| Key Action Esc+ End result | |-----------------------------------------------------| | ⌘← Send Escape Sequence a Send ^[ a | | ⌘→ Send Escape Sequence e Send ^[ e |
sumber