명령을 사용하여 파일을 열 때 :e filename
해당 파일이 이미 다른 vim 인스턴스에 의해 열려 있으면 다음 위치에서 파일을 열 것인지 묻는 메시지가 나타납니다.읽기 전용 모드, 그러나 편집, 재개, 종료 또는 중단되었습니다.
vim을 시도하면 :silent! e filename
정지되는 것 같습니다 . 하지만 스왑 파일로 무엇을 해야 하는지 묻는 질문이 있는데, 조용히 하라고 해서 볼 수가 없습니다.
파일을 열도록 지시하는 데 사용할 수 있는 명령이 있나요?읽기 전용 모드 만약에파일을 쓰기 모드로 열 수 없으며 사용자 상호 작용이 필요하지 않습니까? (파일을 점프/열기 위해 이것을 매크로에 통합하고 싶습니다).
답변1
당신이 가지고 있다면정력 >= 7(제 생각에는) autocmd
event 와 함께 사용할 수 있습니다 SwapExists
. 그곳에서는 매우 간단한 것부터 매우 복잡한 것까지 무엇이든 할 수 있습니다.
다음은 ~/.vimrc에 있는 간단한 예입니다.
autocmd SwapExists * let v:swapchoice = "o"
스왑 파일이 존재하면 이 이벤트가 시작됩니다. 위의 autocmd는 읽기 전용 모드로만 파일을 엽니다. autocmd에서 값을 얻으면
,v:swapchoice
아니요무엇을 하고 싶은지 물어보세요. 사용할 수 있는 값은 여기에 나열되어 있습니다.v: 교환 선택.
매우 고급 autocmd에 대해서는 여기를 참조하십시오:기존 .vim 편집
vim을 설치한 후 스크립트가 서버에 이미 존재할 수 있으므로 editexisting.vim
.
답변2
정확히 이 작업을 수행 하는 스크립트가 있습니다 .vimrc
. 그러나 swp 파일이 있는 열려 있는 모든 파일에 대해 이 작업을 수행합니다. 항상 이 동작을 원하는지 확실하지 않습니다. 아마도 작성 중인 매크로에서 필요에 맞게 조정할 수 있습니다.
swp 파일이 있는 경우 ro를 열려면 다음을 입력하십시오 .vimrc
.
func CheckSwap()
swapname
if v:statusmsg =~ '\.sw[^p]$'
set ro
endif
endfunc
if &swf
set shm+=A
au BufReadPre * call CheckSwap()
endif
여기에서 이 스크립트를 얻었습니다.여기, 그리고 관심을 가질 수 있는 고급 예입니다.
답변3
RHEL 및 우분투의 명령은 view
vim을 읽기 전용 모드로 열지만 :w!
.