emacs / vi / vim을 사용하여 명령 행에서 파일을 읽기 전용으로 여는 방법 정력 이맥스 말할 수있는 방법이

내가에서 파일을 보려는 (명령 행에서) / VI / 정력 이맥스 말할 수있는 방법이 있나요 view-mode또는 read-only.

emacs / vi / vim이 이미 실행중인 경우에만 파일을 읽기 전용으로 여는 방법을 알고 있습니다.



답변

이맥스의 경우 :

emacs FILE --eval '(setq buffer-read-only t)'

강제로 읽기 전용으로 시작할 수있는 시작 옵션이 없습니다.

편집 :
이 작은 기능을 쉘 시작 스크립트 (예 : .bashrc)에 넣으면 다음을 입력하여 파일을 읽기 전용으로 열 수 있습니다ev file_to_view

ev() {
  emacs "$1" --eval '(setq buffer-read-only t)'
}


답변

vim -R 파일 이름


답변

파일명보기

기본적으로 읽기 전용 모드에서 vim; 단순!

코멘트에 의해 암시 된 바와 같이, 경우가 view일반에 연결되어 vi, 현재 bash는 먼저 상황을 점검하고이를 해결하기 위해 명령 :

# non-destructive inspection
which vim
which view
ls -l $(which view)

# overwrite current view with symlink to vim, requires root
ln -sfv $(which vim) $(which view)


답변

vim -R <file>

와 쓸 수 있습니다 :w!

vim -c ":set nomodifiable"  <file>

사용자가 버퍼의 파일을 변경하지 못하게합니다. 그러나 사용자는 다음과 같이 버퍼를 수정 가능하게 만들 수 있습니다.:set modifiable

당신은 사용할 수 있습니다

vim -c ":noremap q :q<cr>" -c ":map : <Esc>" -c ":set nomodifiable" <file>

사용자가 “변경 불가능”을 끄는 것을 방지하고 사용자가을 눌러 종료 할 수 있도록합니다 q. 그러나 사용자는 명령 모드에 전혀 들어갈 수 없으므로 원하는 모드 일 수도 있고 아닐 수도 있습니다.

less 명령으로 파일을 열 수도 있습니다.

less <file>

vim과 유사한 환경에서 파일을 볼 수는 없지만 파일을 보는 것.


답변

허용 된 답변에 대한 작은 후속 조치 : 쉘에서 별칭을 지정하여 단일 명령으로 줄일 수 있습니다. 예를 들어 bash에서는 다음을 .bashrc에 넣을 수 있습니다.

emacsro() {
  emacs $1 --eval '(setq buffer-read-only t)'
}

(다른 쉘은이 작업을 위해 다른 형식을 갖지만 아이디어를 얻습니다)

나는 이것을 받아 들인 대답에 대한 회신으로 주석으로 추가했지만 주석에 여러 줄 “code”블록을 가질 수는 없었고 (어쨌든 bash에서는) 위의 코드는 실제로 3 개의 개별 라인에.


답변

편집 할 수없는 파일 만 보려면 :

cat <file> | less

에서 less당신은 눌러 “편집 파일 모드”로 갈 수있는 v키를 누릅니다. 그러나 표준 입력을 편집 할 수 없으므로 출력 cat <file>을 적게 less줄이면 ‘v’를 누를 때 ‘편집’모드로 전환되지 않습니다.

vim의 경우 동일한 접근 방식

cat <file> | vim -


답변

emacs의 경우 view-mode를 사용할 수도 있습니다 .

emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'

또는 터미널 내부의 대안 :

emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'

또는 래퍼 스크립트를 사용할 수 있습니다