VIM에서 수직 분할로 버퍼 열기


176

VIM에서 파일을 편집 할 때 기존 버퍼를 열어야하는 경우 (예 : 버퍼 목록 :buffers:) 어떻게 수직 분할로 열 수 있습니까?

나는 이미 다음과 같은 일반 분할로 열 수 있음을 알고 있습니다 .

:sbuffer N

N원하는 버퍼 번호는 어디에 있지만 위의 N버퍼는 세로가 아니라 가로로 열립니다 .

또한 열린 후 창 배치를 변경하고 다음과 같이 세로 분할을 할 수 있음을 알고 있습니다.

Ctrl-W H
Ctrl-W L

창을 오른쪽 또는 왼쪽으로 세로로 나눕니다.

그것이 있다면 존재 sbuffer해야 vsbuffer하지만 존재하지 않는 것 같습니다 (알지 못합니다)

또한이 질문을 해결하기 위해 플러그인을 찾고 있지 않습니다. 나는 당신이 이것을 할 수있는 풍부한 플러그인에 대해 알고 있습니다.

이미 존재하는 것을 놓치고있을 것입니다.

편집 : 최고의 협업 정신으로 누군가 다른 사람 이이 문제를 우연히 발견하고 플러그인을 설치하지 않으려는 경우 매핑으로 간단한 기능을 만들었습니다.

함수:

" Vertical Split Buffer Function
function VerticalSplitBuffer(buffer)
    execute "vert belowright sb" a:buffer 
endfunction

매핑 :

" Vertical Split Buffer Mapping
command -nargs=1 Vbuffer call VerticalSplitBuffer(<f-args>)

이것은 오른쪽 분할에서 버퍼를 여는 작업을 수행하므로 버퍼 1의 경우 다음과 같이 호출합니다.

:Vbuffer 1

답변:


206

시험:

:vert sb N

왼쪽 세로 분할이 열립니다 (일부 옵션을 수정하지 않은 경우 기본적으로).

반면에 오른쪽으로 분할을 열려면 :

:vert belowright sb N

5
하지 않는 것이 다소 이상하게 보이지 vsbuffer N않습니까? 성가신. 당신의 대답은 그것을 못 박습니다. 감사!
alfredodeza

13
나는 항상 vsbuffer너무 있어야한다고 생각하고 종종 Ctrl-w T새 탭에서 버퍼를 여는 것을 잊어 버립니다 (또는 현재 활성화되어 있거나 보이지 않는 버퍼로 버퍼를 만들고 싶습니다). 그래서 대안으로, 당신은 내가 지트의 유효한 대답 @보다 기억하기 쉽게 찾을 이러한 경우 다음 중 하나에 대한 막대를 사용할 수 있습니다 :vsp | b N:tabe | b N.
ches

이 명령 N을 자동 완성 할 수 있기를 바랍니다 (다른 답변의 명령으로는 불가능한 것 같습니다). 그럼에도 불구하고 둘 다 공감했다.
David Rivers

124

:vsp | b1

1은 일부 버퍼 번호입니다. buffers모든 버퍼를 나열하는 데 사용 합니다.

관심이 있다면 분할에 대한 추가 정보가 있습니다. 링크


9
당신은 또한 사용할 수있는 :ls바로 가기로 보인다, :buffers.
dskecse

3
당신은 또한 할 수 있습니다:vsp | b <buffer name>
Kenny Bambridge

4
@KennyBambridge 더 나은-버퍼 이름의 일부 (대소 문자 구분) 만 입력 한 다음 탭을 눌러 필터링 된 목록을 순환해야합니다
icc97

@Jerinaw가 제공 하는 링크 는 훌륭 하지만 해당 페이지의 용어가 잘못 오도되므로 해당 페이지의 주석을 읽고 명확하게 설명해야합니다.
NeilG

5

.vimrc에 다음을 추가하여 고통을 완화시킬 수 있습니다

cabbrev vb vert sb

이제 다음과 같은 방법으로 사용할 수 있습니다.

:vb <buffer>

확장 버전은 버퍼 이름 자동 완성 기능도 제공합니다. cabbrev도 몰랐습니다. 감사합니다.
kidpixo

2

:ls현재 버퍼와 명령을 결합 하여 원하는 버퍼를 열 수 있습니다.

  1. 현재 창 : :b <N/bufname>
  2. 수직 분할 : :vsp | b <N/bufname>
  3. 수평 분할 : :sp | b <N/bufname>

이를 위해 다음 매핑을 내 매핑에 추가했습니다 ~/.vimrc(매핑 순서는 위의 원하는 창 목록을 나타냅니다)

 nnoremap <leader>b :ls<cr>:b<space>
 nnoremap <leader>v :ls<cr>:vsp<space>\|<space>b<space>
 nnoremap <leader>s :ls<cr>:sp<space>\|<space>b<space>

이를 바탕으로, 히트하자마자 버퍼 목록을 볼 수 있습니다

  1. <leader>b
  2. <leader>v
  3. <leader>s

원하는 버퍼 번호를 입력하십시오 N. 그러면 원하는 창에서 버퍼가 열립니다. 물론 버퍼 이름의 일부를 계속 사용할 수 있습니다 bufname.

나는 매핑 <leader>,기반으로

let mapleader = ","

일부 사람들 (예 : 나)의 경우 MiniBufExpl과 같은 플러그인을 대체하여 화면 공간을 절약 할 수도 있습니다.


0

Neovim을 다음과 같이 사용할 수 있습니다.

autocmd FileType python nmap <F5> :rightbelow vertical split <bar> :term python %<cr>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.