나는 보통 몇 개의 창을 열고 일부 버퍼를 열어 둡니다. 버퍼 탐색에서 내 MO는 :bn
및 바로 가기를 사용하는 것이므로 :bp
불필요한 버퍼를 닫아 버퍼 서핑을 방해하지 않도록하고 싶습니다.
그러나 통증이 발행됩니다 :bd
및 :bw
경우에,뿐만 아니라 창을 닫는 결과 나는 여러 사람이 열 수 있습니다. 버퍼를 닫고 삭제하는 방법은 무엇입니까?
@peth의 답변에서 영감을 얻은 솔루션
:command! BW :bn|:bd#
간단하다. 하나의 버퍼 열기만으로는 제대로 작동하지 않습니다 (파일을 여는 방식에 따라 다른 동작이 발생 함). 큰 문제는 아닙니다. 🙂
답변
그것은 고통 스러울 수 있습니다.이 질문은 #vim
(Freenode)에서도 계속 제기 됩니다.
어떤 사람들은 :b partial<Tab>
대신 버퍼를 삭제하고 대신 전환하지 않는 것이 좋습니다 :bn
.하지만 작동하지 않습니다.
내가 아는 가장 좋은 방법은 다른 버퍼로 전환 한 다음 :bd#
물론 매핑 할 수 있습니다.
Vim wikia 에서 창 을 닫지 않고 버퍼 삭제를 참조하십시오 .
답변
나는 이것을 조금 엉망으로 만들었고 마침내 :
:bp | sp | bn | bd
키 매핑을위한 복사 / 붙여 넣기 버전은 다음과 같습니다.
:bp<bar>sp<bar>bn<bar>bd<CR>
또는 .vimrc에 대한 명령 (: Bd로 호출) :
명령 Bd bp | sp | 십억 | bd
나는 그것을 공정하게 테스트했으며 다양한 조건에서 일관되게 작동합니다. 마지막 버퍼에서 사용되면 새로운 빈 버퍼가 남습니다.
답변
윈도우는 버퍼에 대한 뷰포트입니다. (참조는 :help window
.) 당신은 관련 버퍼없이 창을 가질 수 없습니다. :enew
그러나 현재 창 내용을 빈 버퍼로 바꾸는 등의 명령을 사용할 수 있습니다 .
답변
bufkill.vim의 플러그인은 잘 작동합니다. 추가 기능 및 기능을 위해 vim-command-w 와 함께 사용하고 싶습니다 (마지막 버퍼 인 경우 분할을 닫거나 마지막 버퍼 / 분할 인 경우 vim을 닫는 것처럼).
답변
또 다른 해결책은 다음과 같습니다.
map <C-W>o <C-W>n<C-W><C-W><C-W>c
Ctrl + W를 입력 한 다음 o를 입력하면 조용히 새 창이 생성되고 이전 창이 닫힙니다. 커서가 새 창에 남아 있습니다. 몇 가지 긍정적 인 효과가 있습니다.
- 원래 분할 치수가 유지됩니다.
- 빈 버퍼가 새로운 스플릿에로드됩니다.
- 원래 버퍼는 여전히로드되어 있습니다.
- Ctrl + o를 누르면 커서를 이전 버퍼의 원래 위치로 이동해야합니다.
- 하나의 창이로드 된 경우에도 잘 작동합니다.
답변
문제는 대부분의 사람들이 vim 버퍼와 창을 자신이 아닌 것으로 기대한다는 것입니다.
사람들은 vim 창을 자체 버퍼 목록이있는 독립 실행 형 프로세스로 생각하지만 슬프게도 그렇지 않습니다. vim 창은 버퍼의 뷰포트 일뿐입니다.
따라서 문제 또는 다른 창이 동일한 버퍼 목록을 공유하는 문제와 같은 많은 문제가 발생하므로 창 A에서 버퍼 1을 편집 할 수 없으며 버퍼 목록에서 버퍼 1을 버퍼 B에서 무시하도록하십시오.
내 솔루션은 vim의 두 인스턴스를 여는 것이므로 원하는 vim 창을 가질 수 있습니다. WM 타일링에 가장 효과적입니다.
답변
일반적으로 버퍼에있는 동안 메뉴를 엽니 다. 왼쪽 창에서 메뉴가 열리고 커서가 활성화됩니다. 따라서 활성 버퍼로 다시 전환하고 버퍼를 삭제합니다.
그 후 메뉴에서 다른 파일을 열 수 있습니다.
내 단계는 다음과 같습니다
:Vex
ctrl + w + w
:bd