마우스를 사용하지 않고 터미널에서 텍스트 선택


68

Enter 키를 눌러 터미널에서 명령을 실행하려고하지만 마우스를 사용하지 않고 명령을 클립 보드에 복사하려고합니다.

어떻게?

터미널이 아닌 다른 곳에 있다면 Ctrl+를 사용 Home하십시오.

터미널에서 이와 같은 텍스트를 임의로 선택하는 방법이 있습니까?

편집 :

  • 같은 다른 프로그램을 사용 screen하는 것이 좋은 대안이 아니라고 가정
  • 텍스트는 터미널 외부에 붙여 넣어야하므로 Ctrl+ y및 유사한 시퀀스로도 해결할 수 없습니다.

1
Ctrl-Shift-Home을 의미합니까?
기계 달팽이

Shift-Home은 줄의 시작 부분에 복사됩니다. Ctrl-Shift-Home은 페이지 시작 부분에 복사합니다.
Strapakowsky

Shift-Home과 Ctrl-Shift-Home은 나를 위해 동일한 작업을 수행하며 (터미널의 시작으로 이동) Ctrl-Y 또는 Ctrl-Shift-V (또는 선택하지 않음)로 파싱 된 것을 복사하지 않는 것 같습니다. 그러나 텍스트 편집기에서는 복사가 아니라 선택하기 만합니다. Virtual Box에서 OpenSUSE Leap 15 사용. 답변에 언급 된 다른 모든 키 바인딩이 작동합니다.
Brambor

답변:


16

다음 바로 가기 바인드 :

bind '"\C-p": "\C-e\C-u xsel <<"EOF"\n\C-y\nEOF\n\C-y"'

이제 Crtl+ 를 사용 P하면 줄이 클립 보드에 복사됩니다. 다음을 사용하여 터미널에 붙여 넣을 수 있습니다.

xsel

그리고 가운데 마우스 버튼 또는 Shift+를 사용하여 X 응용 프로그램으로 Insert.


마우스 사용을 피하고 싶습니다. 마우스 가운데 버튼 대신 Ctrl + Shift + V로 붙여 넣을 수 있습니까?
MrGigu

@MrGigu, 다른 클립 보드를 사용합니다 ( 여기 참조 ). 다른 단축키를 사용해야합니다. 기본적으로 Shift + Insert 여야합니다 ( 여기 참조 )
Nykakin

고마워, shift + insert 작업이 가능합니다! 이 명령으로 붙여 넣을 수 있다는 것을 몰랐습니다.
MrGigu

실제로 무슨 일이 일어나고 있는지에 대한 설명이 있습니까?
Alexander

또는 xsel -b표준 클립 보드 (예 : Ctrl + V / Ctrl + Shift + V를 사용하는 클립 보드)를 사용하는 데 사용하십시오. 또한이 방법은 여러 줄 명령에서 실패합니다.
wjandrea

27

emacs 키 (bash, csh 등)를 이해하는 쉘 중 하나를 사용하는 경우 다음을 통해 현재 명령을 복사 할 수 있습니다.

  1. control-A 줄의 시작 부분으로 이동합니다.

  2. control-K 방금 입력 한 전체 줄을 죽일 것입니다.

  3. control-Y 텍스트를 다시 잡아 당깁니다.

그런 다음 나중에 control-Y텍스트 를 잡아 당겨 쉘 명령 행 편집기에 입력으로 텍스트를 다시 삽입 할 수 있습니다 .

참조 man bash다음은 입력 나오면 /emacs몇 다음 n의 (다음)를 작성한 Readline 섹션에 당신을 앞으로 이동합니다.


알고 있었지만 터미널 외부에 붙여 넣고 싶습니다. 설명을 위해 편집되었습니다.
Strapakowsky

3
control-U명령의 끝에서 직접 명령을자를 수 있습니다
vstepaniuk

1
두 번째 명령으로 내 인생이 바뀌 었습니다.
krishna

10

내가 생각할 수있는 가장 가까운 것은 Ctrl+ u, Ctrl+ y
커서에서 줄의 시작 부분까지 삭제 한 다음 readline 버퍼에서 붙여 넣습니다. 이것은 클립 보드와 정확히 동일하지는 않지만 필요한 경우 쉘 안에 붙여 넣을 수 있습니다.


알고 있었지만 터미널 외부에 붙여 넣고 싶습니다. 설명을 위해 편집되었습니다.
Strapakowsky

8

screen이라는 프로그램이 있습니다. 여러 인스턴스간에 전환 할 수있는 텍스트 윈도우 시스템을 만듭니다. 그러나 텍스트를 선택할 수도 있습니다.

sudo apt-get install screen

해당 명령이 설치됩니다.

그런 다음 입력 screen

ctr-a를 사용하여 명령 순서를 시작하십시오. 그런 다음 esc를 누르면 커서가 어느 방향 으로든 이동합니다. Enter 키를 눌러 텍스트 선택을 시작하고 끝점으로 이동 한 후 Enter 키를 다시 누르십시오. 버퍼에 복사됩니다.

그런 다음 ctr-a를 입력 한 다음}

다른 명령에 대한 자세한 내용은 여기 http://www.kuro5hin.org/story/2004/3/9/16838/14935


좋은 제안이지만 screen다른 이유로 마음 에 들지 않으므로 정기적 인 우분투 터미널을 가정하십시오. 설명을 위해 내 질문을 편집했습니다.
Strapakowsky

1
정답 IMHO로 표시해야합니다.
eddiew는

2

vim 안에 있다면 Shift+로 하나 이상의 라인을 시각적으로 선택한 v다음 바인딩을 사용 yy하여 선택을 xclip 으로 파이프 할 수 있습니다 .

vimrc에 바인딩을 추가하십시오.

vnoremap yy :w !xclip -selection clipboard<CR><CR>

이를 위해서는 xclip 을 설치 해야 하며 Debian / Ubuntu aptitude 리포지토리에 있습니다.

xclipstdin을 저장하고 -selection clipboardstdin을 시스템 클립 보드로 푸시 하는 옵션도 있습니다.

따라서 xclip터미널에서 일반적인 방식으로 사용 하여 전체 파일을 시스템 클립 보드에 복사 할 수 있습니다.

cat myfile | xclip -selection clipboard

선택적으로 다음과 같은 별명을 작성할 수도 있습니다.

alias cb="xclip -selection clipboard" 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.