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 +.

Flyk
źródło
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.

Asaf
źródło
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 >.
ives
źródło
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

vi_dude
źródło
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 .

Michael Hampton
źródło
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.

richo
źródło
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 -- [email protected]
    

Osobiście wolę opcję 1.

Homer6
źródło
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ć.

Biały Feniks
źródło
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.
sedat
źródło
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ć.

Troy Fletcher
źródło
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!

nikhil bangar
źródło