ZSH 프롬프트에 입력된 여러 줄 표현식을 복사/복사하는 방법은 무엇입니까?

ZSH 프롬프트에 입력된 여러 줄 표현식을 복사/복사하는 방법은 무엇입니까?

예를 들어, 내 기록을 검색하다가 이전에 입력한 여러 줄 명령에 도달했다고 가정해 보겠습니다.

~ >> for f in *; do
echo $f
done

vimZLE()에서 바인딩을 활성화했기 bindkey -v때문에 Esc이 시점에서 입력하고 vim키 입력을 사용하여 우회, 행 간 이동 등을 할 수 있습니다. yy현재 행을 가져오는 작업을 수행 할 수도 있습니다 . 그러나 이 모든 줄을 복사할 수 있는 확실한 방법은 없는 것 같습니다.

어떤 아이디어가 있나요?

답변1

나는 이를 수행하는 두 가지 (분명히 번거로운) 방법을 생각했습니다. 첫 번째는 Vim을 사용하는 것이고, 두 번째는 Urxvt라는 작은 유틸리티입니다(이것이 터미널 에뮬레이터인 경우).

  • 기록에서 클릭하여 v현재 명령 $EDITOR(Vim, 당연히)을 연 다음 Shiftvg이전 줄을 모두 선택하고 "+*클립보드로 드래그하세요.

  • 당신은 또한 사용할 수 있습니다urxvt-perls끌어오기 및 붙여넣기를 포함하여 이 기능(및 기타 기능)에 대한 터미널 기능이 향상되었습니다. 이 경우: AltEscape선택 모드로 들어가서 모든 행을 Shiftv선택 2k하고 y버퍼로 끌어온 다음 q종료합니다. ShiftInsert가져온 텍스트를 붙여넣습니다. 1

Zsh의 줄 편집 기능만 사용하여 이를 수행할 수 있는 간단한 방법이 없다고 가정하면 첫 번째 접근 방식이 가장 간단한 것 같습니다. 2


1. 이러한 키 바인딩이 모두 2에서 구성 가능하다는 ~/.Xresources
것은 놀라운 일이 아닙니다 .

관련 정보