IT story

VIM 응용 프로그램을 종료하지 않고 파일을 닫습니까?

hot-time 2020. 4. 4. 11:01
반응형

VIM 응용 프로그램을 종료하지 않고 파일을 닫습니까?


저는 VIM을 처음 사용합니다. :eand :w명령을 사용하여 매우 편리한 파일을 편집하고 작성합니다. VIM을 종료하지 않고 현재 파일을 닫는 "close"명령이 있는지 확실하지 않습니까?

나는 알고 :q명령이 파일을 닫으하는 데 사용할 수 있지만 마지막 파일 인 경우, VIM은 물론 닫혀; 실제로 Mac OS에서는 MacVIM이 종료됩니다. VIM 창이 닫히고 Control-N을 사용하여 빈 VIM을 다시 열 수 있습니다. 빈 화면으로 VIM을 열어두고 싶습니다.


버퍼를 삭제합니다 (파일을 닫는 것으로 해석 됨).

:bd 

이미 언급했듯이 : bd을 찾고 있지만 버퍼를 완전히 제거하지는 못하지만 여전히 액세스 할 수 있습니다.

:e foo
:e bar
:buffers
  1 #h   "foo"                          line 1
  2 %a   "bar"                          line 1
Press ENTER or type command to continue
:bd 2
:buffers
  1 %a   "foo"                          line 1
Press ENTER or type command to continue
:b 2
2   bar

대신 완전히 제거하는 : bw원할 수도 있습니다 .

:bw 2
:b 2 
E86: Buffer 2 does not exist

알지 못함 : bw 는 꽤 오랫동안 나를 괴롭 혔습니다.


vim 창에 여러 개의 분할 창이있는 경우 : bd는 현재 파일의 분할 창을 닫습니다 ... 그래서 조금 더 고급스러운 것을 사용하고 싶습니다.

map fc <Esc>:call CleanClose(1)

map fq <Esc>:call CleanClose(0)


function! CleanClose(tosave)
if (a:tosave == 1)
    w!
endif
let todelbufNr = bufnr("%")
let newbufNr = bufnr("#")
if ((newbufNr != -1) && (newbufNr != todelbufNr) && buflisted(newbufNr))
    exe "b".newbufNr
else
    bnext
endif

if (bufnr("%") == todelbufNr)
    new
endif
exe "bd".todelbufNr
endfunction

: [N] bd [elete] [!] * : bd * * : bdel * * : bdelete * * E516 *
: bd [elete] [!] [N]
                버퍼 [N]을 언로드하고 (기본값 : 현재 버퍼)
                버퍼리스트 버퍼가 변경되면 실패합니다.
                [!]를 지정하지 않으면 변경 내용이 손실됩니다.
                파일은 영향을받지 않습니다. 이 버퍼의 모든 창은
                닫은. 버퍼 [N]이 현재 버퍼 인 경우 다른 버퍼
                대신에 표시됩니다. 이것은 가장 최근 항목입니다
                로드 된 버퍼를 가리키는 점프 목록
                실제로 버퍼는 완전히 삭제되지 않고 제거됩니다.
                버퍼 목록에서 | | unlisted-buffer | 옵션 값
                버퍼에 대한 변수 및 매핑 / 약어는
                클리어했다.

마지막 파일을 이미 저장 한 경우 : enew는 친구입니다 (마지막 파일을 저장하지 않으려면 : enew!). 원본 파일은 여전히 ​​버퍼 목록 (: ls를 통해 액세스 할 수있는 파일)에 있습니다.


파일 수정 하고 VIM을 종료하지 않고 저장하지 않고 닫으려면 다음을 입력해야합니다.:bd!


: bd를 매핑 할 수 있습니다. 더 이상 원하지 않는 변경으로 인해 강제 종료 해야하는 경우 F4, Shift-F4에 매핑합니다.


이를위한 플러그인이 있습니다 : bufkill ( http://www.vim.org/scripts/script.php?script_id=1147 참조 )

이렇게 BD하면 (처럼 bd) 분할을 닫지 않고 버퍼를 삭제하기 위해 etc가 추가 됩니다.


vimrc 파일에 다음을 삽입하고 b4를 F4에 매핑했으며 F4를 누르면 현재 파일이 닫힙니다.

:map <F4> :bd<CR>

버퍼를 닫을 때 창 레이아웃을 유지하려면 Butane 플러그인을 확인하십시오.

https://github.com/Soares/butane.vim


나는 같은 문제가있어서 플러그인을 만들었습니다. 이 플러그인은 : q 및 기타 명령을 대체 한 다음 창이 닫히지 않도록합니다.

여전히 문제가 발생하면 다음 플러그인을 사용해보십시오. https://github.com/taka-vagyok/prevent-win-closed.vim

참고 URL : https://stackoverflow.com/questions/256204/close-file-without-quitting-vim-application

반응형