줄 바꿈을 제거하려면 쉘 명령을 사용하십시오(KDE 전역 단축키에서 작동해야 함)

줄 바꿈을 제거하려면 쉘 명령을 사용하십시오(KDE 전역 단축키에서 작동해야 함)

현재 선택한 텍스트에서 줄바꿈을 제거하려면 바로가기가 필요합니다. 나는 내 명령을 KDE 전역 단축키에 넣고 싶은데 그 방법을 이미 알고 있습니다. 내가 생각해낸 명령은 다음과 같다.

sh -c 'xclip -o -sel p | tr -d "\-\n"  | tr "\n" "\ " | xclip -sel c; xdotool key --clearmodifiers ctrl+v'

목적은 현재 선택 항목을 파이프로 연결하여 tr줄 끝 하이픈을 제거하고(그리고 조각을 연결한 다음) 나머지 줄 바꿈을 공백으로 바꾼 다음 클립보드에 넣고 (포커스가 있는 곳에) 붙여넣는 것입니다.

문제: 개행 문자를 공백으로 바꾸지 않습니다. tr "\n" "\ ". 그렇게 하는 대신 개행 문자를 아무것도 대체하지 않습니다. 다양한 공간 표현을 시도했지만 그 중 아무 것도 작동하지 않았습니다.

나는 시도했지만 xdotool type이것은 모든 공백을 먹고 를 사용하지 않고도 모든 것을 함께 실행합니다 tr.

나는 클립보드 대신 선택 항목(기본 또는 보조)을 사용하는 것을 선호하며 가능하면 이를 사용할 필요가 없습니다 xdotool key ctrl+v. xdotool공백을 처리하는 방식이 내 경험상 예상치 못한 것이기 때문에 완전히 피할 수 있다면 더 좋을 것입니다.

아직 설치 하지 않았 xvkbd으며 설치하고 싶지도 않습니다. 하지만 도움이 된다면 설치할 수 있습니다.카피,파이썬-pyperclip, 또는xorg-x 클립보드. 주요 Arch 저장소에는 제가 고려할 수 있는 다른 도구가 있습니다.

답변1

이것이 내가 생각해낸 것입니다:

sh -c 'xclip -o -sel p | perl -p -e "s/-\n//g"|  tr "\n" " "| xclip -sel c; xdotool key --clearmodifiers ctrl+v'

나는 첫 번째 것을 perl로 대체했습니다 tr. tr시퀀스가 -\n문자열이 아닌 두 개의 별도 문자로 처리된다는 것을 깨달았습니다 .

여기에서 Perl 제안을 찾았습니다.
https://stackoverflow.com/a/7697604/463994

단일 Perl 명령을 사용하여 이를 수행할 수 있는 방법이 있을 수 있지만 이에 대해서는 모르겠습니다. 더 나은 답변을 받아 들일 것입니다.

편집 : 이것은더 나은 솔루션, Rakesh Sharma에게 감사드립니다(댓글 참조):

sh -c 'xclip -o -sel p | perl -pe "s/-\n// || s/\n/ /" | xclip -sel c; xdotool key --clearmodifiers ctrl+v; xdotool key Alt'

xdotool key AltAlt 키 조합에 바인딩된 단축키가 있고 Alt 키를 지워야 하기 때문에 이것을 추가했습니다 .

관련 정보