파일 열기/닫기

MySprtlty·2022년 7월 3일
0

vim

목록 보기
13/21
post-thumbnail

🏷️파일 열기

📌기초

  • vim 실행 중 다른 파일 열기

    • 버퍼 관련 명령어는 다음과 같다.

      명령어설명
      :e {file}파일을 편집용으로 연다. (edit)
      CTRL-6이전 파일을 연다.
      vim {file1} {file2} {file3} {file}인자로 준 파일들을 한꺼번에 연다.
      :[#]n다음 파일로 이동한다. (#만큼 반복)
      :[#]N반대 방향으로 이동한다.
  • 실제로는 동시에 열린 것이 아니다.

  • :n을 누르면 현재 파일을 닫고 다음 파일을 여는 것이다.

  • 따라서 변경된 내용을 저장하지 않으면 에러가 발생한다.

  • 🖇️cf) vim {file1} {file2} {file3}
    • 처음 위명령으로 파일들을 한꺼번에 열었을 때, 이전에 열었던 파일이 존재하지 않는다.
    • 따라서 CTRL-6명령을 바로 사용할 순 없다.
    • :n을 한 번 사용하면 사용할 수 있게 된다.

📌고급

Buffer

  • vim에서 파일명이 있든 없든(파일과 연결된 상태든 아니든) 편집중인 문서를 뜻한다.
  • 버퍼 관련 명령어들은 다음과 같다.
    명령어설명
    :buffers 또는 :ls버퍼 목록을 출력한다.
    :n {pattern}지정된 pattern으로 파일을 검색하여 buffer 목록에 추가한다.
    [#]CTRL-6버퍼 목록에서 #번째 파일을 연다.
    :0f현재 버퍼를 목록에서 제거한다.
    :r {file} (read)파일을 끼워 넣는다. 파일명 대신 buffer 번호를 입력해도 된다.
  • Vim은 종료하기 전까지 한 번이라도 열었던 파일의 목록을 모두 유지하고 있다.
  • buffer 목록에 표시되는 symbol의 의미는 다음과 같다.
    심볼설명
    %현재 편집중인 버퍼
    #바로 이전에 열었던 버퍼 CTRL-6을 누르면 #파일이 열린다.
    a현재 화면에 보이는 버퍼 (active)창 분할 기능을 쓰는 경우 여러 파일에 a가 나타날 수 있다.
    +변경된 부분이 있는 버퍼

본문에 등장한 파일경로 인식하여 열기

  • 명령어는 다음과 같다.

    명령어설명
    gf커서 위치의 파일명을 인식해서 열어준다. (goto file)
    :[#]CTRL-W f커서 위치의 파일명을 수평 분할된 창에 열어준다.
    :[#]CTRL-W v + gf커서 위치의 파일명을 수직 분할된 창에 열어준다.
    CTRL-W gf커서 위치의 파일명을 탭에 열어준다.
  • Unix 계열 vim에서는 환경변수 path에 시스템 헤더 디렉터리가 기본으로 포함되어 있기에 C언어 헤더를 gf로 열 수 있다.


🏷️파일 저장과 닫기

  • 다음은 파일을 저장하거나 닫는 다양한 명령어다.

    명령어설명
    :w {file}파일을 저장한다. (write)
    :sav {file}현재 파일을 다른 이름으로 저장한다. (save as)
    :up변경 사항이 있는 경우에만 저장한다. (update)
    :xVim을 종료하면서 변경 사항이 있는 경우에만 저장한다.
    ZZ:x를 일반모드에서 사용한다.
    :qa모든 창을 닫는다. (quit all)
  • :xZZ가 불필요한 디스크 입출력을 발생시키지 않으므로 효율적이다.

  • 앞으로는 :wq대신 :x를 사용하도록 권장한다.


🏷️창 분할

  • 창을 수평/수직 분할하여 동시에 여러 파일을 띄울 수 있다.
  • 창 분할 명령어는 CTRL-W로 시작하는 공통점이 있기에 외우기 쉽다.

📌창 분할 명령어

명령어설명
:[#]sp {file}파일을 수평 분할한다. (split)
:[#]CTRL-W s위와 동일
:[#]vs {file} 파일을 수직분할한다. (vertical split)
:[#]CTRL-W v위와 동일
:[#]new새로운 창으로 수평 분할한다.
:[#]CTRL-W n위와 동일
:[#]vnew새로운 창으로 수직 분할한다. (vertical new)
:q현재 창을 닫는다. (quit)
:qa열려있는 모든 창을 닫는다 (quit all)
vim -o {file1} {file2}두 파일을 수평 분할된 창으로 연다.
vim -O {file1} {file2}두 파일을 수직 분할된 창으로 연다.
  • #에 창의 크기를 지정할 수 있다.
  • #을 생략하면 균등하게 분할된다.
  • :q는 원래 현재 창을 종료하는 명령어인데, 그 동안은 창을 하나만 사용해서 vim이 종료된 것이다.

📌창 사이 이동 명령어

명령어설명
CTRL-W방향키(h, j, k, l)지정한 방향으로 창을 이동한다.
CTRL-W w시계 방향으로 이동한다.
CTRL-W r창 위치를 변경한다.
  • CTRL-W w 명령어 하나만 외우면 충분하다.
  • 어차피 창을 많이 띄우면 불편하기에 방향을 따질 정도로 창을 많이 띄우지 않기 때문이다.

📌창 크기 조절하기

명령어설명
CTRL-W =모든 창의 크기를 동일하게 조절한다.
CTRL-W [#]+# 크기만큼 현재 창의 크기를 키운다.
CTRL-W [#]-# 크기만큼 현재 창의 크기를 줄인다.
  • #이 생략됐을 때, default값은 1이다.

🏷️탭 페이지

  • vim 7 이후 버전부터 추가된 기능이다.

  • 명령어는 다음과 같다.

    명령어설명
    :[#]tabe {file} 탭으로 연다. (tabedit)
    :[#]tabn다음 탭으로 이동한다. (tabnext) (#에 반복횟수 지정)
    CTRL-PageDown위와 동일
    :[#]tabp이전 탭으로 이동한다. (tabprevious)
    CTRL-PageUp위와 동일
    :tabm [#]#번째 탭으로 현재 탭을 이동시킨다. (tabmove) (탭은 0부터 시작)
    :[#]tabnew {file}#번째 위치에 비어있는 탭을 만든다.
    :[#]tabc#번째 탭을 닫는다. (tabclose)
    vim -p file1 file2두 파일을 탭으로 니눠 연다.

0개의 댓글