몇 가지 방법이 있습니다. 언급 된 방법 중 일부는 tmux, screen, vim, emacs 및 shell을 포함합니다. 나는 이맥스 나 스크린을 모른다. 그래서 나는 다른 세 가지를 살펴볼 것이다.
툭스
아닌 X 선택하지만,을 통해 액세스 할 수있는 복사 모드를 TMUX가 prefix-[
( prefix
인 Ctrl+ B기본적으로). 이 모드에 사용되는 버퍼는 tmux와는 별개이며 독점적이며, 이로 인해 몇 가지 가능성이 열리고 올바른 상황에서 X 선택보다 더 다양한 기능을 사용할 수 있습니다.
이 모드를 종료하려면 q;를 누르십시오 . 이동하려면, 귀하의 사용 vim
또는 emacs
(기본값 = VIM) 바인딩, 그래서 hjkl
운동을위한 v/V/C-v
문자 / 라인 / 블록 선택, 등 당신은 당신의 선택, 히트가있는 경우Enter 복사 모드를 종료 할 수 있습니다.
이 버퍼에서 붙여 넣으려면을 사용하십시오 prefix-]
.
껍질
모든 설치는 X11
기본적으로 두 개의 프로그램과 함께 제공되는 것 같습니다 : xclip
및 xsel
( startx
와 xinit
. 다른 답변의 대부분은 언급 xclip
하고 있으며, 나는 xsel
그 간결함을 정말로 좋아 하므로 다루겠습니다 xsel
.
에서 XSEL (1X) :
입력 옵션
-a,-추가
선택에 표준 입력을 추가하십시오. -i를 의미 합니다.
-f, --follow
표준 입력이 증가함에 따라 선택에 추가합니다. -i를 의미 합니다.
-i,-입력
선택에 표준 입력을 읽습니다.
출력 옵션
-o, --output
선택 사항을 표준 출력에 씁니다.
동작 옵션
-c, --clear
선택을 해제하십시오. 모든 입력 옵션을 재정의합니다.
-d, --delete
현재 선택을 삭제하도록 요청하십시오. 이것은 선택을 해제 할뿐만 아니라 선택이 상주하는 프로그램에 선택된 내용이 삭제되도록 요청합니다. 모든 입력 옵션을 재정의합니다.
선택 옵션
-p,-기본
PRIMARY 선택에서 작동합니다 (기본값).
-s,-보조
2 차 선택에서 작동합니다.
-b,-클립 보드
CLIPBOARD 선택에서 작동합니다.
그리고 그것은 당신이 알아야 할 모든 것입니다. p
(또는 아무것도) for PRIMARY
, s
for SECONDARY
, b
for CLIPBOARD
, o
output.
예 : foo
TTY 의 출력을 복사하여 버그 보고서를 위해 웹 페이지에 붙여 넣고 싶다고 가정 해보십시오. 이렇게하려면 TTY / X 세션에서 복사하거나 TTY / X 세션에서 복사하는 것이 이상적입니다. 질문은 TTY에서 클립 보드에 어떻게 액세스합니까?
이 예에서는 X 세션이 표시되어 있다고 가정합니다 :1
.
$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1
그럼 난 할 수있어 Ctrl-V
평소대로 양식에 넣을 .
이제 지원 사이트의 누군가가 문제를 해결하기 위해 실행하라는 명령을 내린다고 가정하십시오. 복잡하고 길다.
$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99
피자 주문 은 명령 줄을 생산적으로 사용하는 것처럼 보입니다.
... 이동 중입니다.
정력
+clipboard
(이것이 중요합니다! 확인하십시오 vim --version
)로 컴파일 된 경우 , Vim은 X PRIMARY
와 CLIPBOARD
선택에 액세스 할 수 있어야합니다 . 두 가지 선택은 각각 *
및 +
레지스터 에서 액세스 할 수 있으며 여가 시간에 다른 레지스터와 동일하게 쓰고 읽을 수 있습니다. 예를 들면 다음과 같습니다.
:%y+ ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example
하지만 vim의 사본이 X 선택에 대한 액세스를 직접 지원하지 않는다면 세상의 끝이 아닙니다. xsel
마지막 섹션에서 설명한대로 기술을 사용할 수 있습니다 .
:r ! xsel -bo ; read (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b ; write (w) to the stdin of (!) `xsel -b`
몇 가지 키 콤보를 묶으면 좋을 것입니다.
:%y+
vim 에서 사용 하고 있는데, 이것은 "+ '레지스터 (XPRIMARY
클립 보드)에 모든 줄을"잉크 (복사) "로 vim-speak입니다 .%
구체적으로 원하면 범위로 바꿀 수 있습니다 . 그러나 세 가지주의 사항이 있습니다. 1. 이제 파일을 복사하기 전에 텍스트를 파일에 저장해야합니다. 이것은xclip
답변에 언급 된 명령 과 대조적 입니다. 2. vim 방법을 모른다면 지루할 수도 있습니다. vim을 컴파일 할 때 특정 기능이 활성화 된 경우에만이 작업을 수행 할 수 있습니다. GVim을 설치하면 vim의 GUI 및 터미널 인스턴스 모두에서 기본적으로 활성화되어 있어야합니다.