(Midnight Commander) 에서는 mc
파일을 보기 위한 사용자 정의 명령을 정의할 수 있습니다.
shell/i/.jpg
Open=gpicview %f
View=file %f | less
명령은 file %f
호출기로 파이프되어야 합니다. 나는 이것을 여기서 예로 사용하고 있습니다 less
.
less의 문제점은 화면 중앙에 줄을 표시하고 다음 문자를 추가한다는 것입니다.
~
~
(END)
파이프 리디렉션에서 수신된 내용만 표시하는 가장 간단하고 멍청한 호출기가 필요합니다. 명령 과 같은 것은 cat
표시되는 파일에 아무것도 추가하지 않습니다.
대신 무엇을 사용할 수 있나요 less
?
아니면 less
이러한 특수 문자를 숨기도록 구성할 수 있나요?
고쳐 쓰다:
less
좋아, --tilde
옵션과 를 사용하여 몇 가지 문제를 해결했습니다 --clear-screen
. 그러나 여전히 페이지 하단에 less
나타납니다 .(END)
나는 그것에서 벗어날 수 있는가 (END)
? 구성 옵션이 없으면 소스 코드에서 어떻게 변경할 수 있습니까?(less 패키지를 다시 컴파일할 수 있습니까?)
less
저는 데비안 10을 사용하고 있습니다 less --version
. 보여주다:
less 487 (GNU regular expressions)
답변1
mc
자체 내부 호출기/뷰어가 있으므로 별도의 호출기/뷰어를 호출할 필요가 없습니다. 다음이 필요합니다.
type/^JPEG
View=%view file -- %p
file
(이는 파일 이름이 아닌 파일 형식(정규식이 적용된 출력)을 기반으로 합니다 .)
상단 댓글 보기기본값mc.ext
문서화를 위해.
JPEG 파일의 기본 뷰어는 실제로 다음과 같이 정의됩니다.
type/^JPEG
View=%view{ascii} /usr/lib/mc/ext.d/image.sh view jpeg
Include=image
[...]
include/image
Open=/usr/lib/mc/ext.d/image.sh open ALL_FORMATS
View=%view{ascii} /usr/lib/mc/ext.d/image.sh view ALL_FORMATS
말하자면 less
다음과 같습니다.
-~
또는--tilde
일반적으로 파일 끝 뒤의 줄은 단일 물결표(~)로 나타납니다. 이 옵션을 사용하면 파일 끝 뒤의 줄이 빈 줄로 표시됩니다.
프롬프트 문자열을 정의할 수 있습니다 -Ps'prompt'
. (END)
끝에 있는 항목을 포함하여 이를 제거하려면 -Ps
단독으로 전달할 수 있지만 여전히 표시됩니다 :
. -Ps$'\r'
(또는 ksh93 따옴표를 -Ps"$(printf '\r')"
지원하지 않는 쉘의 경우 $'...'
) :
.
그래서:
type/^JPEG
View=file -- %p | less -~ -Ps"$(printf '\r')"
화면의 내용을 지우려면 file
출력에 영향을 주지 않고 명령을 실행한 다음 일부 키를 눌러 종료할 때까지 기다리면 다음과 같이 할 수 있습니다.
type/^JPEG
View=zsh -c 'echoti clear; echoti civis; file -- "$1"; read -sk; echoti cnorm; echoti clear' zsh %p
echoti civis
(여기에는 보너스 로 커서도 숨겨져 있습니다 .)
메인 화면에 머물다가 들어가고 나갈 때 화면을 지우는 대신, 대체 화면(일반적 mc
으로 사용) 으로 다시 전환하여 메인 화면을 변경하지 않고 그대로 둘 수도 있습니다.less
-X
type/^JPEG
View=zsh -c 'echoti smcup; echoti home; echoti civis; file -- "$1"; read -sk; echoti cnorm; echoti rmcup' zsh %p
mc
(여기서 청소하면 알아서 처리되므로 귀찮게 청소하지 마세요 .)