[unix] 키보드로 X 선택 (클립 보드 내용이 아님) 붙여 넣기

키보드를 사용하여 X 선택을 붙여 넣을 수 있기를 원합니다. 현재이 작업을 수행하려면 가운데 마우스 버튼을 사용해야합니다.

마우스 가운데 버튼을 누르는 것은 매우 쉬운 일이지만, 이러한 솔루션을 사용하려면 마우스 포인터를 텍스트 캐럿의 위치로 이동해야합니다.

더 좋은 방법이 있습니까?



답변

일부 기본 Linux 설정에서 Shift+ Insert는을 수행합니다 X-selection-paste. 언급했듯이, 이것은 X-clipboard-paste명령과 분명히 다르며 바인딩은 종종 응용 프로그램에 따라 다릅니다. 그래도 작동하지 않으면 몇 가지 다른 키를 사용해보십시오.

  • Ctrl+V

  • Ctrl+ Shift+V

  • Ctrl+ Shift+Insert

안가요? 데스크탑 환경 또는 창 관리자에는 구성되지 않았을 수 있으며, 하나의 DE 또는 WM 배너 아래에서도 툴킷 (예 : GTK, Qt 등)마다 기본 바인딩이 다를 수 있으므로 복잡합니다. 일부 프로그램 (예 gvim:)에는 실행중인 그래픽 환경과 반드시 ​​동기화되지 않는 자체 내부 복사 레지스터도 있습니다. 프로그램이 X- 클립 보드 시스템을 사용하는 경우에도 X는 선택할 수있는 여러 시스템이 있습니다. 가장 기본적인 두 가지 선택 버퍼는 선택 버퍼 (마지막으로 선택한 항목이 있으면 항상 실행)와 복사 버퍼 (일반적으로 특별히 복사해야하는 항목)입니다. 후자의 시스템에 명시 적으로 복사하려면 크기에 대해 다음 중 하나를 시도하십시오.

  • Ctrl+C

  • Shift+ Ctrl+C

  • Ctrl+Insert


그중 아무것도 마술처럼 당신을 위해 일하지 않는다면, 갈 수있는 두 가지 방법이 있습니다.

  1. 이를위한 앱이 있습니다! ™ 다양한 클립 보드 관리자 프로그램 중 하나를 사용하여이를 처리하십시오. 가장 인기있는 것은 ParcelliteGlippy 인 것 같지만 여기 에서 다른 대안을 확인할 수 있습니다 . 고급 클립 보드 관리자에 대한질문 도 참조하십시오.

  2. 직접 해킹하십시오.

해킹하고 싶다고 해봅시다.

자신의 코드를 작성하지 않고 X API를 활용하는 작업에 대한 해커 도구는 X의 마음에 창을 제공하는 몇 가지 작은 명령 줄 유틸리티입니다. .

첫 번째 도구는 xsel입니다. 이 작은 일꾼은 주어진 시간에 X의 선택 버퍼에있는 것을 뱉어냅니다.

이제 프로그램으로 가져와야합니다. 여기에는 두 가지 옵션이 있습니다. 하나는 xdotoolXorg 입력 시스템으로 이벤트를 보내는 것을 흉내낼 수있게합니다. 커서에서 ‘foo_bar’입력을 모방하는 것과 같은 유형 방법을 사용할 수 있습니다 xdotool type foo_bar. 결합하면 다음과 같은 결과가 나타납니다.

$ xdotool type $(xsel)

다른 하나는 xvkbd하위 시스템에서 키보드 이벤트를 보내는 것입니다. STDIN에서 키 입력을 키 입력으로 파이프 할 수 있습니다. 와 결합 xsel하면 다음과 같은 결과가 나타납니다.

$ xsel | xvkbd -xsendevent -file -

큰. 이제 키 바인딩을 사용하여이 작업을 수행하십시오. Gnome-2를 실행하면 시스템-> 환경 설정-> 키보드 단축키 에서 사용자 정의 단축키를 추가 할 수 있습니다 . 다른 DE 또는 WM을 사용하는 경우이 excersize는 독자에게 달려 있습니다.

마지막 참고 사항은 명령을 키보드 단축키에 바인딩 할 때 위에서 사용하는 것처럼 파이프에 연결된 두 개의 명령이 아니라 하나의 명령 만 필요하다는 것입니다. 파이프 된 명령을 다음과 같이 새 쉘에 대한 명령 문자열 인수로 호출하여이를 수행 할 수 있습니다.

sh -c 'xsel | xvkbd -xsendevent -file -'
sh -c 'xdotool type "$(xsel)"'


답변

분명히 Shift+ Insert적어도 FreeBSD의에, GTK 3의 일부 설치에 제대로 작동하지 않을 수 있습니다. 이 문제는 다음과 같이 설명됩니다.

Shift-Insert가 기본 선택을 붙여 넣지 않습니다. 대신 클립 보드를 붙여 넣어야합니다 (Control-V가 이미 사용 된 경우). 따라서 기본 선택을 삽입하는 키보드 전용 방법은 없습니다. 마우스를 끌어서 가운데 ​​클릭해야합니다. 이것은 터미널과 GTK 간의 상호 작용을 불편하게 만듭니다.

최신 (이 글을 쓰는 현재) 버그 보고서 및 패치를 사용할 수 있습니다.

http://www.freebsd.org/cgi/query-pr.cgi?pr=188264


답변

xdotool click 2

마우스 버튼 클릭을 직접 시뮬레이션하며 xsel/ 를 사용할 필요는 없습니다 xdotool type ....


답변

우분투 12를 사용하고 있으며 xedit의 텍스트를 gedit (및 기타 응용 프로그램)에 붙여 넣는 데 문제가있었습니다. 또한 많은 사람들처럼 중간 마우스 버튼이없는 랩톱을 사용합니다 (실제로 중간 버튼이없는 Linux 사용자에게는 클립 보드 자비가 없으며 오른쪽 클릭 + left_click은 대체 기능으로 작동하지 않습니다).

“xsel | xvkbd -xsendevent -file-“방법이 멋지다고 생각합니다. 가장 간단한 해결책은 “xterminal”대신 사전 설치된 “gnome-terminal”을 실행하는 것입니다. “gnome-terminal”은 마우스 오른쪽 클릭 클립 보드로 복사 명령을 지원합니다. 그런 다음 “Edit Menu-> Paste”를 gedit에 넣거나 shift-insert를 사용할 수 있습니다. “gnome-terminal”은 Ubuntu 12와 함께 사전 설치되었습니다. 다른 데비안 / 그놈 설치는 다음을 통해 설치할 수 있습니다 :

sudo apt-get install gnome-terminal

우분투에서 런처 바의 상단에있는 “대시 홈”버튼을 클릭하여 왼쪽 런처에 추가하십시오. 결과 검색 상자에 terminal을 입력하십시오. “터미널”아이콘을 실행기 막대로 드래그 할 수 있습니다.


답변