Programing

Vim에서 하나의 버퍼를 어떻게 닫습니까?

lottogame 2020. 2. 19. 21:20
반응형

Vim에서 하나의 버퍼를 어떻게 닫습니까?


예를 들어 다음과 같이 Vim에서 여러 파일을 엽니 다.

vim a/*.php

23 개의 파일이 열립니다.

그런 다음 편집하고 다음을 두 번 실행하십시오.

:q

모든 버퍼가 닫힙니다.

Vim에서 하나의 버퍼 만 어떻게 닫을 수 있습니까?


주의 사항 : "w는 쓰지 말고 지우는 것입니다!"

매뉴얼에서 더 많은 것 :

: bd

버퍼 [N] (기본값 : 현재 버퍼)을 언로드하고 버퍼 목록에서 삭제하십시오. 버퍼가 변경된 경우 [!]를 지정하지 않으면 변경이 손실됩니다. 파일은 영향을받지 않습니다.

당신이하고있는 일을 알고 있다면 다음을 사용할 수도 있습니다 : bw

: bw

| : bdelete |와 같지만 실제로 버퍼를 삭제하십시오.


이전 답변으로 이것이 명확하지 않은 경우 :

: bd 는 현재 버퍼를 닫습니다. 버퍼 목록을 원하지 않으면


: buffers를 사용하여 버퍼 ID를 확인하십시오.

다음과 같은 버퍼 목록이 표시됩니다.

1  a.php
2  b.php
3  c.php

버퍼에서 b.php를 제거하려면

:2bw

버퍼에서 모두 제거 / 닫으려면

:1,3bw

: ls 명령의 출력을 찾아보고 번호를 지정하여 버퍼를 삭제 (언로드, 와이프 제거)하는 대신 파일 이름을 사용하는 것이 더 효과적이라는 것을 알았습니다.

예를 들어, 몇 가지 .txt 파일을 열어서 몇 가지 좋은 점에 대한 기억을 새로 고친 후 몇 줄의 텍스트를 복사하여 붙여 넣어 일종의 템플릿으로 사용할 수 있습니다. 등.

:bd txt <Tab>

일치하는 문자열이 파일 이름의 시작 부분에있을 필요는 없습니다.

위의 화면 하단에 'txt'와 일치하는 파일 이름 목록이 표시되고 처음에 입력 한 : bd 명령을 그대로 유지하여 완료 할 수 있습니다.

예를 들면 다음과 같습니다.

doc1.txt doc2.txt
:bd txt 

'txt'비트 위로 백 스페이스를 지우고 삭제하려는 파일 이름을 입력 할 수는 있지만 실제로는 필요하지 않습니다 .Tab 키를 두 번 누르면 Vim이 자동으로 명령을 완료합니다. 첫 경기 :

:bd doc1.txt

이 특정 버퍼를 제거하려면 Enter 키를 누르십시오.

그리고 삭제하려는 버퍼가 두 번째 (세 번째 등) 일치하는 경우 Tab 키를 계속 누르고 있으면 : bd 명령이 일치하는 목록을 순환하도록합니다.

당연히,이 방법은 : b .. : sb. 등과 같은 명령을 통해 주어진 버퍼로 전환하는데 사용될 수 있습니다.

이 방법은 '숨겨진'Vim 옵션이 설정 될 때 특히 유용합니다. 버퍼 목록이 빠르게 커져서 여러 화면을 덮을 수 있고 내가 찾고있는 특정 버퍼를 찾기가 어렵 기 때문입니다.

이 기능을 최대한 활용하려면 다음 Vim 도움말 파일을 읽고 작업 흐름에 가장 적합하도록 Tab 명령 줄 완료 동작을 조정하는 것이 가장 좋습니다.

:help wildmode

위에서 설명한 동작은 다음 설정의 결과로, bash 완료를 에뮬레이트하기 위해 일관성을 위해 선택했습니다.

:set wildmode=list:longest,full

버퍼 번호를 사용하는 것과는 반대로,이 방법의 장점은 일반적으로 주어진 파일 이름의 적어도 일부를 기억하여 먼저 : ls 명령을 통해 해당 번호를 찾아 보지 않고 직접 버퍼를 대상으로 할 수 있다는 것입니다.


사용하다:

  • :ls -버퍼를 나열
  • :bd#n- #N 버퍼 번호 근접 버퍼 (사용 ls을 얻기 위해)

예 :

  • 버퍼 2를 삭제하려면 :

    :bd2
    

다음과 이전을 기능 키에 매핑하여 버퍼를 쉽게 순환시킬 수 있습니다.

map <F2> :bprevious<CR>
map <F3> :bnext<CR>

내 vimrc에서


어때요?

vim -O a a

그렇게하면 왼쪽에서 단일 파일을 편집하고 오른쪽에서 전체 디렉토리를 탐색 할 수 있습니다 ... 해결책이 아니라 생각입니다 ...


[편집 : 이것은 내가 Vim을 충분히 알지 못하는 때부터 어리석은 제안이었습니다. 버퍼 대신 탭을 사용하지 마십시오. 탭은 Vim의 "창 레이아웃"입니다.]

탭 사용으로 전환 하시겠습니까?

vim -p a/*.php 탭에서 동일한 파일을 엽니 다

gtgT스위치 탭 앞뒤로

:q 현재 탭만 닫습니다

:qa 모든 것을 닫고 종료

:tabo 현재 탭을 제외한 모든 것을 닫습니다.


Buffergator 또는 NERDTree와 같은 버퍼 또는 트리 탐색 플러그인을 사용하는 사용자는 현재 버퍼를 파괴하기 전에 이러한 분할을 토글해야합니다. 그렇지 않으면 분할을 wonkyville로 보냅니다.

나는 사용한다:

"" Buffer Navigation                                                                                                                                                                                        
" Toggle left sidebar: NERDTree and BufferGator                                                                                                                                                             
fu! UiToggle()                                                                                                                                                                                              
  let b = bufnr("%")                                                                                                                                                                                        
  execute "NERDTreeToggle | BuffergatorToggle"                                                                                                                                                              
  execute ( bufwinnr(b) . "wincmd w" )                                                                                                                                                                      
  execute ":set number!"                                                                                                                                                                                    
endf                                                                                                                                                                                                        
map  <silent> <Leader>w  <esc>:call UiToggle()<cr>   

NERDTreeToggle이 목록에서 " "는 입력하는 것과 같습니다 :NERDTreeToggle. 이 기능을 수정하여 자신의 구성과 통합 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/1269648/how-do-i-close-a-single-buffer-out-of-many-in-vim



반응형