고쳐 쓰다:

고쳐 쓰다:

(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(여기서 청소하면 알아서 처리되므로 귀찮게 청소하지 마세요 .)

관련 정보