Saat menulis perintah panjang di baris perintah * nix dan harus kembali ke karakter pertama, untuk menambahkan sesuatu di awal (misalnya a nohup
, ketika Anda menyadari prosesnya akan panjang, atau sudo
, ketika Anda sadar bahwa Anda memerlukan izin root) mungkin perlu waktu lama bagi kursor untuk kembali ke karakter pertama ...
Apakah ada jalan pintas yang memungkinkan Anda melompat langsung ke sana?
Saya menggunakan mac, jadi Homebukan pilihan
linux
command-line
unix
keyboard-shortcuts
cursor
clami219
sumber
sumber
sudo
adalah mengetiksudo !!
. The!!
akan diganti dengan perintah sebelumnya.Jawaban:
Ctrl+Aharus bekerja. Ctrl+Esesuai dengan akhir baris perintah.
sumber
Ini tergantung pada shell yang dimaksud.
Beberapa shell (seperti AT&T ksh88) hampir tidak menawarkan pengeditan input line.
Di shells yang menerapkan
vi
mode editing (Anda mungkin harus mengaktifkan ini denganset -o vi
), ini dilakukan dengan menekan Esc(untuk beralih dari mode insert) diikuti dengan 0untuk melompat ke awal baris atau $untuk melompat ke akhir baris. Kemudian masukkan kembali mode penyisipan dengan menekan i- kursor akan tetap di tempatnya - atau a- kursor akan memindahkan satu ke kanan untuk menambahkan teks.vi
pengeditan mode baru-baru ini dimandatkan oleh standar POSIX.The jauh lebih umum
emacs
editing modus (terima dewa, itu tidak ada hubungannya dengan Emacs editor slash-sistem operasi) menggunakan Ctrl-Auntuk melompat ke awal baris dan Ctrl-Emelompat ke akhir baris. Mode ini mengharuskan Anda untuk menjalankanset -o emacs
banyak shell (paling jelas AT&T ksh93) tetapi diaktifkan secara default di mksh dan GNU bash.Sebagian besar shell modern mendukung mode
emacs
danvi
mode. (Kedua mode ini membutuhkan tty untuk berfungsi.)Dalam banyak shell, Anda dapat menyesuaikan keybindings; biasanya untuk
emacs
mode, meskipun beberapa shell juga memungkinkan menyesuaikan keybinding untukvi
mode. Jika Anda memiliki kunci yang ingin Anda gunakan untuk terikat, pertama-tama Anda harus mengetahui urutan kunci yang dihasilkannya (misalnya, pada sistem saya, Alt-CursorLeftmenghasilkan Esc+[+1+;+3+D(^[[1;3D
;^X
adalah Ctrl-Xdan^[
sekarang Esc), jadi saya dapat mengetikkan sesuatu sepertidan pengikat kunci ini akan berubah, tergantung pada cangkangnya. Anda biasanya dapat menyimpannya di file startup (
~/.mkshrc
,~/.kshrc
) atau, untuk GNU bash, di~/.inputrc
. Perhatikan bahwa tidak semua cangkang mendukung mengikat semua kunci di semua versi.Anda biasanya dapat mengetahui karakter apa yang dihasilkan kunci dengan hanya berjalan
cat
di shell, mengetik kunci dan menonton. Lalu tekan^C
( Ctrl-C) untuk membatalkancat
.sumber
^D^D
saya masih mendapatkan "sampah" bergema ...Sudahkah Anda mencoba tombol Beranda? Saya menggunakan MobXterm untuk terhubung ke kotak linux dan menggunakan tombol Home dan End pada keyboard untuk pergi ke char pertama atau terakhir dari perintah.
sumber
Jika Anda telah beralih ke
vi
mode, menggunakanset -o vi
, Anda dapat menekan Escdan salah satu Iatau Auntuk memasukkan teks di awal atau di akhir baris. Atau jika Anda hanya ingin memindahkan kursor, itu ^dan $.sumber
Dalam mode emacs (diaktifkan oleh:)
set -o emacs
itu dengan menekan:Dalam mode vi (diaktifkan oleh:)
set -o vi
ketika dalam mode perintah ( Esc) dengan menekan:Lihat juga:
sumber