vim 내에서 현재 열려있는 파일을 디스크에서 어떻게 삭제할 수 있습니까? 버퍼를 닫는 것도 좋을 것입니다.
나는 당신 이 NERDTree를 사용할 수 있음 을 알지만이 플러그인을 사용하지 않습니다.
답변
rm (1) 과 같은 외부 도구를 사용하는 것은 좋지만 Vim에는 delete()
파일 삭제를위한 자체 기능 도 있습니다. 이것은 휴대용이라는 장점이 있습니다.
:call delete(expand('%'))
이것을 표현하는 다른 방법은 (현재 파일) 레지스터 (@accolade의 팁) :call delete(@%)
를 사용하는 %
입니다.
디스크의 파일 표현과 Vim 버퍼 모두 현재 버퍼를 완전히 제거하려면 :bdelete
다음을 추가하십시오 .
:call delete(expand('%')) | bdelete!
선호도에 따라이를 매핑 할 수 있습니다.
답변
Vim 명령으로 파일 삭제를 살펴보십시오 . 댓글 섹션은 당신이 찾고있는 무엇을해야한다 :
기본적으로 Rm은 현재 파일을 삭제합니다. RM은 현재 파일을 삭제하고 버퍼를 저장하지 않고 한 번에 종료합니다.
또는 쉘 명령을 실행하여 현재 파일을 제거 할 수 있습니다.
:!rm %
답변
때로는 플러그인이 간단한 문제에도 매력적인 솔루션이 될 수 있습니다. 이 경우 전능하신 Tim Pope의 eunuch.vim 이 있기 때문에 운이 좋습니다 .
eunuch.vim 은 그 자체로
가장 필요한 UNIX 쉘 명령 용 Vim sugar. 버퍼와 기본 파일을 동시에 삭제하거나 이름을 바꿉니다. 로드
find
locate
빠른 수정 목록에 또는 a 를 합니다. 등등.
완전한. 필요한 기능과 UNIX 시스템을 사용하는 경우 몇 가지 추가 도구가 있습니다.
찾고있는 명령은
:Remove!
다시 한 번, 많이 필요한 경우 다시 매핑하십시오 :nnoremap <Leader>rm :Remove!<CR>
.
답변
나는 vim 내에서 파일을 삭제할 수 있다는 것을 좋아하지만, 어떤 이유로 든 아직 버전 제어가되지 않은 중요한 작업을 실수로 삭제하는 것에 대해서도 편집증이 있습니다. @glts 및 @accolade의 이전 정보를 vim을 종료하기 전에 명령을 사용하여 프롬프트 하는 방법에 대한 이 답변 을 결합하는 것이 유용하다는 것을 알았습니다 confirm
.
이를 종합 ~/.vimrc
하여 파일을 삭제하고 버퍼를 닫기 전에 메시지를 표시 하는 함수를 my에 추가 하고 키 조합에 매핑했습니다.
nnoremap <Leader>d. :call DeleteFileAndCloseBuffer()
fun! DeleteFileAndCloseBuffer()
let choice = confirm("Delete file and close buffer?", "&Do it!\n&Nonono", 1)
if choice == 1 | call delete(expand('%:p')) | q! | endif
endfun
당신이 나보다 편집증이 적은 한 번의 키 스트로크라면 <CR>
첫 줄에 추가 할 수 있습니다.
nnoremap <Leader>d. :call DeleteFileAndCloseBuffer()<CR>
리턴을 한 번만 누르면됩니다.
답변
다음 두 단계로 수행 할 수 있습니다.
-
새 파일로 저장
: w 새 파일 이름
-
이전 파일 삭제
! rm oldfilename
답변
이것은 인기가없는 의견 일 수 있지만 파일 트리 탐색기 (Netrw / NerdTree)가 파일을 삭제하는 가장 간단하고 안전한 방법이 될 것입니다. OP가 NerdTree를 사용하지 않더라도 내장 플러그인 Netrw도 잘 작동합니다.