it-swarm-id.com

Apakah ada cara di Terminal OS X untuk memindahkan kursor kata demi kata?

Saya tahu kombinasinya Ctrl+A untuk melompat ke awal perintah saat ini, dan Ctrl+E untuk melompat ke ujung.

Tetapi apakah ada cara untuk melompat dari kata demi kata, seperti Alt+/ dalam aplikasi Kakao tidak?

720
Arne

Di luar kotak Anda dapat menggunakan yang cukup aneh Esc+F untuk pindah ke awal Kata berikutnya dan Esc+B untuk pindah ke awal kata saat ini.

522
Kristian J.

Di Mac OS X - pintasan keyboard berikut berfungsi secara default. Perhatikan bahwa Anda harus membuat Opsi kunci aksi seperti Meta di preferensi Terminal (di bawah tab keyboard)

  • alt (⌥)+F untuk melompat F orward oleh Word
  • alt (⌥)+B untuk melompat B ackward oleh Word

Saya telah mengamati bahwa binding kunci emacs default untuk navigasi teks sederhana tampaknya berfungsi pada bash shells. Kamu bisa memakai

  • alt (⌥)+D untuk menghapus kata mulai dari posisi kursor saat ini
  • ctrl+A untuk melompat ke mulai dari garis
  • ctrl+E untuk melompat ke ujung garis
  • ctrl+K untuk membunuh garis mulai dari posisi kursor
  • ctrl+Y untuk menempelkan teks dari buffer kill
  • ctrl+R untuk membalikkan pencarian untuk perintah yang Anda ketik di masa lalu dari riwayat Anda
  • ctrl+S untuk meneruskan pencarian (berfungsi di zsh untuk saya tetapi tidak dengan bash)
  • ctrl+F untuk bergerak maju dengan char
  • ctrl+B untuk bergerak mundur oleh char
  • ctrl+W untuk menghapus Word mundur dari posisi kursor
384
Varun Katta

Begini cara melakukannya

Secara default, Terminal memiliki pintasan ini untuk bergerak (kiri dan kanan) Kata demi kata:

  • esc+B (kiri)
  • esc+F (kanan)

Anda dapat mengonfigurasi alt+ dan  untuk menghasilkan urutan itu untuk Anda:

  • Buka preferensi Terminal (cmd+,);
  • Pada tab Pengaturan, pilih Keyboard dan klik dua kali ⌥ ← jika ada, atau tambahkan jika tidak.
  • Atur pengubah seperti yang diinginkan, dan ketik tombol pintas di dalam kotak: esc+B, menghasilkan teks \033b (Anda tidak dapat mengetik teks ini secara manual).
  • Ulangi untuk Word-right (esc+F menjadi \033f)

Atau, Anda dapat merujuk ke posting blog ini di textmate:

http://blog.macromates.com/2006/Word-movement-in-terminal/

273
Fil

Beralih ke iTerm2 . Ini gratis dan jauh lebih bagus daripada terminal tua biasa. Juga memiliki lebih banyak opsi untuk penyesuaian, seperti pintasan keyboard.

Saya juga suka yang bisa Anda gunakan cmd dan 1-9 untuk beralih antar tab. Cobalah dan Anda tidak akan pernah kembali ke terminal reguler :)

Cara mengatur preferensi papan ketik khusus di iterm2

  • Instal iTerm2
  • Luncurkan dan kemudian pergi ke panel preferensi.
  • Pilih tab profil keyboard
  • Anda harus menyalin profil ke sesuatu yang baru dan kemudian menghapus pintasan tombol panah seperti ^Right/Left atau jika Anda tidak peduli dengan cadangan cukup hapus dari profil default.
  • Selanjutnya pastikan profil Anda yang diubah dipilih (berbintang)

Picture 1.png

  • Sekarang pilih tab keyboard (baris paling atas)

iTerm 2

  • Klik tombol plus untuk menambahkan pintasan keyboard baru
  • Dalam jenis kotak pertama CMD+Left arrow
  • Di kotak kedua pilih "kirim kode pelarian"
  • Pada kotak ketiga ketikkan hurufnya B

Picture 2.png

  • Ulangi dengan kombinasi tombol yang diinginkan. escape+B memindahkan satu Word ke kiri, escape+f memindahkan satu Word ke kanan.
  • anda mungkin juga ingin mengatur cmd+d untuk menghapus Word di depan kursor dengan escape+d

Saya sering menekan tombol yang salah (cmd / control / alt) dengan tombol panah dan jadi saya memiliki kombinasi tombol panah saya dengan tombol-tombol itu semua diatur untuk melompat maju dan kembali kata-kata, tapi tolong lakukan yang paling cocok untuk Anda.

157
cwd

Sebenarnya ada pendekatan yang jauh lebih baik. Memegang option ( alt pada beberapa keyboard) dan tekan tombol panah kiri atau kanan untuk bergerak oleh Word. Sederhana seperti itu.

option
option

Juga ctrle akan membawa Anda ke akhir baris dan ctrla akan membawa Anda ke awal.

142
mdubez

Saya sudah Alt+/ berfungsi: buka Preferensi "Pengaturan" Keyboard, atur entri untuk kursor kiri ke kirim string ke Shell:\033b, dan setel - opsi kursor kanan ke kirim string ke Shell:\033f. Anda juga dapat menggunakan ini untuk kombinasi tombol Kontrol lainnya.

78
Peter Hilton

Sebenarnya itu tergantung pada apa Shell yang Anda gunakan, namun sebagian besar shell memiliki ikatan yang sama. Binding yang Anda maksudkan (mis. Ctrl+A dan Ctrl+E) adalah binding yang akan Anda temukan di banyak program lain dan mereka digunakan untuk waktu yang lama, BTW juga berfungsi di sebagian besar aplikasi UI.

Berikut tampilan binding standar untuk Bash:

Pintasan Keyboard Bash Paling Penting

Harap perhatikan juga bahwa Anda dapat menyesuaikannya. Anda perlu membuat file, beri nama sesuai keinginan, saya menamai milik saya .bash_key_bindings dan memasukkannya ke direktori home saya. Di sana Anda dapat mengatur beberapa opsi bash umum dan Anda juga dapat mengatur binding kunci. Untuk memastikan mereka diterapkan, Anda perlu memodifikasi file bernama ". Bashrc" yang dibaca oleh bash saat start-up (Anda harus membuatnya, jika tidak ada) dan lakukan panggilan berikut ke sana:

bind -f ~/.bash_key_bindings

~ berarti direktori home dalam bash, seperti yang dinyatakan di atas, Anda dapat memberi nama file sesuai keinginan dan juga menempatkannya di tempat yang Anda suka selama Anda memberi makan jalur + nama yang tepat untuk diikat.

Izinkan saya menunjukkan beberapa cuplikan file .bash_key_bindings saya:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

Ini hanya menetapkan beberapa opsi (mis. Nonaktifkan bel; semua ini dapat dilihat di halaman web bash).

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

Ini memastikan bahwa karakter saja tidak melakukan apa-apa selain memastikan karakter "diketik" (mereka memasukkan diri ke Shell).

"\C-dW": kill-Word
"\C-dL": kill-line
"\C-dw": backward-kill-Word
"\C-dl": backward-kill-line
"\C-da": kill-line

Ini cukup menarik. Jika saya memukul Ctrl+D sendirian (saya memilih d untuk dihapus), tidak ada yang terjadi. Tetapi jika saya kemudian mengetikkan huruf kecil w, kata di sebelah kiri kursor dihapus. Namun, jika saya mengetikkan huruf besar, kata di sebelah kanan kursor terbunuh. Hal yang sama berlaku untuk l dan L mengenai seluruh baris mulai dari kursor. Jika saya mengetikkan "a", seluruh baris sebenarnya dihapus (semuanya sebelum dan sesudah kursor).

Saya menempatkan satu kata ke depan Ctrl+F dan satu kata mundur Ctrl+B

"\C-f": forward-Word
"\C-b": backward-Word

Seperti yang Anda lihat, Anda bisa membuat jalan pintas, yang mengarah ke tindakan segera, atau Anda bisa membuat, yang hanya init urutan karakter dan kemudian Anda harus mengetikkan satu (atau lebih) karakter untuk menyebabkan tindakan berlangsung sebagai ditunjukkan dalam contoh lebih lanjut di atas.

Jadi, jika Anda tidak puas dengan binding default, silakan menyesuaikannya sesuka Anda. Inilah tautan ke manual bash untuk informasi lebih lanjut.

38
Mecki

Jika Anda adalah pengguna Vim, Anda dapat mencoba mode vim bash. Jalankan ini atau letakkan di file ~/.bashrc Anda:

set -o vi

Secara default Anda berada dalam mode memasukkan; tekan escape dan Anda dapat bergerak seperti yang Anda bisa dalam mode normal Vim, jadi gerakan demi kata adalah w atau b, dan kunci gerakan biasa juga bekerja .

14
jches

Jika Anda memeriksa Use option as meta key di tab keyboard preferensi, maka perintah gaya emacs default untuk maju- dan mundur-Word dan ⌥F (Alt+F) dan ⌥B (Alt+B) masing-masing.

Saya akan merekomendasikan membaca Dari Bash ke Z-Shell . Jika Anda ingin meningkatkan kecakapan bash/zsh Anda!

14
Matt

Pada Mac OS X Lion 10.7, Terminal memetakan Option-Left/Right Arrow untuk Esc-b/f secara default, jadi ini sekarang merupakan bawaan untuk bash dan program lain yang menggunakan keybindings yang kompatibel dengan emacs ini.

12
Chris Page

Di Bash, ini terikat Esc-B dan Esc-F. Bash memiliki banyak, lebih banyak pintasan keyboard; lihat output dari bind -p untuk melihat apa itu.

8
Andy Lynch

Di bawah iterm2's Preferensi> Profil> Tombol , Anda mengklik + di bawah Pemetaan Kunci dan merekam pintasan baru. Untuk Aksi , pilih Send Escape Sequence dan ketik b atau f untuk masing-masing mundur dan maju.

Ketika saya mencoba merekam satu untuk (Ctrl+), Saya perhatikan di bidang Pintasan Keyboard yang panahnya tidak pernah muncul. Ternyata saya harus menonaktifkan mac default System Preferences> Keyboard> Shortcuts> Mission Control shorcuts terlebih dahulu untuk mendapatkan sesuatu untuk bekerja, karena mereka akan menimpa iterm2's pintasan default. Seharusnya berlaku untuk aplikasi terminal standar juga.

Keyboard system preferences

3
qix

Tahan tombol Option dan klik di mana Anda ingin kursor bergerak

3
Dan Alboteanu

Gunakan Pengeditan Teks Alami preset!

 enter image description here 

Pada dasarnya ia mengikat, di antara urutan kunci lainnya, Option + LeftArrow ke ^[b sequence dan Option + RightArrow to ^[f

Ini bekerja di ikan dan bash, serta di terminal psql.

1
Dziamid