[vim] Vim에서 단일 버퍼를 여러 개로 닫으려면 어떻게해야합니까?
예를 들어 다음과 같이 Vim에서 여러 파일을 엽니 다.
vim a/*.php
23 개의 파일이 열립니다.
그런 다음 편집하고 다음을 두 번 실행하십시오.
:q
모든 버퍼가 닫힙니다.
Vim에서 하나의 버퍼 만 어떻게 닫을 수 있습니까?
답변
주의 사항 : “bw의 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
-버퍼를 나열:bd#n
– #N 버퍼 번호 근접 버퍼 (사용ls
을 얻기 위해)
예 :
-
버퍼 2를 삭제하려면 :
:bd2
답변
다음과 이전을 기능 키에 매핑하여 버퍼를 쉽게 순환시킬 수 있습니다.
map <F2> :bprevious<CR>
map <F3> :bnext<CR>
내 vimrc에서
답변
어때요?
vim -O a a
그렇게하면 왼쪽에서 단일 파일을 편집하고 오른쪽에서 전체 디렉토리를 탐색 할 수 있습니다 … 해결책이 아니라 생각입니다 …