Shell: bagaimana cara menuju ke awal baris ketika Anda berada di dalam layar?

70

Saya di dalam layar (layar -Ra). Saya memiliki perintah yang panjang, dan saya pada akhirnya. Alih-alih menjaga panah kiri, bagaimana Anda bisa pergi ke awal baris?

CTRL-A berfungsi ketika saya berada di jendela normal, tetapi ketika saya berada di dalam layar menekan CTRL-A memberi saya pesan "Tidak ada jendela lain" - sepertinya CTRL-A dikirim ke layar.

Bagaimana Anda pergi ke awal garis di layar?

pengguna11498
sumber
3
Perbaikan cepat: tekan Hometombol untuk sampai ke awal, dan Enduntuk sampai ke akhir baris.
1
Ini juga sangat tergantung pada shell dan mode input yang Anda gunakan, meskipun saya mengasumsikan Anda menggunakan bash dan binding emacs default.
Patrick
1
@hesse mengingat keyboard Anda memiliki Hometombol. Tidak selalu demikian
Matteo
OP mungkin tertarik dengan pertanyaan terkait ini .
dotancohen

Jawaban:

81

Gunakan Ctrl- a a, atau ubah keystroke pelarian layar (opsi -e).

angus
sumber
6
Jika tidak jelas Anda menekan Ctrl- a, lepaskan kedua tombol, lalu tekan a. Jangan membuat kesalahan yang sama yang saya buat terus Ctrlditekan. Kartu referensi yang bagus untuk ini dan binding utama lainnya: aperiodic.net/screen/quick_reference
Yzmir Ramirez
6

Entah Anda dapat mengubah screenbinding atau Anda dapat mengubah binding dari shell Anda. Dengan asumsi shell Anda bash, output dari bind -p | grep \C-aharus memberi Anda tindakan saat ini diikat Ctrl+A. Untuk mengikat tindakan ini ke hal lain gunakan formulir berikut:

$ bind '"\C-p": beginning-of-line'

Ini akan mengikat Ctrl+Puntuk memindahkan kursor ke awal baris. Ingatlah tanda kutip ganda di dalam ekspresi. Untuk membatalkan pengikatan, Anda cukup mengaturnya menjadi tidak ada:

$ bind '"\C-a": '

Untuk daftar semua urutan input yang terkait dengan tindakan, gunakan:

$ bind -p | grep beginning-of-line

Terakhir, untuk membuat binding binding, Anda dapat menempatkan pernyataan dalam ~/.bashrcfile dan masalah Anda source ~/.bashrc.


sumber
6

Ctrl- x- Ctrl- xmemungkinkan Anda pergi ke karakter pertama dari baris untuk lingkungan yang kompatibel dengan readline seperti Bash, python, dan mysql. GNU SCREEN dengan aman mengabaikan ini. Tidak diperlukan konfigurasi khusus.

Jika Anda menggunakan ini alih-alih Ctrl- a- a, Anda menggunakan kunci pintas yang konsisten - Anda tidak perlu mengingat apakah Anda menggunakan GNU SCREEN atau tidak.

Bagi siapa pun yang tertarik, tombol pintas yang sama juga memungkinkan Anda pergi ke akhir baris jika Anda sudah berada di awal.

Tankman 六四
sumber
5
Sebenarnya C-x C-xadalah exchange-point-and-mark. Kebetulan saja tanda itu ada di awal baris secara default. Anda dapat menggunakan C-spaceuntuk mengatur tanda di tempat lain.
Ivan Andrus
Ivan, biasanya apa yang dapat Anda lakukan setelah bertukar poin dan menandai? Terima kasih.
Susheel Javadi