![ZSH 프롬프트에 입력된 여러 줄 표현식을 복사/복사하는 방법은 무엇입니까?](https://linux55.com/image/4393/ZSH%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%EC%97%90%20%EC%9E%85%EB%A0%A5%EB%90%9C%20%EC%97%AC%EB%9F%AC%20%EC%A4%84%20%ED%91%9C%ED%98%84%EC%8B%9D%EC%9D%84%20%EB%B3%B5%EC%82%AC%2F%EB%B3%B5%EC%82%AC%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
예를 들어, 내 기록을 검색하다가 이전에 입력한 여러 줄 명령에 도달했다고 가정해 보겠습니다.
~ >> for f in *; do
echo $f
done
vim
ZLE()에서 바인딩을 활성화했기 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
것은 놀라운 일이 아닙니다 .