Less를 사용할 때 Vim 편집 모드에 들어가고 나가는 방법은 무엇입니까?

Less를 사용할 때 Vim 편집 모드에 들어가고 나가는 방법은 무엇입니까?

저는 로그나 구성 파일을 볼 때 읽기 전용으로 만들고 싶기 때문에 주로 less를 사용합니다.

하지만 가끔씩 Vim 모드로 들어가 읽기 전용으로 원하는 파일을 변경할 수 있습니다. 어떻게 해야 할지 모르겠습니다. (아마도 마우스 오른쪽 버튼을 클릭하여 붙여넣을 수 있지만 여전히 적습니다). 하지만 가장 중요한 것은 변경 사항을 쓰지 않고 이 모드를 종료하는 방법을 모른다는 것입니다. 보통 : q! 작동하지 않습니다. 작동하지 않습니다. 종료합니다.

내가 받은 메시지를 입력하려고 하면 다음과 같습니다 :quit.

E37: No write since last change (add ! to override)

Ctrl C말하지만 :quit<Enter>작동하지 않습니다 :

Type  :quit  and press <Enter> to exit Vim

이는 콘솔에서 볼 수 있는 것 중 일부이지만 제어할 수는 없습니다. 가끔 삽입 모드로 들어가서 파일을 수정하고 있는데 어떻게 멈추는지 모르겠어요.

검색해보니 vi가 아닌 vi에 대한 지침이 나와 있고 명령이 작동하지 않았습니다. 지금까지 나의 유일한 해결책은 연결을 끊고 아무것도 손상되지 않기를 바라는 것입니다.

마지막으로, 이런 일이 다시 발생하지 않도록 더 짧은 시간에 이 기능을 끌 수 있는 방법이 있습니까?

업데이트: 드디어 나갈 수 있어요. 아까처럼 입력했는데 :q!하단에 '녹음 중'이라고 뜹니다. 또한 입력을 시작하면 삽입 모드로 전환됩니다. 나는 아직도 그것에 들어가는 방법이나 녹음 프롬프트를 얻는 방법을 모릅니다.

roaima가 제안한 대로 나는 이전에 가지고 있던 매뉴얼 페이지를 검색했습니다. v편집 모드로 들어가는 것을 발견했습니다 . ctrl+v가 작동하지 않고 마우스 오른쪽 버튼 클릭도 작동하지 않기 때문에 v를 누르는 방법을 모르겠습니다. 또한 v를 사용하면 1초간 깜박이다가 페이지 하단으로 로드됩니다. 나는 또한 바로 타이핑을 할 수 없고 종료할 수도 없다는 것을 알아차렸습니다 :q!. Esc를 시도한 다음 Ctrl+C를 눌러 :quit 프롬프트를 표시했는데, 여기서 :q!가 작동했습니다. 어쩌다 실수로 이 모드에 들어갔는지, 어떻게 안전하게 빠져나가는지 아직도 그리워지는 느낌이다. 표준 입력에서는 편집이 작동하지 않는다는 것을 알았으므로 less filename | less실수로 편집하지 않도록 하기 위한 해결 방법입니다.

답변1

less ()에 대한 문서를 사용하면 man less입력할 키 조합 vi(또는 다른 선호하는 편집기)이 다음과 같다는 것을 알 수 있습니다 v.

v현재 보고 있는 파일을 편집하려면 편집기를 호출하세요. VISUAL정의되거나 정의되지 않은 경우 편집기는 환경 변수에서 가져옵니다. EDITOR정의되지 않았거나 VISUAL정의되지 않은 경우 기본값은 " vi"입니다. 아래 팁 섹션의 토론도 참조하세요.VISUALEDITORLESSEDIT

less/에서와 마찬가지로 를 사용하여 텍스트를 검색할 수 있습니다 vi. ( /vi Enter이 두 문자의 다음 인스턴스가 발견됩니다. n다음 인스턴스 찾기를 사용하십시오.) 항상 그렇듯이 ZZ또는 :q!종료를 사용하십시오 vi.

에서 언급했듯이코멘트less환경 변수를 설정하여 기본 편집기 설정을 재정의할 수 있습니다 LESSEDIT.

기본값은 다음과 같습니다 LESSEDIT.

%E ?lm+%lm. %g

이는 편집기 이름, a +및 줄 번호, 마지막으로 쉘 이스케이프 파일 이름으로 확장됩니다.

예를 들어, 다음은 편집기를 설정합니다 false. 즉, 파일을 편집하는 데 사용할 수 없습니다 v.

LESSEDIT=false less /var/log/syslog

당신은 또한 less사용할 수 있습니다표준 입력, 편집할 수 없습니다. 그러나 이는 훨씬 덜 효율적이며 대용량 파일의 경우 메모리를 소비할 수 있습니다.

less </var/log/syslog

설정을 조사할 수도 있습니다 LESSSECURE=1.

관련 정보