2009-07-18 3 views
0

화면의 클립 보드에 Masi이라는 단어가 들어있는 사본이 있습니다. Bond를 효과적으로 대체하여 Screen의 명령 모드에서 클립 보드를 직접 편집하고 싶습니다. 나는 클립 보드를/tmp에 저장하고 Vim에서 대체 파일을 실행할 수 있음을 알고 있지만 Screen을 배우고 싶다.화면의 명령 모드에서 Sed를 화면의 클립 보드로 실행하려면

나는 화면의 클립 보드에 내 데이터를 가지고 내가

Ctrl-A : sed s/Masi/Bond/ | [Screen's clipboard]  /// I do not know how to refer to Screen's clipboard by a command other that C-A ] 

내가

unknown command sed 

이 어떻게 화면의 명령 모드에서 화면의 클립 보드에 명령을 실행할 수 있습니다 얻을 실행?

답변

2

화면에 붙여 넣기 버퍼에서 명령을 실행할 수있는 방법이 없다고 생각합니다.

붙여 넣기 버퍼를 저장하고 버퍼를 수정하는 스크립트를 실행하는 새 창을 열려면 바인딩을 만드는 것이 한 가지 방법입니다. 그런 다음 다른 바인드를 만들어 수정 된 버퍼를 디스크에서 다시로드하고 붙여 넣습니다 (일반 붙여 넣기 바인드에 바인딩 할 수 있음).

이 (변경 경로를) SCREENRC에 추가 :

#!/usr/bin/env sh 
echo "Enter sed script: " 
read sedcommand 
sed -i ${sedcommand} /pathtoscript/screensed.clipboard 
echo "(Enter to return)" 
read something 

"CTRL-A는, S"화면에서 클립 보드를 덤프하고 새로운를 만들 것입니다 :

bind -c screensed s eval "writebuf /pathtoscript/screensed.clipboard" "screen sh /pathtoscript/screensed.sh" 
bind -c screensed p eval "readbuf /pathtoscript/screensed.clipboard" "paste ." 
bind , command -c screensed 

어딘가에 쉘 스크립트를 확인 창에서 sed 명령을 입력하십시오. "ctrl-a, p"는 클립 보드를 읽고 붙여 넣습니다. 스크립트 끝 부분의 일시 중지는 sed가 줄 수있는 오류를 보여줍니다.

+0

화면에 클립 비아가 저장되는 위치를 알고 계십니까? –

+0

"writebuf"명령이 완료 될 때까지 화면 붙여 넣기 버퍼가 메모리에 보관되어 있다고 생각합니다. 복사 후에 화면에 자동으로 버퍼를 쓰게하는 방법을 모르겠습니다. 소스 코드를 살펴보고 싶다면 자동 작성 기능이 상당히 단순하다고 생각합니다. –

+1

빠른 검색으로 발견 : http://snarfed.org/space/synchronizing%20GNU%20screen%27s%20paste%20buffer%20and%20the%20X%20selection, 분명히 "stuff" '는 마크 모드 (홀수). 이 파일을 screenrc에 넣으면 다음과 같이 복사 할 때 화면에 자동으로 파일에 쓸 것입니다 : bindkey -m> eval "stuff" ' "writebuf –

관련 문제