Cały czas wklejam nazwy plików / etc do Terminala, a czasami zawartość schowka nie jest tym, czego oczekuję.
Często wynikiem jest kilkaset wierszy tekstu (np. Kodu źródłowego) wklejonych do wiersza poleceń, co powoduje, że bóg wie tylko, jaką paskudność.
Czy jest jakiś sposób, aby zapobiec ślepemu wykonywaniu przez bash wszystkiego, co wkleję? Chciałbym, żeby po prostu wkleił tekst i pozwolił mi później zdecydować, czy chcę go wykonać.
Odpowiedzi:
Zakładając, że używasz bash: Jeśli aktywujesz za pomocą skrótów emacs
set -o emacs
, możesz także użyć Emacsa do edycji wiersza poleceń:źródło
Ctrl
zamiastCmd
. Pozaset -o emacs
tym wydaje się , że nie działa$EDITOR
. Dzięki! to jest doskonałe.Najprostszym rozwiązaniem jest prawdopodobnie użycie edytora tekstu jako bufora, w którym można dwukrotnie sprawdzić zawartość, a następnie skopiować z edytora tekstu do terminalu. Jeśli używasz do tego TextEdit, prawdopodobnie będziesz chciał upewnić się, że jest w trybie zwykłego tekstu ( menu Format → Utwórz zwykły tekst ; ⇧⌘T), aby uniknąć problemów takich jak wklejanie linków jako linki, a nie adresy URL.
Inną rzeczą do odnotowania jest to, że Bash spróbuje wykonać wszystko poprzedzające znak nowej linii, więc jeśli kopiujesz blok tekstu, możesz chcieć upewnić się, że zaznaczenie zatrzyma się po ostatnim znaku, zamiast zawierać koniec linia.
Chcesz to:
Nie to:
Oczywiście, jeśli kopiujesz rzeczy z nowymi liniami w tekście ( np. Wiele akapitów), musisz ręcznie edytować zaznaczenie.
źródło
Użyj wklejania w nawiasach .
Wklejanie w nawiasach to funkcja, w której terminal informuje powłokę, że coś wkleiłeś, zamiast po prostu pisać, więc powłoka nie może uruchomić polecenia, dopóki nie naciśniesz Enter.
Terminal.app obsługuje to, ale nie wszystkie terminale obsługują.
Podobnie, nie wszystkie powłoki też to obsługują. Wersja bash dostarczana z OS X nie obsługuje wklejania w nawiasach kwadratowych (w chwili pisania tego tekstu jest to wersja 3.2.57).
Jednak zsh obsługuje wklejanie w nawiasach:
Zsh jest w większości kompatybilny z bash (nawet skrypty prawdopodobnie będą działać, chyba że użyjesz jakiejś naprawdę niejasnej funkcji) i lepiej na wiele sposobów - na przykład, ma nawet edytowanie poleceń w wielu wierszach!
źródło
Też to rozumiem!
Moim rozwiązaniem jest wklejenie przy użyciu paska uruchamiania menedżera schowka skrótu
Cmd+\
. Spowoduje to wyświetlenie listy ostatnich wycinków, dzięki czemu mogę wyświetlić podgląd wyniku przed wklejeniem: jeśli nie widzę oczekiwanej treści, uderzam w ucieczkę przed wydaniem Cmd. Mogę również użyć klawisza strzałki, aby „wprowadzić” wycinek tekstu, co pozwala mi widzieć zawartość linia po linii.Wierzę, że większość programów uruchamiających to robi - na przykład Alfred (dodatek do powerpack) i Quicksilver (bezpłatny).
źródło
Możesz zajrzeć do menedżera schowka. Używam darmowego, lekkiego o nazwie Jumpcut . Pozwala mi to przechowywać wiele schowków i sprawdzać, co jest w nich zapisane, zanim wkleję zawartość, wszystko z klawiatury.
Istnieje wielu menedżerów schowka, więc jeśli Jumpcut nie unosi twojej łodzi, być może inny lepiej spełni twoje potrzeby
źródło
Możesz umieścić ten mały skrypt Bash gdzieś w swoim
PATH
:Gdybym
/usr/local/pbexecute
na przykład umieścił te treści i uczynił je wykonywalnymi, mógłbym je bezpiecznie wykonaćpbexecute
z wiersza poleceń, co poprosiłoby o moje potwierdzenie przed uruchomieniem zawartości schowka.Alternatywnym podejściem jest uruchomienie edytora tekstu z zawartością schowka ze skorupy i automatyczne wykonanie edytowanej zawartości po wyjściu. Na przykład:
źródło
Poniżej
Preferences -> Profiles -> Basic -> Advanced
zaznacz „Wklej nowe linie jako zwrot karetki”. (Podstawowa to nazwa jednego profilu. Jeśli używasz innego profilu, powinieneś go wybrać).W niektórych powłokach (zsh i bash działają dla mnie, tcsh nie działa) pozwoli ci to edytować lub przerwać (za pomocą Ctrl-C) to, co jest wklejane, zanim jakakolwiek jego część zostanie przekazana do powłoki.
Może być konieczne utworzenie nowego okna terminala, aby preferencje zaczęły działać.
Korzystam z tej funkcji cały czas, nie tylko do wklejania i edytowania złożonych poleceń, ale także do przeglądania tekstu w kolumnach, a czasem do wybierania i kopiowania pod prostokątów poprzez przeciąganie za pomocą klawisza opcji.
źródło