less
주로 코드를 읽고 싶을 때 사용하고, v
문서를 편집하고 싶을 때는 에디터로 전환 하는 워크플로 로 전환하려고 합니다 . 이것은 OS X에서는 GNU-less이지만 다른 시스템에도 일반화될 수 있다고 생각합니다.
초기화 파일을 읽지 않도록 VISUAL
vim을 설정하거나 즉시 시작되는 다른 편집기(예: vim 또는 vim)를 사용하는 경우, 누르기와 파일이 편집기에 표시되는 사이에 눈에 띄는 일시 중지가 없습니다 .vim -u NONE
nano
joe
ne
v
예를 들어 다음은 잘 작동합니다.
$ previous-command > foo.txt
$ VISUAL='vim -u NONE' less foo.txt
파일을 보려면 less
관심 있는 줄로 스크롤하고 를 누르면 v
파일이 즉시 내부에 표시됩니다 vim
.
이를 설명하기 위해 로 설정하면 VISUAL
다음과 같은 일이 발생합니다 sleep 1; vim
.
$ another-previous-command > foo.txt
$ VISUAL='sleep 1; vim -u NONE' less foo.txt
이제 파일을 보고 v
편집을 누르는 중입니다.
이제 셸 세션이 잠시 동안 다시 표시되므로 다음을 볼 수 있습니다.
$ another-previous-command > foo.txt
$ VISUAL='sleep 1; vim -u NONE' less foo.txt
foo.txt
두 번째 단계가 지나면 vim 내부의 내용을 볼 수 있습니다.
vim
추가 명령줄 인수 없이 단독으로 사용하여 파일을 읽고 일부 초기화 작업을 수행할 수 있습니다. 이 작업은 1초도 채 걸리지 않지만 sleep 1; <VIM COMMAND>
.
less
제어권을 에서 로 전송하여 vim
기본 셸 세션을 보이지 않게 하거나 부분적으로 보이지 않게 만드는 방법이 있습니까 ?
답변1
Less 옵션은 -X
터미널의 초기화 및 초기화 해제를 꺼서 깜박임을 유발합니다. less
터미널 에뮬레이터의 대체 화면 기능을 사용하고 있을 가능성이 높습니다 . 그것이 Mac OS X의 Terminal.app이라면 분명히 할 수 있습니다.대체 화면 간에 수동으로 앞뒤로 전환. (XTerm을 사용하면 수동으로 전환할 수도 있습니다).
자, 백업화면이란 무엇일까요? 왜 덜 자주 사용됩니까? 실제로 역사적인 이유가 있습니다. 터미널 에뮬레이터는 컴퓨팅 초기부터 사용되어 왔지만 현재는 매우 드물게 사용되는 실제 하드웨어 디스플레이 장치인 터미널로 가장합니다. 프로그램은 문자를 출력하여 거의 전적으로 터미널 에뮬레이터와 통신합니다. 특정 특수 문자는 제어 문자로 지정되며 커서 이동, 화면 지우기, 색상 변경 등과 같은 작업을 수행할 수 있습니다. 현대의 프레임버퍼와는 달리어렵거나 불가능하다터미널이 현재 표시하고 있는 내용을 알아내는 프로그램입니다. (사실 가능하다면 터미널이 마치 사용자가 답을 입력한 것처럼 답을 다시 보내도록 하는 제어 시퀀스를 보내서 수행해야 합니다. 터미널에서 프로그램으로 데이터를 보내는 다른 방법은 실제로 없습니다. ).
따라서 다른 내용을 표시한 후(예: 입력한 명령을 보기 위해) 화면을 복원하려면 이를 수행하는 터미널이 필요합니다. 대부분의 터미널 에뮬레이터에서는 대체 화면으로 전환하여 하나 이상의 화면을 저장할 수 있습니다. 예를 들어 echo hello | less
less를 닫은 다음 실행하면 변경되지 않은 상태로 bash 화면으로 돌아옵니다. 이는 Less가 대체 화면으로 전환하고 거기에 "hello"를 표시한 다음 종료하면 다시 전환되기 때문입니다. 실행하면 echo hello | less -X
동작이 매우 달라집니다(init의 화면 지우기 부분도 건너뛰므로 프롬프트 후에 파일이 실행됩니다. 화면을 강제로 지우고 다시 그리려면 control-L을 사용해 보세요). less를 종료하면 쉘 기록이 더 이상 표시되지 않습니다.
무작위 사이드 노트는 less -FX
유용한 조합입니다.
어쨌든, 여러분이 보고 있는 플래시는 다음과 같습니다. less가 편집기를 시작하면 먼저 터미널을 "정상" 상태로 되돌려야 합니다. 그 중 일부는 대체 화면을 전환하는 것입니다. 이것이 당신이 보는 것입니다. (vim이 시작되자마자 즉시 대체 화면으로 다시 전환됩니다. 하지만 less는 이를 알 방법이 없습니다.)
또한보십시오:터미널에서 화면 복구를 구성하는 방법은 무엇입니까?