Комбінація клавіш для зберігання набраної команди та очищення рядка


12

Ви знаєте ситуацію: ви перебуваєте на півдорозі, набравши довгу команду (наприклад, повідомлення про фіксацію) і розумієте, що ви забули виконати якусь необхідну команду, яку неможливо додати &&. Зазвичай, коли це трапляється зі мною, я вибираю те, що я набрав мишею, копіюю її в буфер обміну, натискаю Ctrl-U, щоб очистити рядок, запускаю свою попередню команду та вставляю форму буфера обміну. Але, можливо, є кращий спосіб, бажано без використання миші? Я шукаю рішення для bash та / або zsh.

Відповіді:


20

Після використання CTRL-U ви можете використовувати CTRL-Y, щоб повернути те, що ви стерли. Він працює і після видалення слова або кількох слів із CTRL-W.

Зауважте, що таким чином вам не потрібно нічого копіювати у буфер обміну або вибирати його за допомогою миші - CTRL-U насправді передає лінію в окремий буфер обміну, так би мовити.


5

Додайте "#" до початку поточного рядка. Натисніть Enter, щоб додати коментар до своєї історії. Виконайте необхідну умову. Перейдіть до попередньої команди та видаліть #.


5

Про це нещодавно запитали та обговорювали на сайті Unix & Linux SE. У моїй відповіді було пояснено, що якщо ви використовуєте zsh як свою оболонку, ви можете скористатися функцією push-line, щоб призупинити свою команду, яка виконується, запустити щось інше, тоді ваша перша команда повернеться, і ви можете її виконати. В .zshrc:

bindkey '^L' push-line

Потім натисніть Ctrl+, Lщоб призупинити діючу команду та повернутися до неї після запуску чогось іншого.

Було дано кілька інших відповідей, включаючи налаштування того, як зробити щось подібне в bash, та деякі спеціалізовані версії цього вбудованого файлу zsh.


0

Ви можете зробити Shift-Alt-3коментар до поточного рядка та перейти до наступного. Потім ви натискаєте up, Ctrl-e, Delі tadam!

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