Vim에서 버퍼, 창 및 탭을 효과적으로 사용

더 많은 Vim 힌트와 기교를 따라하세요!
Vim은 대부분의 편집자들처럼다른 편집기(Notepad++, Atom, VSCode, 네, 그리고 emacs)를 사용한 적이 있습니다.대부분의 편집기는 옵션 카드와 윈도우즈 시스템을 사용합니다.Vim에는 버퍼, 창 및 탭이 있습니다.Vim이 사용하는 추상적인 부분은 다르다.
Vim 초보자라면 버퍼, 창 및 탭이 무엇인지 설명합니다.나는 그것들을 어떻게 효과적으로 사용하는지 보여줄 것이다.
디렉토리:
  • Vim buffers
  • Vim windows
  • Vim tabs
  • Thinking in 3D
  • Using buffers, windows, and tabs efficiently
  • Resources
  • 우리가 시작하기 전에, 만약 당신이 아직 없다면, 당신의 set hidden~/.vimrc을 추가하여 그것을 가져오십시오.이 옵션이 없으면 변경된 버퍼가 숨겨질 때마다 파일을 저장하라는 메시지가 표시됩니다.이 설정에 대한 자세한 내용은 this article:h hidden을 참조하십시오.

    Vim 버퍼


    버퍼는 파일의 메모리 텍스트입니다.
    Vim에서 파일을 열면 새 버퍼가 생성됩니다.터미널에서 다음을 수행합니다.
    vim file1.js
    

    이 작업을 실행하면 Vim은 file1.js의 버퍼를 생성합니다.이 버퍼는 메모리에 저장됩니다.
    Vim을 종료합니다.콘솔로 돌아가서 실행:
    vim file1.js file2.js
    
    Vim은 2개의 버퍼를 생성합니다. 하나는 file1.js, 하나는 file2.js입니다.너는 여전히 file1.js을 보았을 것이다.

    그러나 현재 Vim에는 2개의 버퍼가 있습니다.:ls(또는 :buffers 또는 :files)의 모든 버퍼를 볼 수 있습니다.
    file1.js 버퍼와 file2.js 버퍼 사이에는 몇 가지 방법이 있습니다.
  • :bnext 다음 버퍼로 이동 (:bprev 복귀)
  • :buffer, 이름을 입력합니다.Vim은 <Tab>으로 자동 완성 가능
  • :bufferN, 여기서 N은 버퍼 번호입니다.예를 들어, :buffer2은 버퍼 #2로 이동합니다.
  • <Ctrl-O><Ctrl-i>의 마지막'위치'사이에서 도약한다.이것은 버퍼에 특정된 것이 아니지만, 그것은 유효하다.
  • 이전 파일과 <Ctrl-^> 사이 전환
  • 방법 #2의 경우 버퍼 목록과 버퍼 이름을 결합할 수 있습니다.예를 들어 이 맵을 사용하면 <Leader>b을 누르면 버퍼와 유형 :buffer<space> 명령이 표시됩니다.나머지는 버퍼 번호나 버퍼 이름을 입력하는 것입니다.
    :nnoremap <Leader>b :buffers<CR>:buffer<Space>
    

    버퍼를 열면 버퍼 목록에 유지됩니다.우리는 두 개의 버퍼를 열었습니다: file1.jsfile1.js 버퍼.여전히 같은vim 세션에서 새 파일을 열려면 :e file3.js을 실행할 수 있습니다.만약 우리가 :ls을 검사한다면, 우리는 3개의 버퍼가 있는 것을 볼 수 있을 것이다.
    :bdelete을 입력하여 버퍼를 닫을 수 있습니다.솔직히 말하면, 내가 Vim으로 편집한 몇 년 동안, 나는 버퍼를 거의 삭제할 필요가 없었다.
    내가 보기에 버퍼는 X-Y-Z 좌표계의 Z축과 같다.X축이 오른쪽, Y축이 위쪽, Z축이 화면을 향해 있다고 상상해 보세요.버퍼 파일은 Z 축에 정렬됩니다.:bnext/:bprev을 사용하여 파일을 한 번에 이동할 수 있는 Z축입니다.:buffer <filename>을 사용하여 Z축의 좌표로 이동할 수 있습니다.가지고 있는 파일 버퍼 수는 Z축 길이입니다.Vim은 Z축을 따라 거의 마찰 없이 이동합니다.

    Vim 창


    창은 버퍼의 뷰포트입니다.Vim에서 여러 창을 열 수 있습니다.
    콘솔에서 다음 명령을 다시 실행합니다.
    vim file1.js
    

    화면에 보이는 것은 버퍼 file1.js을 표시하는 창입니다.창문은 바로 너희들이 본 것이다.
    Vim을 종료합니다.콘솔에서 실행
    vim file1.js file2.js
    

    우리는 이미 여러 번 만났다.이번에는 버퍼가 두 개 있고 창이 하나 있습니다.
    vim을 종료하지 마십시오.실행:
    :split file2.js
    

    너는 창문 두 개를 보고 있다.아래쪽 창에는 텍스트가 표시되지 않지만 아래쪽 창에는 file1.js이 표시됩니다.위쪽 창은 버퍼 file2.js의 뷰포트이고 아래쪽 창은 버퍼 file2.js의 뷰포트입니다.
    이vim 세션을 계속하십시오. - 종료하지 마십시오.실행:
    :vsplit file3.js
    

    너는 지금 세 개의 창문을 보았다.왼쪽 위 창에 file1.js 버퍼가 표시됩니다.오른쪽 위 창에 file3.js 버퍼가 표시됩니다.아래쪽 창에는 file2.js이 표시됩니다.
    vim 버퍼와 윈도우즈 사이의 차이를 보기 시작했으면 합니다.만약 네가 없다면, 걱정하지 말고 천천히 해라.내가 이것을 공부할 때, 나는 그것을 이해하는 데 한동안 걸렸다.
    버퍼를 여러 창에 표시할 수 있습니다.현재, 나는 여전히 왼쪽 상단의 창에서 file1.js 버퍼를 보고 있다.다음을 입력합니다.
    :ls
    :buffer 2
    

    현재 왼쪽 상단과 오른쪽 상단 창에는 file3.js 버퍼가 표시됩니다. (아래 창에는 file2.js 버퍼가 계속 표시됩니다.만약 내가 왼쪽 상단에서 타자를 치기 시작한다면, 너는 왼쪽 상단과 오른쪽 상단의 창이 내가 타자를 할 때 모두 변화하는 것을 볼 수 있을 것이다.

    현재 창을 닫으려면 file1.js을 실행할 수 있습니다.또는 <Ctrl-W>+C을 실행할 수 있습니다.창을 닫으면 버퍼가 열립니다(:quit 확인).
    창의 유용한 바로 가기:
    <Ctrl-W>+v       # Opens a new vertical split
    <Ctrl-W>+s       # Opens a new horizontal split
    <Ctrl-W>+c       # Closes a window
    <Ctrl-W>+o       # Makes current window the only one on screen and closes other windows
    <Ctrl-W>+h/j/k/l # Moves the cursor to left/bottom/top/right
    
    몇 가지 유용한 Ex 명령:
    :vsplit <filename>     # Split window vertically
    :split <filename>      # Split window horiontally
    :new [filename]        # Create new window
    
    자세한 내용은 :ls을 참조하십시오.

    Vim 카설


    탭 페이지는 창의 집합입니다.Vim에서 탭의 의미는 대부분의 텍스트 편집기와 다릅니다.대부분의 텍스트 편집기(및 현대 브라우저)에서 탭은 일반적으로 열린 파일/페이지를 의미합니다.우리가 그것을 닫으면 파일/페이지가 사라집니다.
    Vim에서 탭은 열린 파일을 표시하지 않습니다.vim이 열린 파일을 버퍼에 저장하는 것을 방금 알았습니다.vim의 옵션을 닫았을 때, 이 옵션의 파일은 버퍼에 저장됩니다.탭에 하나 이상의 창이 있을 수 있습니다.레이아웃이나 템플릿 같은 옵션을 생각해 보세요.
    한번 해볼게요.콘솔에서:
    vim file1.js
    
    새 탭에서 :h window을 엽니다.
    :tabnew file2.js
    

    추가 탭 탐색:
    :tabnew file.txt # open file.txt in a new tab
    :tabclose        # Close current tab
    :tabnext         # Go to next tab
    :tabprevious     # Go to previous tab
    :tablast         # Go to last tab
    :tabfirst        # Go to first tab
    
    일반 모드에서 file2.js을 실행하여 다음 탭 페이지로 이동할 수도 있습니다.
    여러 탭을 사용하여 vim을 시작하려면 콘솔에서 다음을 수행할 수 있습니다.
    vim -p file1.js file2.js file3.js
    

    3차원 사유


    Vim의 창 사이를 이동하는 것은 피리칼 좌표계에서 X-Y 축을 따라 이동하는 것과 같습니다.우리는 2차원에서 이동한다.우리는 gt으로 위쪽, 오른쪽, 아래쪽, 왼쪽으로 이동할 수 있다.
    앞에서 말했듯이 Vim 버퍼는 Z축과 유사합니다.각 창에서 버퍼 탐색을 사용하여 Z축을 따라 이동할 수 있습니다.창 이동과 버퍼 영역을 결합할 때, 우리는 3차원 공간에서 이동한다.

    모든 창은 우리의 모든 버퍼를 볼 수 있습니다.

    이러한 X-Y-Z 이동은 Vim의 창 및 버퍼 기능 때문에 가능합니다.

    버퍼, 창 및 탭 유효 사용


    버퍼, 창, 옵션 카드를 효과적으로 사용하는 방법을 배우는 것은 그것들의 디자인 용도를 이해하는 것이다.
    버퍼를 사용하여 현재 작업을 완료하기 위해 필요한 모든 파일을 엽니다.그것은 아마도 8개나 80개의 버퍼 파일일 것이다.여러 개의 버퍼를 열면 공간 분포에 영향을 주지 않습니다.Vim은 마찰이 없는 스왑 파일 버퍼를 설계했습니다.그것을 사용하여 버퍼 사이를 비행하다.
    여러 개의 버퍼를 보려면 윈도우즈를 사용하십시오.예를 들어 파일을 확산하거나 코드를 인용하거나 코드 흐름을 따를 때.
    다른 항목을 처리할 때 탭을 사용합니다.예를 들어 서버 코드에 사용되는 옵션 카드와 클라이언트 코드에 사용되는 옵션 카드.
    대부분의 코드 편집기에서 워크플로에는 창 (예: 화면 분할) 과 탭 등 두 가지 추상적인 작업이 있습니다.Vim에는 버퍼, 창 및 탭 세 개가 있습니다.내가 전업으로 Vim을 사용하기 시작했을 때, 그것은 중요한 패러다임 전환이 필요하다.나의 개인적인 건의는 천천히 최초의 설계 방식에 따라 그것을 사용하는 것이다.만약 네가 시도해 본 후에도 그것이 너에게 적합하지 않다고 생각한다면, 너에게 가장 적합한 과정을 사용해라.
    또한 ctrlp.vim 또는 fzf.vim 같은 플러그인을 통해 워크플로우를 강화할 수 있습니다.
    결국 너에게 유용한 일을 해라.단지 어떤 기능이 X를 위해 설계되었다고 해서 모든 사람이 X를 해야 한다는 것은 아니다. 마음대로 시도하여 당신의 가장 좋은 업무 절차를 찾으십시오.
    이곳은 멈추기 좋은 곳이다.읽어주셔서 감사합니다.즐거운 인코딩!

    리소스

  • <Ctrl-W>+h/j/k/l

  • Vim close window without closing buffer
    Vim 101: Set Hidden
  • Seven habits of effective text editing
  • Buffers, windows, and tabs
  • Why do Vim experts prefer buffers over tabs?
  • Vim: Buffers, Tabs, Windows & Modes
  • Cheatsheet for Buffers, Windows and Tabs of Vim
  • 좋은 웹페이지 즐겨찾기