Czy istnieje standardowy lub konwencjonalny skrót klawiaturowy do wklejenia zaznaczenia podstawowego?
Chciałbym zaznaczyć tekst i przejść do innej aplikacji, aby wkleić bez usuwania zawartości schowka. Wolę trzymać palce na klawiaturze niż poruszać się po myszy, znajdować wskaźnik, ustawiać go w żądanym miejscu i klikać środkowym przyciskiem myszy.
Jeśli nie ma nic konwencjonalnego lub jeśli jest ono specyficzne dla aplikacji i nie jest obsługiwane przez wielu, czy istnieje sposób obejścia tego problemu na całym świecie? (Lub przynajmniej w większej liczbie aplikacji).
keyboard
shortcut-keys
clipboard
Stefano Palazzo
źródło
źródło
Odpowiedzi:
Wysyłanie wirtualnych naciśnięć klawiszy nie działa dla mnie (patrz komentarze ), ale ta odpowiedź zainspirowała mnie do poszukiwania podobnych rozwiązań. Wysłanie zdarzenia „tekstowego” z
xvkbd
ignoruje bieżący stan klawiatury fizycznej:xvkbd -text
używa kilku sekwencji odwrotnego ukośnika, więc zamiast tańczyć z ucieczką,-file
działa.xvkbd
wyświetla również tekst ostrzegawczy o modyfikatorach, ale wydaje się, że nie ma znaczenia dla tego zastosowania (ale nie chciałem go widzieć~/.xsession-errors
).Powiązałem to ze skrótem za pomocą System> Preferencje> Skróty klawiaturowe .
Pamiętaj, że musisz mieć zainstalowane pakiety xsel i xvkbd:
źródło
sh -c 'xsel | xvkbd -file - 2>/dev/null'
działa, -xsendevent musiał się wydostać, żeby to działało.xsel
).xvkbd
.xsel
działa dobrze z „éòü” w selekcji podstawowej, alexvkbd
kończy się niepowodzeniem jak w powyższym skrypcie. (I też się nie udajexvkbd -text "éòü"
, chociaż tutaj nic nie drukuje.)Możesz to uzyskać dzięki połączeniu programów xdotool ( kliknij, aby zainstalować ) i xsel ( kliknij, aby zainstalować ).
xdotool
potrafi symulować pisanie w oknie;xsel
wypisuje zawartość wyboru PODSTAWOWEGO (domyślnie); Następująca powłoka jedna linijka załatwi sprawę:Aby powiązać to z dowolnym klawiszem za pomocą pozycji menu System-> Preferencje-> Skróty klawiaturowe , konieczne jest zawinięcie go w wywołanie powłoki:
Wpisywanie
xdotool
nie działa z niektórymi programami; zobacz uwagi w dokumentacji xdotool .źródło
Szukałem odpowiedzi na to samo pytanie i znalazłem odpowiedź, która mówi, że Shift+ Insertpracuje nad wklejeniem podstawowego wyboru. Pracuje dla mnie Prostsze
źródło
Wywołanie
xdotool click --clearmodifiers 2
symuluje kliknięcie środkowym przyciskiem myszy. Działa to znacznie lepiej niż używanie Xsel (przynajmniej dla mnie). Trzeba jednak ustawić mysz przed wpisaniem ...źródło
Kolejna sugestia xdotool, działająca w Debian Jessie 8.7 (styczeń 2017):
xdotool click
symuluje rzeczywiste kliknięcie, więc nie musisz klikać siebie, aby wkleić w miejscu myszy, tak jak w przypadku użyciaxdotool type
lub xvkbd.Jedynym problemem jest to, że
--clearmodifiers
„naciska” z powrotem dowolny modyfikator (Ctrl / Alt / Shift / Meta), którego używasz po symulacji kliknięcia. Nawet przy--delay 0
(zamiast 12ms) wykonanie polecenia zajmuje trochę czasu. Jeśli zwolnisz klawisze przed końcem, modyfikatory zostaną ponownie „wciśnięte” i utkną tam, aż ponownie naciśniesz i zwolnisz właściwy klawisz.Więc przy tym musisz być nieco „powolny” (50 ms?), Aby zwolnić modyfikatory, jeśli używasz.
Możesz to sprawdzić, konfigurując skrót klawiaturowy, używając go w edytorze tekstu, a następnie naciskając klawisz (jak
a
lub strzałkę). List powinien być pisany małymi literami. Jeśli dzieje się coś innego, jesteś za szybki i modyfikator utknął (pe Shift, jeśli jest pisany wielkimi literami, Ctrl, jeśli zaznaczyłeś cały tekst, Alt, jeśli otworzyłeś menu). Naciśnij i zwolnij modyfikatory ponownie, aby je zresetować.Jeśli jesteś za szybki, możesz skorzystać z sugestii ilkerk:
Następnie musisz zwolnić je w mniej niż 300 ms i zaczekać pół sekundy, aż pojawi się tekst.
Również użycie
xdotool type
oznacza wstawienie tekstu tak, jakbyś pisał w miejscu kursora tekstowego, a nie wskaźnika myszy. Możesz to zmienić,click
jeśli wolisz zwykłe zachowanie po kliknięciu środkowym przyciskiem.(napisał ten post, aby nowicjusze nie musieli ponownie układać elementów układanych w komentarzach)
źródło
Miałem problemy z rozwiązań, które symulują wklejając ten
PRIMARY
wybór, więc zamiast dodałem skrót, który kopiujePRIMARY
wyboru doCLIPBOARD
. Po użyciu mój skrót I wklejCLIPBOARD
w zwykły sposób, zCtrl+V
,Ctrl+Shift+V
lubShift+Insert
, w zależności od zastosowania.Poleceniem skopiowania
PRIMARY
zaznaczenia doCLIPBOARD
jestz którym wiążę
Ctrl+Insert
(dowolny wybór) w ustawieniach skrótu Gnome w sekcjiSystem Settings -> Devices -> Keyboard
Podsumowanie problemów z innymi rozwiązaniami: Próbowałem
xsel | xvkbd ...
ixsel | xdotool ...
rozwiązań, ale okazało się, że nie działa bardzo dobrze, bo symulować wpisując sięPRIMARY
charakter selekcyjny po znaku, który nie jest taki sam jak wklejenie go środkowym kliknięcia. Problemy obejmują: duże opóźnienie, podczas gdy duży wybór jest wstawiany po jednym znaku na raz; jeśli chcesz cofnąć „wklejanie”, musisz cofnąć to znak po znaku, co jest powolne; jeśli używasz „martwych kluczy”, wszystko się psuje, np."e
produkuje się „wklejanie”ë
;xvkdb
nie obsługuje znaków Unicode poprawnie.Ostrzeżenie: to rozwiązanie zastępuje istniejącą
CLIPBOARD
zawartość, ale OP poprosił o rozwiązania, które zachowają istniejącąCLIPBOARD
zawartość.źródło
Miałem ten sam problem i wyszukiwanie w Internecie niewiele mi pomogło. Problem symulacji kliknięcia 2 jest denerwujący, jak wspomniano OP.
Problem z powyższym proponowanym
xdotool
i Xsel polega na tym, że kiedyxdotool
zaczyna się „pisać”, nadal naciskasz inny klawisz. To nie zawsze daje wynik. Na przykład, jeśli powiążesz go z klawiszem „wstaw”, wówczasxdotool
wysyła klucze, gdy palec naciska klawisz „wstaw”, co nie powoduje żadnych skutków.Poniżej znajduje się obejście umożliwiające powiązanie go z naciśnięciem klawisza:
to nie jest idealne, ale działa. teraz masz 0,3 sekundy, aby dokończyć wybór klawisza naciśnij (i klawisz w górę).
źródło