Зупиніть автоматичне виконання терміналу під час вставки команди


27

Правильно, це дещо дратівлива особливість, тому що щось трапляється, а інколи - не дуже дивно.

Я вставляю команду в термінал з метою налаштування її аргументів, а іноді вона виконує другу, я вставляю її. Іноді це не так.

Це варіюється від бентежного (розміщення безглуздих коментарів на IRC) до небезпечного.

Як можна назавжди вимкнути цю функцію? Я ніколи, ніколи, ніколи не хочу, щоб термінал автоматично виконувався, коли я вставляв його.


може представляти інтерес - bbs.archlinux.org/viewtopic.php?id=95548 , також люди робили подвиги, ховаючи вміст у копію / вставити reddit.com/r/linux/comments/1bv54e/…
Mateo

1
Нічого, в Ubuntu слід вбудувати функцію, щоб зупинити це. Коли ви хочете коли-небудь вставити повернення вагона до терміналу?
Старкерс

одним із виправлень буде використання чогось подібного oh-my-zshабо будь-якого іншого заміщення терміналу.
Прамеш Байрачаря

Відповіді:


28

Автоматичного виконання немає. Ви, ймовірно, також копіюєте розрив рядка (або більше) після команди.

Якщо вставити команду з перервою, оболонка (командний рядок) вважає, що ви натиснули кнопку перерви (Enter, Return).


Ця відповідь лише пояснює, чому ОП отримує небажану поведінку. Однак в іншій відповіді є реальне вирішення проблеми ОП.


5
Щоправда, але питання полягає в тому, як зупинити це, якщо можливо :)
Pawel Cioch

1
Виправлення для Putty принаймні serverfault.com/questions/731022/…
Pawel Cioch

13

Одне реальне рішення - відкрити режим редагування, ctrl-x ctrl-eа потім безпечно вставити буфер обміну в редактор за вибором (зазвичай emacs або vim). Після завершення редагування команди збережіть та вийдіть, і вона запуститься в командному рядку. Це хороша звичка для довгих або складних команд, особливо коли вставляти хеши в команди git, і може допомогти вам уникнути деяких страшних результатів у перспективі.

Редактор можна змінити, встановивши змінні VISUAL та EDITOR (вони мають різні значення, див. Тут ).


ух, завжди є чому навчитися після десятиліть використання Linux :) спасибі, це єдина відповідь, яка насправді вирішує проблему
törzsmókus

Здається, це може працювати для справжнього терміналу Linux, але, на жаль, це не корисно для користувачів PuTTY. Будь-які інші альтернативи?
Кодесміт

1
@Codesmith Я вважаю, що коментар Павла Чіоха щодо прийнятої відповіді може бути корисним для вас: serverfault.com/questions/731022/…
borrascador

1
Гарна точка @borrascador! Не впевнений, як я пропустив це. Спасибі! :)
Codesmith

5

Перед вставкою наберіть #, а потім вставте рядок. Він не виконається, і ви можете видалити # та натисніть клавішу Enter, коли зміни будуть завершені.


Ви також можете використовувати trueAKA :, що в основному є неоперативною командою.
wjandrea

1
@WJAndrea Я б сказав , що це менш бажано , так як він буде затирати статус виходу ( $?) ... trueце на самому ділі не NOP, вона повертає статус виходу 0. коментар, з іншого боку, повністю ігнорується , і , отже , НЕ буде змінити $?.
brhfl

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