Mengapa fn- ⇧- →(atau yang lain) melakukan home / end di Terminal tetapi ⌘- →bekerja di tempat lain?
Jadi untuk memperjelas pertanyaannya adalah bagaimana membuat Terminal take Command+ ←dan →untuk home and end?
Akan senyaman mungkin, Terminal tidak dapat dengan mudah menyediakan fungsionalitas yang Anda minta.
Alasannya adalah bahwa program yang berjalan di dalam Terminal memiliki aturan yang berbeda untuk memindahkan kursor ke awal / akhir baris, misalnya:
bash
(dan kerang lainnya) menggunakan CtrlAdanCtrlEvi
menggunakan 0dan $/Shift4Program lain dapat menggunakan tombol lain. Tidak ada kombinasi tombol universal untuk memposisikan kursor di awal / akhir baris.
Tentu saja, Terminal dapat menyimpan daftar kombinasi tombol untuk sejumlah program umum, memeriksa apa yang sedang berjalan dan mengirim kunci yang benar untuk Anda, atau dapat menyediakan item menu seperti Pindahkan Kursor Ke Awal Dari Garis Di Dalam Shell ⌘ ← lalu kirim CtrlAdibalik layar. Tapi saya kira insinyur Apple berpikir bahwa jika Anda menjelajah di wilayah CLI Anda tahu keistimewaannya.
Sebagai catatan tambahan, Terminal menyediakan Option←dan Option→yang berperilaku bash
seperti yang Anda harapkan dan memindahkan kursor ke awal kata sebelumnya / berikutnya. Itu karena kombinasi tombol ini dipetakan ke Escbdan Escb(lihat man bash
, bagian "Perintah untuk Memindahkan" untuk informasi lebih lanjut). Di vi
, misalnya, hanya yang terakhir (jenis) yang berfungsi (pada akhir jawaban ini saya akan menunjukkan cara mengkonfigurasi vi
untuk bekerja dengan Option←dan Option→).
Tetapi berkat Automator, AppleScript dan alias bash Anda dapat ⌘←dan ⌘→bekerja dengan bash
(dan mungkin kerang lainnya) dan vi
.
Langkah pertama adalah memetakan ⌘←dan ⌘→ke CtrlAdan CtrlE. Pada langkah kedua, saya akan menunjukkan cara mengkonfigurasi vi
untuk menghormati CtrlAdan CtrlE(yang, sebagai hasilnya, akan membuat vi
kompatibel dengan ⌘←dan ⌘→).
Peta ⌘←dan ⌘→ke CtrlAdanCtrlE
Di Terminal, buka Preferensi ...> Pengaturan> [profil aktif Anda]> Keyboard:
Tekan +, pilih "Kursor Kiri", "Control-Shift" sebagai pengubah dan tindakan "Kirim Teks:". Kemudian tekan CtrlA( \001
akan muncul di bidang teks) dan konfirmasikan dengan OK:
(Dalam versi sebelumnya dari jawaban ini saya menggunakan "Shift" sebagai pengubah. Saya perhatikan bahwa pengaturan ini bertentangan dengan ⌘shift←, yang menunjukkan tab Terminal sebelumnya, jika Anda tidak langsung dilepaskan ⌘. Menggunakan "Control-Shift" memperbaikinya.)
Sekarang tambahkan kombinasi tombol untuk "Kursor Kanan", tetapi tekan CtrlE( \005
akan muncul di bidang teks). Konfirmasikan dengan OK.
Buka Automator (misalnya, tekan ⌘spaceuntuk membuka Spotlight dan ketik Automator ), pilih File> Baru dan pilih Service
:
Seret Run AppleScript
ke panel kanan:
Ketikkan skrip berikut:
on run {input, parameters}
tell application "System Events"
tell application process "Terminal"
key code 123 using {shift down, control down}
end tell
end tell
end run
dan simpan sebagai Move Cursor to Beginning of Line
:
Ulangi langkah 4. hingga 6. dengan skrip ini:
on run {input, parameters}
tell application "System Events"
tell application process "Terminal"
key code 124 using {shift down, control down}
end tell
end tell
end run
dan simpan sebagai Move Cursor to End of Line
:
Seperti inilah Terminal> Layanan sekarang:
Konfigurasikan vi
untuk menghormati CtrlAdanCtrlE
Buka .bashrc
dengan editor favorit Anda dan tambahkan baris ini:
alias vi='vim -c "map <C-A> 0" -c "map <C-E> $" -c "map <Esc>b B" -c "map <Esc>f E"'
Dua map
perintah pertama memberitahu vim
untuk menafsirkan ControlEdan ControlAsebagai $dan 0, yang memindahkan kursor ke awal atau akhir baris, masing-masing.
Dua map
perintah terakhir memberi tahu vim
untuk memindahkan kursor satu kata sekaligus seperti yang Anda harapkan ketika menekan option←dan Option→.
Peringatan
Anda akan melihat bahwa ada jeda singkat antara saat Anda menekan ⌘←atau ⌘→dan saat kursor benar-benar bergerak.
Ingatlah bahwa ini hanya akan berfungsi untuk program yang menghormati CtrlA/ CtrlE, jadi Anda mungkin masih ingin mempelajari kombinasi tombol spesifik dari setiap program yang Anda gunakan di Terminal.
(Diuji pada macOS Sierra 10.12.4)
⌘
pintas yangvi
yang merupakan aplikasi yang sama sekali berbeda dari terminal.Tentu saja mungkin.
Pertama-tama, Anda dapat menggunakan alat gratis "Perintah Ganda" jika Anda memiliki keyboard windows dengan tombol HOME / END untuk membuat mereka berperilaku seperti seharusnya (awal / akhir baris).
Kedua, untuk terminal khusus, pergi ke preferensi, Keyboard, edit ikon / kunci yang terlihat seperti panah menunjuk ke kiri, pilih "kirim teks" dan ketik ctrl + a. Selesai!
Sama untuk tombol akhir ..
Jika Anda tidak memiliki keyboard PC, Anda dapat melakukan hal yang sama dengan kombinasi tombol lainnya.
sumber