PuTTY jak zaznaczać i kopiować tekst TYLKO za pomocą klawiatury


75

Czy jest jakiś sposób na wybranie tekstu za pomocą klawiatury, tak jak robię to normalnie, używając klawiszy Shift +.


Myślę, że to niemożliwe. :(
Lucas Jones,

Nie rozumiem. Shift i strzałki na klawiaturze.
Scott,

Odpowiedzi:


71

Z instrukcji PuTTY :

Kopiowanie i wklejanie PuTTY działa całkowicie za pomocą myszy. Aby skopiować tekst do schowka, wystarczy kliknąć lewy przycisk myszy w oknie terminala i przeciągnąć, aby zaznaczyć tekst. Po zwolnieniu przycisku tekst jest automatycznie kopiowany do schowka. Nie musisz naciskać Ctrl- Cani Ctrl- Ins; w rzeczywistości, jeśli naciśniesz Ctrl- CPuTTY wyśle ​​znak Ctrl- w Cdół twojej sesji na serwer, gdzie prawdopodobnie spowoduje to przerwanie procesu.


9
Moja linia ma 24 000 znaków. Jak mogę to skopiować? Widzę tylko ostatnią część linii lub pierwszą część w buforze ekranu.
Gaʀʀʏ

@ Gaʀʀʏ Wiem, że od dawna przeszedłeś od tego komentarza, ale chciałbym zauważyć, że jeśli mam linię 24k do skopiowania, uważam, że opcja „Kopiuj wszystko do schowka” jest uzasadniona. To z pewnością to, co nazwałbym skrzynką.
Sean Allred

@ Gaʀʀʏ, aby dodać do odpowiedzi Seana, kopia pochodzi z bufora terminala, a nie ze standardowego wyjścia. W przypadku bardzo długich linii z pewnością możliwe jest, że linia przepełniła sam bufor.
ysap,

3
Shift + Insert.
wyhoduje

26

o ile wiem, nie ma możliwości skopiowania wybranego obszaru z okna kitu do schowka Windows bez użycia myszy. na tej stronie znajduje się prośba o dodanie funkcji specjalnie dla tej funkcji.

http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/keyboard-copy.html

jedynym sposobem na skopiowanie informacji z okna kitu do schowka Windows za pomocą skrótu klawiaturowego jest użycie menu systemowego aplikacji „skopiuj wszystko do schowka” (które można wywołać z dowolnego miejsca, pod warunkiem, że ustawisz „Okno> Zachowanie> Menu systemowe pojawia się w opcji ALT-Space ”skonfigurowanej w szpachli.

Wklejanie ze schowka Windows w kit można wykonać za pomocą Shift- Insert.

Jeśli chcesz skopiować i wkleić tylko w samym oknie terminala, zapoznaj się ze stroną podręcznika użytkownika używanej powłoki lub rozważ użycie uniksowej aplikacji „screen” („ekran man”, aby uzyskać więcej informacji), która umożliwia zaznaczanie tekstu do kopiowania / wklejania w oknie terminala (podobnie jak działa kopiowanie / wklejanie vi). fragment stron podręcznika:

   C-a esc     (copy)        Enter copy/scrollback mode.

   C-a ]       (paste .)     Write the contents of the paste buffer to the
                             stdin queue of the current window.

   C-a {
   C-a }       (history)     Copy and paste a previous (command) line.

   C-a >       (writebuf)    Write paste buffer to a file.

   C-a <       (readbuf)     Reads the screen-exchange file into the paste
                             buffer.

   C-a =       (removebuf)   Removes the file used by C-a < and C-a >.

1
@xgMz - działa dobrze dla mnie. Zaskakujące, że ten bilet został złożony ponad 13 lat temu i nikt jeszcze się tym nie przejmował.
ArtOfWarfare

Link działa teraz.
xgMz

24

control+ insert= kopia

shift+ insert= wklej


2
Nie wiem, dlaczego to zostało odrzucone. To jedyna odpowiedź, która zadziałała dla mnie. Udało mi się stworzyć skrypt AutoHotkey, który kopiuje tekst z GVima w systemie Windows, wkleja go do Putty i uruchamia go podczas interaktywnej sesji IPython
rsoren

2
control+ insertwydaje się absolutnie nic nie robić. shift+ insertwkleja jednak.
ArtOfWarfare

3
Od 2016 roku działa z Windows 7 i Putty 0.63. Pytanie to jednak najwyraźniej obejmuje również wybór opcji kopiowania AFAICT.
stefanct

3
@rsoren - OP żąda metody tylko klawiatury. Ta odpowiedź wymaga najpierw zaznaczenia myszą. Zgodnie z wybraną odpowiedzią, po zaznaczeniu implikowane jest <Ctrl + Ins>.
ysap,

Nie działa dla mnie w systemie Windows 7
SherylHohman

3

Aby obejść ten problem, uruchom PuTTY w konsoli Windows, takiej jak ConEmu lub SuperPutty .


1
Jak to zrobić w SuperPutty?
grokster

@sathya jak to działa? co ma nadwyżka nad kitem?
alpha_989

@ Michael-Hampton .. czy ConEmu pozwala na wklejanie ze schowka Windows do terminala Windows tylko za pomocą klawiatury?
alpha_989

2

Używam ekranu GNU,

Mam również to w moim screenrc, aby ładnie grać z vimem:

register [ "\033:se paste\015a"
register ] "\033:se nopaste\015a\033"
bind ^] paste [.]

Mój przyjaciel ma zaczep na ekranie, aby skopiować „schowek ekranu” do jednego lub obu schowka X (zaznaczenie lub schowek) i uważam, że Kit wykonuje potrzebne tłumaczenia. Spróbuję to wykopać.

Prawdopodobnie możesz to samo załatwić za pomocą xclip, powinna być używana inkantacja, której szukasz xclip -selection clipboard

Szybko sprawdziłbym, czy xclip -selection clipboard -owypluwa zawartość twojego schowka.


Chciałbym, żeby to działało w PuTTY! Próbowałem. Skarżył się na „nie można otworzyć wyświetlacza”
Brian Peterson

Używanie xclippowinno działać. Używam tmuxi xselkopiuję z Puty za pomocą klawiatury. Nie wiem, jak wkleić klawiaturę do terminala Windows
alpha_989,

2

Może to być bardziej obejście niż rozwiązanie.

W programie vim, jeśli chcesz skopiować blok, który wybrałeś w trybie wizualnym (zwykle blok, który obejmuje wiele stron), możesz zapisać go do pliku (pisząc, :w filename.txtgdy tekst jest zaznaczony, a ty nadal jesteś w trybie wizualnym ). Po wykonaniu tej czynności możesz:

  1. Otwórz plik w edytorze Windows, jeśli jest zamontowany na Sambie
  2. Odczytaj zawartość pliku za pośrednictwem Apache lub serwera FTP
  3. Wyślij plik pocztą e-mail jako załącznik (patrz polecenie poniżej - wymaga Mutt):

    echo "My Message Body" | mutt -s "my subject line" -a filename.txt -- recipient@email-server.com
    

Osobiście wolę opcję 1.


2

Inną nieco prowizoryczną sugestią jest aktywacja klawiszy myszy w systemie Windows. W systemie Windows 7 jest objęty Centrum ułatwień dostępu.

  1. Kliknij „Ułatw obsługę myszy”.
  2. Zaznacz pole wyboru „Włącz klawisze myszy”.
  3. Kliknij „Konfiguruj klawisze myszy”, aby uzyskać dodatkowe ustawienia.

Domyślny klawisz skrótu to Alt+ Shift+ NumLock.

Mam nadzieję, że naciśnięcie tej kombinacji klawiszy nie zakłóci sesji (lub po prostu Alt+ Tabout i aktywuje ją z zewnętrznego zestawu). Wydaje mi się, że naciśnięcie 0 na klawiaturze numerycznej uruchamia blokadę kliknięcia, umożliwiając przeciąganie po części tekstu, którą chcesz zaznaczyć / skopiować.


2

Miałem dość przewijania w dół linia po linii za pomocą lewego przycisku myszy, aby skopiować wyniki sesji. Ale teraz muszę dwukrotnie kliknąć środkowy przycisk ; pierwszy na początku i drugi na końcu. Jak ja to zrobiłem:

  1. Przejdź do okna konfiguracji szpachli
  2. Wybierz „Wybór” z kategorii po lewej stronie okna.
  3. W „Kontroluj użycie myszy” wybierz „Kompromis (środkowe przedłużenia, prawe pasty)”, jeśli jeszcze nie został wybrany.

2
Przeczytaj i pozwól sobie zrozumieć pytanie, a następnie spróbuj na nie odpowiedzieć.
Renju Chandran chingath

Jest to najlepszy sposób wyboru, a kopiowanie zajmuje się Putty. Aby skopiować więcej niż jeden ekran tekstu, myślę, że zamiast tego potrzebujesz cat. vi przesuwa kursor.
Noumenon,

1

Pracowaliśmy nad tym przez chwilę, a sam Putty nie może pozwolić na kopiowanie tylko za pomocą schowka.

Jednak Putty może ułatwić odwrotną transmisję danych ze strony zdalnej. Jeśli używasz narzędzia takiego jak Vim lub Tmux do wybierania tekstu na klawiaturze, możesz zrzucić dane wyjściowe do pliku i (randkując się tutaj) netcat do putty tunelu odwrotnego portu do lokalnej usługi, która zrzuca dane wejściowe do lokalnego schowek.

Zrobiłem film, jak to zrobić tutaj: https://www.youtube.com/watch?v=RI79eeCuyvE , ale oto krótka wersja:

Ustaw swoją szpachlę> połączenie> SSH> tunele do przekazywania R11311 do hosta lokalnego: 1234 Użyj netcata jako serwera nasłuchującego przesyłającego dane wyjściowe do polecenia klipu systemu Windows 10, który wysyła dane do schowka systemu Windows. Zawiń to w odwieczną pętlę for:

for /L %N IN () do nc -lp 1234 | clip

Uruchom powyższe polecenie w wierszu polecenia uruchomionym jako administrator, ponieważ odwiedzasz port.

Na zdalnym serwerze * nix musisz użyć vim lub Tmux, aby wysłać zaznaczenia tekstu do pliku.

Użyj polecenia, aby wysłać zaznaczenie tekstu do pliku

tmux save-buffer ~/.clipboard

Lub możesz użyć Vima do zapisania bufora (w tym przypadku z) do pliku

silent! redir! > ~/.clipboard
silent! echo @z
silent! redir END

I zintegrować vim i tmux schowków pomocą pliku .clipboard jako pośrednika przy użyciu funkcji vim sens .

Po zaznaczeniu tekstu w pliku możesz przesłać dane wyjściowe do zdalnej strony portu do przodu:

cat ~/.clipboard | nc 127.0.0.1 11311

Lub w skrypcie vim

silent! !cat ~/.clipboard | nc 127.0.0.1 11311 &

Zauważ, że znak ampersand jest konieczny, ponieważ nie mogłem sprawić, -q 0aby flaga netcat działała poprawnie. Może potrafisz. Bez działania czeka całą sekundę przed zamknięciem, co może przerwać przepływ pracy. Z ampersand natychmiast porzuca proces, który kończy się w ciągu 1 sekundy w tle.

Wykonanie wszystkich powyższych czynności w pełni zintegruje schowki Tmux, Vima i lokalnych szpachli bez dotykania myszy! To był jedyny sposób, w jaki mogłem to zrobić.


Ponadto, jeśli używasz tego do wklejania wielowierszowego między systemami operacyjnymi, pamiętaj o konwersji między zakończeniami linii DOS / Unix
Troy Fletcher

-1

Jeśli pracujesz na komputerze z systemem Windows, będzie działał dobrze, ale jeśli na komputerze z Linuksem to kiedyś nie zadziała. Aby to działało, po prostu skopiuj zawartość w dowolnym edytorze tekstu i po prostu użyj Shift + Insert w wierszu, w którym chcesz go wkleić.

Mam nadzieję, że to pomoże!

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.