ITerm - pergi satu kata ke belakang dan ke depan

166

Apakah mungkin untuk mengkonfigurasi iTerm 2 untuk mundur dan meneruskan satu kata melalui teks saat ini di baris perintah menggunakan pintasan keyboard?

syntagma
sumber
14
Ini tidak benar-benar menjawab pertanyaan tetapi itu relevan: Anda dapat memilih + klik di mana saja dalam baris perintah untuk memindahkan kursor ke sana.
David Winiecki
Downvoting karena tidak menerima jawaban yang benar
Pi
@ Pi- Mengapa menurut Anda jawaban yang diterima itu bukan jawaban yang benar? 1. Itu muncul hampir 3 tahun sebelum yang dengan suara terbanyak. 2. Ini menyajikan solusi yang tidak berfungsi secara default.
syntagma

Jawaban:

48

Ctrl-[ bmelompat mundur satu kata. Anda juga bisa menggunakan Escatau Ctrl-[, dan funtuk maju.

Yaitu Ctrl+ [release dan kemudian batau f. Atau Escdan batau f.

Informasi lebih lanjut dapat ditemukan di diskusi lain ini di AskDifferent.

Volsk
sumber
3
Ini akan lebih baik jika ada cara untuk kembali banyak kata dengan cepat sambil menahan tombol, daripada harus mengetik urutan tombol untuk setiap kata.
user1717828
Apa itu "Ctrl- ["?
Shihao Xu
Dengan "Ctrl- [" Maksud saya menekan tombol "Ctrl" dan "[" secara bersamaan.
Volsk
327

Membunuh lalat dengan meriam:

  • Buka Preferensi ... > Profil > Kunci
  • Tekan Muat Preset ...
  • Pilih Pengeditan Teks Alami

Kemudian, Anda dapat memindahkan kata ke belakang menggunakan Option ⌥+ dan kata ke depan menggunakan Option ⌥+ , pindah ke awal baris menggunakan fn+ dan ke akhir baris dengan fn+ . Anda juga dapat menghapus kata mundur menggunakan Option ⌥+ , menghapus seluruh baris menggunakan Command ⌘+ .

Jika preset tidak muncul, instal ulang iTerm2. Jika Anda menginstalnya menggunakan Homebrew + Tong:

brew cask reinstall iterm2
Ricardo Stuven
sumber
49
Ini harus menjadi jawaban yang diterima!
guyarad
3
Ini tidak berhasil untuk saya. Parameter: iTerm2 3.1.2, macOS 10.12.6, Keyboard jerman. Dan aku tidak sendirian ...
t0r0X
2
Ini hebat dan akan menambah sebagian besar kebutuhan Anda. Namun itu tidak menambahkan 'pergi untuk memulai / akhir baris melalui CMD + panah kiri / panah kanan`. Untuk tindakan itu, lihat: stackoverflow.com/questions/6205157/…
MikeyN0
38
Hidup saya telah berubah setelah saya melihat jawaban ini. Saya menceraikan istri saya, sekarang saya berada di Lambo dengan seorang supermodel.
Dragos Rizescu
12
Perhatikan bahwa ini adalah Preferensi> Profil > Tombol> Muat Preset, bukan Preferensi> Tombol> Muat Preferensi
kevin
148

Saya suka pengaturan berikut.

  1. Preferensi> Kunci (atau Preferensi> Profil> Kunci)
  2. Klik tanda tambah.

maju satu kata

option+right
send escape sequence
f

mundur satu kata

option+left
send escape sequence
b

hapus ke awal kata ( kredit )

option+delete
send hex code
0x1B 0x08

hapus sampai akhir kata

fn+option+delete
send escape sequence
d

(Saya tidak ingat pasti, tapi saya pikir saya menyalin jawaban ini dari jawaban jherran di bawah ini dan menambahkan lebih banyak ke dalamnya. Saya seharusnya menambahkan informasi tambahan dalam komentar atau mengedit saran pada jawaban itu. Saya tidak tahu bagaimana meningkatkan situasinya, tapi sekarang sudah diketahui.)

David Winiecki
sumber
2
Pada MacOS 10.12, saya perlu menggunakan kode hex 0x17 untuk menghapus ke awal kata
midopa
bekerja seperti pesona dengan macOS 10.12 dan zsh
Sébastien
1
jawaban terbaik yang pernah Anda minum bir dari saya :)
infinity
1
Pertimbangkan untuk mengangkat jawaban jherran. Saya pikir saya sedikit memperbaiki jawaban mereka dan mungkin seharusnya menyarankan edit daripada membuat jawaban saya sendiri. Aku merasa seperti mencurinya.
David Winiecki
Merujuk ini : untuk melakukan Esc-b, saya harus mengirim 0x1b 0x42, dan untuk Esc-f, saya harus mengirim 0x1b 0x46: D
Meredith
36

Untuk Maju (Alt-f), Mundur (Alt-b) dan Hapus (Alt-d) Kata

  1. Buka ITerm.
  2. Pergi ke iTerm> Preferensi ...> Profil> Kunci
  3. Di bawah Tombol Pintasan Profil, klik tanda +.
  4. Ketikkan pintasan kunci Anda (opsi-b, opsi-f, opsi-d, opsi-kiri, dll.)
  5. Untuk Tindakan, pilih Kirim Escape Urutan.
  6. Tulis b, d atau f di kolom input.

Ini setidaknya berfungsi untuk bash. Untuk zsh ada cara lain untuk bernavigasi.

jherran
sumber
2
Saya mencoba menambahkan opsi + jalan pintas kanan dan mendapat pesan peringatan tentang konflik, karena saya tidak menyadari bahwa Anda dapat mengonfigurasi kunci baik di Preferensi> Tombol> Tombol Pintasan Global dan juga Preferensi> Profil> Tombol> Tombol Pintasan Profil. Mengkonfigurasinya di profil default berfungsi.
David Winiecki
1
Ini berfungsi untuk zsh juga!
Andrii Abramov
2
Saya pikir jawaban Anda (untuk solusi yang sama) adalah yang termudah untuk memahami +1
nzaleski
1
Penjelasan yang sangat berguna.
Conti
Sempurna. Anda juga dapat menggunakan Command + F dll sehingga tombol "Alt" berada di posisi yang sama dan tidak diperlukan penyesuaian saat beralih antara PC dan Mac.
friederbluemle
12

Mirip dengan jawaban lain, tetapi untuk Zsh butuh beberapa saat untuk menemukan ini:

Jika Anda menggunakan Zsh, seperti Oh My Zsh, di iTerm kemudian buka: Preferensi> Profil > sub-menu Tombol

Klik tanda +

Tambahkan kombo pintasan Anda, pilih "Send Escape Sequence"

input untuk kiri dan kanan di bawah.

kiri:

[1;5D

Baik:

[1;5C
bdanin
sumber
1
Anda menyelamatkan pasangan hidup saya
thibaut noah
Ini adalah satu-satunya solusi yang bekerja untuk saya
Bryji
Akhirnya, solusi sederhana yang berfungsi: D Terima kasih telah berbagi dengan kami!
Periback
Ini seharusnya jawabannya. Terpilih.
ehime
2

masukkan deskripsi gambar di sini

Buka Preferensi

Konfigurasikan Kunci Opsi Kiri (dan / atau) Opsi Kanan untuk mengirim Esc +

Jika Anda mengacaukan preset Anda, Anda mungkin perlu memuat preset default (waspadalah ini dapat menghapus keybinds kustom Anda!)

masukkan deskripsi gambar di sini

Jika Anda melihat karakter aneh setelah Anda melakukan ini, Anda mungkin perlu mengkonfigurasi ~ / .inputrc atau / etc / inputrc Anda

Tambahkan ini ke ~ / .inputrc Anda:

"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

inputrc contoh lengkap:

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif
yosefrow
sumber
1
Sempurna ... tks.
paivaric
Tidak masalah! Senang membantu :)
yosefrow
2

Anda dapat mengatur terminal Anda dalam mode vi set -o viagar dapat menggunakan perintah vi motion yang biasa (tambahkan baris .bash_profileke untuk menyimpan pengaturan secara permanen.)

Jadi, seolah-olah dalam vi, Anda dapat menekan Esc, lalu buntuk memindahkan satu kata ke belakang ( wuntuk maju), pergi ke awal baris dengan 0, atau cari karakter mundur dengan F+ char.

Tekan iuntuk kembali ke mode Normal dan masukkan.

Mereka yang akrab dengan vi dapat melakukan lebih banyak lagi. Lembar cheat dapat ditemukan di sini .

sebnukem
sumber
2
vim menyelesaikan semuanya! : D
Breno Salgado
Memukul Esckemudian Ihanya pergi sekali ke awal baris sedikit kurang nyaman daripada Ctrl-a- kasus penggunaan ini sering terjadi ketika Anda hanya ingin memodifikasi nama perintah. Jadi saya menggunakan mode vi dengan beberapa perubahan keybinding di iTerm2 untuk memetakan Ctrl-Adan mirip dengan urutan melarikan diri Esc+0. Dengan begitu kasing ini lebih cepat karena berakhir pada mode edit.
rfabbri
-1

Dengan iTerm2 3.1.4, saya dapat mengatur yang berikut tanpa menambahkan pemetaan kunci individu.

  1. Buka Preferensi> Profil> Kunci
  2. Kiri / Kanan ⌥ Kunci: Pilih Esc +

Dengan sesi Terminal baru Anda sekarang dapat menggunakan:

Option ⌥+ funtuk Maju

Option ⌥+ buntuk Maju

Option ⌥+ Delete ⌫untuk menghapus kata

Takdir
sumber
2
Apa bedanya dengan jawaban yang sangat banyak dipilih? apple.stackexchange.com/a/293988/237
user151019