나는 기록에 줄바꿈을 추가하는 것을 좋아하지 않기 때문에 입력하기 전에 백스페이스 키를 눌러야 하는 경우가 많습니다. 이 작업을 자동으로 수행하는 방법이 있는지 궁금합니다(후행 줄 바꿈 제거).
또한 때로는 붙여넣은 명령을 제출하기 전에 편집해야 하기 때문에 대괄호 붙여넣기를 비활성화하고 싶지 않습니다.
복사:
아래 코드 블록을 세 번 클릭하면 후행 줄 바꿈을 포함하여 전체 줄이 선택됩니다.
cd /tmp
이것을 복사하여 ZSH에 붙여 넣으십시오. 대괄호 붙여 넣기를 비활성화하지 않으면 실행되지 않습니다. 지금 기록 파일 보기
cat $HISTFILE | tail -3
다음과 같은 내용이 표시됩니다.
: 1646582294:0;cd /tmp\
: 1646582296:0;cat $HISTFILE | tail -3
UP 키를 누르면 줄 바꿈이 유지되는 것을 볼 수 있습니다.
내 zshrc 파일을 찾을 수 있습니다여기. 제가 놓친 것이 있다면 죄송합니다.
답변1
bracketed-paste
붙여넣은 텍스트(있는 경우)에서 후행 줄 바꿈을 제거하도록 언제든지 zle 위젯을 재정의할 수 있습니다 .
bracketed-paste() {
zle .$WIDGET && LBUFFER=${LBUFFER%$'\n'}
}
zle -N bracketed-paste
답변2
저는 zsh 사용자는 아니지만 이것을 .zshrc에 넣어보세요.
zshaddhistory() {
setopt LOCAL_OPTIONS
setopt EXTENDED_GLOB
print -sr -- "${1%%$'\n'##}"
fc -p "$HISTFILE"
return 1
}
이렇게 하면 후행 줄 바꿈이 모두 제거됩니다. 원하는 것을 달성하기 위해 필요한 경우 수정하십시오. 비결은zshaddhistory
훅.