Vim : 분할 창을 잃지 않고 버퍼 삭제


149

버퍼가 삭제되면 ( "bd [elete]"명령) 버퍼를 삭제할뿐만 아니라 버퍼가 있던 분할 창도 제거합니다.

버퍼를 삭제 / 언로드하고 창 분할을 유지하는 방법이 있습니까?



이것은 나를 위해 잘 작동했습니다.
Rumple Stiltskin

[이것은 DeleteCurBufferNotCloseWindow()잘 작동하고 읽을 수 있습니다] ( stackoverflow.com/a/44950143/3625404 ).
qeatzy

답변:



327

bp|bd # 할 것입니다.


세부 정보 : bp( "buffer previous")는 현재 창에서 다른 버퍼로 이동하고 ( bn작동 할 수도 있음) bd #( "buffer delete" "alternate file") 방금 이동 한 버퍼를 삭제합니다. 참조 : help bp, help bd, help alternate-file.


71
당신은 내가 이것을 실행하기 위해 전체 스크립트가 필요하지 않은 매우 간단한 이것과 같은 것을 찾고 얼마나 오래 있는지 알지 못합니다. 내 VIMRC에서 CTRL + C에 대해 다음과 같이 매핑했습니다.nnoremap <C-c> :bp\|bd #<CR>
Cloud

11
을 사용하여 다시 매핑하려고하는데을 (를 nmap <silent> <leader>d :bp|bd #<CR>) 받고 E94: No matching buffer for #<CR>있습니다.
Fábio Perez

22
의 앞에 백 슬래시를 넣어 |(예 :bp\|bd)
진흙

4
나는 이것을 위해 플러그인을 설치할 필요가 없다는 것을 알고 있었다. 감사!
Akash Agrawal

2
b#|bd #다음 / 이전 대신 마지막으로 사용한 버퍼로 전환합니다. 그러나가 있으면 숨겨진 버퍼로 이동 set hidden하므로 피하기 위해보다 지능적인 BD 기능을 만들었습니다.
c24w

15

창 분할을 건드리지 않고 다음과 같이 작업 .vimrc을 수행 할 수 있습니다 .Bdbd

command Bd bp\|bd \#

나는 이것이 Mud가 대답 한 것에 대한 유용한 보완 물이라는 것을 알았습니다 .


.vimrc에 정확히 있습니다. :)
Mud

버퍼 언로드, 삭제 및 삭제를위한 3 가지 명령을 추가 할 수 있습니다. BUN bp \ | bun \ # 명령! BD bp \ | bd \ # 명령! BW bp \ | bw \ # 이것은 bufkill이 제공하는 것과 동일하지만 700 + 라인 플러그인 대신 vimrc에 3 라인이 있습니다!
fievel

3
나를 위해 그것은 .vimrc에서만 작동했습니다 command! Bd bp|bd #. ``와 함께 위의 명령은 버퍼를 버퍼 목록에 보관했습니다.
mljrg


3

@Mud와 비슷한 작업을 수행하지만 #버퍼 목록의 이전 버퍼 대신 이전보기 버퍼로 전환 합니다. 내 바인딩 키는 다음과 같습니다 .vimrc.

nnoremap <silent> <leader>q :lclose<bar>b#<bar>bd #<CR>

위치 창 닫기 (있는 경우) 이전보기 버퍼로 전환 한 다음 마지막 전환 된 버퍼를 닫습니다.


1

나의 선택은

:sb # | bd #
:sb 1 | bd #
: <1. Recall Buffer> | <2. Delete Buffer>

그렇게 생각해! /// <1. 리콜 버퍼> | <2. 버퍼 삭제>

:vert sb 2 | bd #
:vert sb <tab key~completed file(buffer)name> | bd #

왜?! 3 (+ 1) 개의 키워드를 기억하기 쉽습니다!

  1. sb split_buffer
  2. bd 삭제 버퍼 ▶ 간단한 2 키워드
  3. # 또는 버퍼 수
  4. vert ▶ short_form of vertical (split_buffer 또는 기타)

그것은 많은 다른 많은 경우에 쉽고 매우 유용합니다!

좋은 하루 되세요! :)


0

나는 사용했다 :

:bp<bar>sp<bar>bn<bar>bd<CR>

그러나 창문이 닫히는 특정한 경우를 발견했습니다. 또한 다음 또는 이전 버퍼가 분할에 표시되지 않을 수도 있습니다.

이제 나는 이것을한다 :

  • 작업하려는 버퍼로 전환
  • 대체 버퍼 삭제

nnoremap <leader>d :bd#<CR>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.