Zatrzymaj automatyczne uruchamianie terminala podczas wklejania polecenia


27

Racja, jest to nieco denerwująca funkcja, ponieważ coś się dzieje, a innym razem nie, bardzo dziwne.

Wklejam polecenie do terminala w celu poprawienia jego argumentów, a czasami wykonuje się to po drugim wklejeniu. Czasem tak nie jest.

Od wahających się (zamieszczanie bezsensownych komentarzy na IRC) do niebezpiecznych.

Jak mogę na stałe wyłączyć tę funkcję? Nigdy, nigdy, nigdy nie chcę, aby terminal uruchamiał się automatycznie po wklejeniu do niego.


mogą być interesujące - bbs.archlinux.org/viewtopic.php?id=95548 , również ludzie dokonali exploitów, ukrywając zawartość w kopii / wklej reddit.com/r/linux/comments/1bv54e/…
Mateo

1
Wow, w Ubuntu powinna być wbudowana funkcja, aby to zatrzymać. Kiedy chcesz wkleić zwrot karetki do terminala?
Starkers,

jedną z poprawek byłoby użycie czegoś podobnego oh-my-zshlub innej zamiany terminala.
Pramesh Bajracharya

Odpowiedzi:


28

Nie ma automatycznego wykonywania. Prawdopodobnie kopiujesz podział wiersza (lub więcej) po poleceniu.

Jeśli wkleisz polecenie z przerwą, powłoka (linia poleceń) myśli, że nacisnąłeś przycisk przerwy (Enter, Return).


Ta odpowiedź wyjaśnia tylko, dlaczego OP otrzymuje niepożądane zachowanie. Jednak w innej odpowiedzi istnieje prawdziwe rozwiązanie problemu PO.


5
To prawda, ale pytanie brzmi: jak to zatrzymać, jeśli to możliwe :)
Paweł Cioch,

1
Poprawka dla Putty przynajmniej serverfault.com/questions/731022/…
Pawel Cioch

13

Jednym prawdziwym rozwiązaniem jest otwarcie trybu edycji, ctrl-x ctrl-ea następnie bezpieczne wklejenie schowka do wybranego edytora (zwykle emacs lub vim). Po zakończeniu edycji polecenia zapisz i wyjdź, a uruchomi się ono w wierszu poleceń. Jest to dobry nawyk do długich lub złożonych poleceń, szczególnie przy wklejaniu skrótów zatwierdzania do poleceń git, i może pomóc uniknąć przerażających wyników na dłuższą metę.

Edytor można zmienić, ustawiając zmienne VISUAL i EDITOR (mają one różne znaczenia, patrz tutaj ).


wow, zawsze jest coś, aby dowiedzieć się po dziesięcioleciach używać Linuksa :) dzięki, jest to jedyna odpowiedź, która rzeczywiście rozwiązuje problem
törzsmókus

Wygląda na to, że może działać na prawdziwym terminalu Linux, ale niestety nie jest to pomocne dla użytkowników PuTTY. Jakieś inne alternatywy?
Codesmith

1
@Codesmith Uważam, że komentarz Pawła Chiocha dotyczący przyjętej odpowiedzi może być dla Ciebie pomocny: serverfault.com/questions/731022/…
borrascador

1
Dobry punkt @borrascador! Nie jestem pewien, jak mi tego brakowało. Dzięki! :)
Codesmith

5

Przed wklejeniem wpisz #, a następnie wklej swoją linię. Nie uruchomi się i możesz usunąć # i nacisnąć Enter po zakończeniu modyfikacji.


Możesz także użyć trueAKA :, która jest w zasadzie poleceniem no-op.
wjandrea

1
@WJAndrea Powiedziałbym, że jest to mniej wskazane, ponieważ spowoduje to zablokowanie statusu wyjścia ( $?) ... truetak naprawdę nie jest nop, zwraca status wyjścia 0. Z drugiej strony komentarz jest całkowicie ignorowany i dlatego nie będzie alter $?.
brhfl

4
zatrzyma to tylko wykonanie pierwszego wiersza . jeśli OP wklei tekst z co najmniej dwoma podziałami linii, zostaną one ponownie wkręcone.
törzsmókus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.