내가에서 파일을 보려는 (명령 행에서) / 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")'
또는 래퍼 스크립트를 사용할 수 있습니다