답변:
Peter Rincker가 지적했듯이 cmap
s는 다른 곳에서도 확장 cnoreabbrev
될 수 있으므로 더 좋습니다 .
cnoreabbrev w' w
또는 피터 덕분에 가장 안전합니다.
cnoreabbrev <expr> w' getcmdtype() == ":" && getcmdline() == "w'" ? "w" : "w'"
명령 행에을 포함하는지 명시 적으로 확인하면 w'
상황에 따라 원하지 않는 확장을 피할 수 있습니다.
당신은 사용할 수 있습니다 cmap
:
cmap w' w
여전히을 (를) 눌러야 Enter하지만 우발적 '
으로 무시해야합니다.
를 사용 cmdwin
하는 경우 inoremap
세트 기준 autocmd
이 유용 할 수 있습니다.
autocmd CmdwinEnter * inoremap w' w
autocmd CmdwinLeave * iunmap w'
:cmap w' w
지만 행동에는 변화가 없었다. :w'
여전히이라는 파일에 쓰게됩니다 '
. "'" [New] 0L, 0C written
.
'
다음에 누르면 실제로 표시 됩니까 w
? 그것은이 안 경우 cmap
성공적으로 작성 - cmap를의 LHS가 자동으로 당신이 키를 누르면 그래서, RHS로 채워집니다 '
, 그것은 여전히 표시해야합니다 w
.
cmap
의와 cabbrev
의. 다른 모드 및 다른 장소에서 실행 / 확장됩니다. 예를 들어 :s/'follow'/foo
와 /'follow'
. 다음을 참조하시기 바랍니다 버퍼 대신 저장 및 종료 삭제 X 기능 : 정력 변경 또는 사용 cmdalias.vim
cnoreabbrev <expr> w' getcmdtype() == ":" && getcmdline() == "w'" ? "w" : "w'"
'
여전히 표시되지만 cmdwin을 사용하여 명령을 입력하고 cmdwin이 일반 버퍼 일뿐이므로 cmap/cnoreabbrev
작동하지 않기 때문에 알았 습니다. noreabbrev
cmdwin 사용자를위한 옵션으로 답변 업데이트 :) 감사!!!
이 방법은 저에게 효과적입니다.
:ca w' w
또는 Esc를 두 번 눌렀을 때 현재 버퍼를 저장하도록 vim을 설정할 수 있습니다 (예 :
:map <Esc><Esc> :w<CR>
또는 다음 매핑을 사용하여 Ctrl+ s또는로 파일을 저장하십시오 F2.
nmap <c-s> :w<CR>
vmap <c-s> <Esc><c-s>gv
imap <c-s> <Esc><c-s>
nmap <F2> :update<CR>
vmap <F2> <Esc><F2>gv
imap <F2> <c-o><F2>
참고 : F2는 필요한 경우에만 저장하고 필요에 따라 사용자를 삽입 모드 (또는 시각적 선택을 복원)로 되돌립니다.
출처 : vim wikia에서 파일 저장
또는 다음 대안을 사용하십시오.
:up
에 대한 ( :update
):w
:q
:wq
나:x
:w'
아닙니다 :w
. :w
실수로 치는 '
일 없이 사용하고 싶습니다 rm \'
. 그러면 파일을 작성합니다 . 그래도 좋은 팁.