Shell: як перейти до початку рядка, коли ти знаходишся всередині екрана?


70

Я всередині екрана (екран -Ra). У мене довга команда, і я в кінці. Замість того, щоб утримувати стрілку ліворуч, як ви можете перейти до початку рядка?

CTRL-A працює, коли я перебуваю у звичайному вікні, але коли я перебуваю всередині екрана, натискаючи CTRL-A, видає мені повідомлення "Немає іншого вікна" - здається, CTTR-A надсилається на екран.

Як ви переходите до початку рядка на екрані?


3
Швидке виправлення: натисніть Homeклавішу для початку та Endдо кінця рядка.

1
Це також сильно залежить від оболонки та режиму введення, який ви використовуєте, хоча я припускаю, що ви використовуєте bash та прив’язки emacs за замовчуванням.
Патрік

1
@hesse, якщо на клавіатурі є Homeкнопка. Не завжди так
Маттео

ОП може зацікавити це пов'язане питання .
dotancohen

Відповіді:


81

Використовуйте Ctrl- a aабо змініть натискання клавіші екранування (опція -e).


6
Якщо це не зрозуміло, ви натискаєте Ctrl- a, відпустіть обидві клавіші, а потім натисніть a. Не робіть тієї самої помилки, яку я зробив, Ctrlнатискаючи. Хороша еталонна карта для цього і інших прив'язок клавіш: aperiodic.net/screen/quick_reference
Yzmir Ramirez

6

Або ви можете змінити screenприв'язки, або ви можете змінити прив'язки оболонки. Якщо припустити, що ваша оболонка є bash, результат виводу bind -p | grep \C-aповинен давати вам поточну дію, пов'язану з цим Ctrl+A. Щоб прив’язати цю дію до чогось іншого, скористайтеся такою формою:

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

Це прив’яжеться Ctrl+Pдля переміщення курсору на початок рядка. Запам’ятайте подвійні лапки всередині виразу. Щоб скасувати прив’язку, просто встановіть її нанівець:

$ bind '"\C-a": '

Щоб перелічити всі вхідні послідовності, пов'язані з дією, використовуйте:

$ bind -p | grep beginning-of-line

Нарешті, для того, щоб зробити прив'язку постійно, ви можете помістити заяви у свій ~/.bashrcфайл і видати source ~/.bashrc.


6

Ctrl- x- Ctrl- xдозволяє перейти до першого символу рядка для будь-якого середовища, сумісного з читанням рядків, такого як Bash, python та mysql. GNU SCREEN сміливо ігнорує це. Не потрібно індивідуальної конфігурації.

Якщо ви використовуєте це замість Ctrl- a- a, ви використовуєте консистентну клавішу швидкого доступу - вам не потрібно мати на увазі, чи є ви у GNU SCREEN чи ні.

Для всіх, хто цікавиться, ця сама клавіша швидкого доступу також дозволяє вам перейти до кінця рядка, якщо ви вже на початку.


5
Власне, C-x C-xє exchange-point-and-mark. Просто трапляється, що позначка за замовчуванням знаходиться на початку рядка. Ви можете використовувати C-spaceдля встановлення позначки десь ще.
Іван Андрус

Іване, як правило, що ти можеш зробити, обмінявши крапку та позначивши? Дякую.
Сушіель Джаваді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.