마우스를 사용하지 않고 명령줄에서 클립보드로 텍스트를 복사하는 방법은 무엇입니까?

마우스를 사용하지 않고 명령줄에서 클립보드로 텍스트를 복사하는 방법은 무엇입니까?

마우스를 건드리지 않고 명령줄의 현재 텍스트를 클립보드로 복사하는 방법을 찾으려고 합니다. 즉, 키보드로 텍스트를 선택하기만 하면 됩니다. 완전한 솔루션으로 이어질 수 있는 중간 솔루션을 찾았습니다.

Ctrl+a- 줄의 시작 부분으로 이동합니다.

Ctrl+k- 전체 라인을 잘라냅니다.

Ctrl+y- 잘라낸 텍스트를 뒤로 당깁니다.

Ctrl+u또는 를 사용하여 처음 두 단계를 수행 할 수도 있습니다 .

물론 이것은 작동하지만 잘라낸 텍스트가 정확히 어디에 저장되어 있는지 알아내려고 노력 중입니다. 사용하지 않고 접근할 수 있는 방법이 있나요 Ctrl+y? 알아요 , 심지어 텍스트를 클립보드로 직접 옮기는 데도 사용해 본 적이 있어서 저장된 데이터를 로 xclip옮겨볼까 생각 중인데 어떻게 해야 할지 모르겠어요.Ctrl+kxclip

지금까지 내가 얻은 방법은 줄의 시작과 끝 부분에 xdotool추가하고 Enter 키를 누르는 스크립트를 작성하는 것입니다( 기본적으로 파이프되는 사용자 정의 별칭입니다 ). 이 방법도 작동하지만 실제로 "깨끗한" 솔루션은 아닙니다.echo| zxczxcxclip

차이가 있다면 Cshell을 사용하고 있습니다.

screen편집: 나는 그것을 해결책 으로 사용하고 싶지 않았는데 , 이것을 언급하는 것을 잊어버렸습니다.

감사해요!

답변1

또는 파생물을 사용하는 경우 xterm텍스트 선택을 시작하고 끝내도록 키 바인딩을 설정하고 X11 기본 선택 또는 잘라내기 버퍼로 저장할 수 있습니다. 바라보다 man xterm. 예를 들어 다음을 추가하세요 ~/.Xdefaults.

XTerm*VT100.Translations: #override\n\
    <Key>KP_1: select-cursor-start() \
            select-cursor-end(PRIMARY, CUT_BUFFER0)\n\
    <Key>KP_2: start-cursor-extend() \
            select-cursor-end(PRIMARY, CUT_BUFFER0)\n

항목 은 하나만 있을 수 있습니다 XTerm*VT100.Translations. X11 서버를 새 파일 내용으로 업데이트합니다 xrdb -merge ~/.Xdefaults. 재시작 xterm.

이제 명령 프롬프트에 입력할 때 1숫자 키패드를 입력하면 마우스의 버튼 1을 누르는 것과 마찬가지로 현재 텍스트 커서 위치의 텍스트가 선택되기 시작합니다. 화살표 키를 사용하여 커서를 이동한 다음 2숫자 패드를 누르면 가운데 텍스트가 강조 표시되고 기본 선택 항목과 cutbuffer0에 복사됩니다. 다른 더 적절한 키와 동작을 선택했을 수도 있습니다. 마찬가지로 바인딩을 사용하여 선택 항목을 붙여넣을 수 있습니다 insert-selection(PRIMARY).

답변2

명령을 먼저 실행하려는 경우 다음 패턴을 사용할 수 있습니다. 마지막 명령을 잡고 fc기록 번호를 삭제하여 클립보드에 저장합니다.(현재 Mac에서는 Zsh이지만 설정에 맞게 조정하세요.):

# Call the save-to-clipboard function something like "save"
% save() { fc -l -1 | gsed -r 's/^\s*[0-9]+\s+//' | pbcopy }

# Execute your interesting saveable command
% some-interesting-command with args...

# Put the command onto your clipboard
% save

당신은 또한 수키 조합에 바인딩타이핑을 피하기 위해 save.

관련 정보