Skip to content

Instantly share code, notes, and snippets.

@junhg0211
Created May 21, 2023 13:16
Show Gist options
  • Save junhg0211/9c2e830b55e16af1f892429618488ec5 to your computer and use it in GitHub Desktop.
Save junhg0211/9c2e830b55e16af1f892429618488ec5 to your computer and use it in GitHub Desktop.

INSERT 모드

  • i를 입력하면 글씨를 입력할 수 있다.
  • I를 입력하면 커서가 현재 줄의 맨 앞으로 이동하고 글씨를 입력할 수 있다.
  • a를 입력하면 글씨를 커서 오른쪽에 입력할 수 있다.
  • A를 입력하면 커서가 현재 줄의 맨 뒤로 이동하고 글씨를 입력할 수 있다.
  • o를 입력하면 커서가 현재 줄 아래에 새로운 줄을 추가하고 글씨를 입력할 수 있다.
  • O를 입력하면 커서가 현재 줄 위에 새로운 줄을 추가하고 글씨를 입력할 수 있다.
  • INSERT 모드에서 ESC를 누르면 NORMAL 모드로 돌아간다.

이동

  • h, j, k, l로 각각 왼쪽, 아래, 위, 오른쪽으로 움직일 수 있다.

  • 0, ^를 누르면 각각 현재 줄의 맨 앞, 첫 번째 글자로 커서를 이동시킨다.

  • $를 누르면 현재 줄의 맨 뒤로 커서를 이동시킨다.

  • w를 누르면 다음 단어의 첫 글자로 커서를 이동시킨다.

  • W를 누르면 다음 단어의 첫 글자로 커서를 이동시킨다.

    • 단, 단어는 공백으로 구분된다.
  • b를 누르면 이전 단어의 첫 글자로 커서를 이동시킨다.

  • B를 누르면 이전 단어의 첫 글자로 커서를 이동시킨다.

    • 단, 단어는 공백으로 구분된다.
  • e를 누르면 다음 단어의 마지막 글자로 커서를 이동시킨다.

  • E를 누르면 다음 단어의 마지막 글자로 커서를 이동시킨다.

    • 단, 단어는 공백으로 구분된다.
  • f를 누르고 원하는 글자를 입력하면 커서가 해당 글자가 있는 곳으로 이동한다.

    • 대소문자를 구분한다.
  • F를 누르고 원하는 글자를 입력하면 커서가 이전에 있는 문자들 중에서 해당 글자가 있는 곳으로 이동한다.

    • 대소문자를 구분한다.
  • t를 누르고 원하는 글자를 입력하면 커서가 해당 글자가 있는 곳의 바로 앞으로 이동한다.

    • 대소문자를 구분한다.
  • T를 누르고 원하는 글자를 입력하면 커서가 이전에 있는 문자들 중에서 해당 글자가 있는 곳의 바로 앞으로 이동한다.

    • 대소문자를 구분한다.
def main():
    print('Hello, world!')
  • <C-e>는 현재 화면을 한 줄 아래로 스크롤한다.

  • <C-y>는 현재 화면을 한 줄 위로 스크롤한다.

  • zz는 현재 줄을 화면의 중앙으로 스크롤한다.

  • <C-u>는 현재 화면의 절반 위로 스크롤한다.

  • <C-d>는 현재 화면의 절반 아래로 스크롤한다.

  • gg는 파일의 맨 처음 행으로 커서를 이동시킨다.

  • G는 파일의 맨 마지막 행으로 커서를 이동시킨다.

  • 수를 입력하고 gg를 입력하면 해당 수의 행으로 커서를 이동시킨다.

  • 수를 입력하고 G를 입력하면 해당 수의 행으로 커서를 이동시킨다.

  • 수를 입력하고 %를 입력하면 해당 백분율에 해당하는 행으로 커서를 이동시킨다.

삭제와 대치

  • x를 누르면 커서가 위치한 글자를 삭제한다.

  • d를 누르고 이동할 위치를 입력하면 그 부분까지를 삭제할 수 있다.

def main():
    print('Hello, world!')
  • dd를 누르면 현재 행을 삭제한다.
  • d를 누르고 나서 이동 명령어를 사용할 때에 숫자와 결합해서 사용할 수 있다.
  • di를 누르고 나서 단위를 입력하면 그 단위 안에 있는 코드를 삭제할 수 있다.
    • '를 입력하면 문자열 안에 있는 내용을 삭제할 수 있다.
    • "를 입력하면 문자열 안에 있는 내용을 삭제할 수 있다.
    • ```를 입력하면 문자열 안에 있는 내용을 삭제할 수 있다.
    • ()를 입력하면 괄호 안에 있는 내용을 삭제할 수 있다.
    • {}를 입력하면 중괄호 안에 있는 내용을 삭제할 수 있다.
    • []를 입력하면 대괄호 안에 있는 내용을 삭제할 수 있다.
    • <>를 입력하면 대괄호 안에 있는 내용을 삭제할 수 있다.
    • t를 입력하면 HTML 태그 안에 있는 내용을 삭제할 수 있다.
#include <stdio.h>

int main()
{
    for (int i = 0; i < 10; i++)
    {
        printf("%d ", i);
    }

    printf("Hello, world!\n");
    return 0;
}
<p>Hello, world!</p>
  • d 대신에 c를 입력하면 지정한 내용을 삭제하고 나서 INSERT 모드로 전환된다.

  • s를 누르면 커서가 위치한 글자를 삭제하고 나서 INSERT 모드로 전환된다.

  • r을 누르고 나서 원하는 글자를 입력하면 커서가 위치한 글자를 해당 글자로 대치한다.

  • R을 누르면 REPLACE 모드로 진입한다.

  • u를 누르면 이전에 했던 작업을 취소한다.

  • <C-r>을 누르면 이전에 취소한 작업을 다시 실행한다.

VISUAL 모드

  • v를 누르면 VISUAL 모드로 진입한다.
  • V를 누르면 VISUAL LINE 모드로 진입한다.
  • <C-v>를 누르면 VISUAL BLOCK 모드로 진입한다.

비주얼 모드에서 여러가지 다른 명령어와 결합해서 사용할 수 있는데, 가장 자주 사용되는 것이 복사와 붙여넣기이다.

복사와 붙여넣기

  • y를 누르고 이동할 위치를 입력하면 그 부분까지를 복사할 수 있다.

  • p를 누르면 커서가 위치한 다음 부분에 복사한 내용을 붙여넣을 수 있다.

  • P를 누르면 커서가 위치한 이전 부분에 복사한 내용을 붙여넣을 수 있다.

  • (참고) vim에는 지우기 기능이 없어요

  • d, x, c, s는 모두 잘라내기 기능이어서, p 명령어로 붙여넣기를 할 수 있다.

  • 클립보드의 지정은 "를 입력하고 그 다음에 한 글자의 문자를 입력해서 사용할 수 있다.

  • d, x, c, s, y, p는 모두 기본적으로 *라고 하는 이름의 클립보드에서 동작한다.

  • 클립보드 이름을 +라고 지정하면 시스템 클립보드에서 동작한다.

  • (참고) 파일의 모든 내용을 복사하기 위해서는 ggVG"+y를 입력하면 된다.

    • 또는 gg"+yG

매크로

  • q를 누르고 나서 원하는 글자를 입력하면 매크로를 녹화할 수 있다.
    • 그 글자의 이름으로 매크로를 녹화하는 것이 된다.
  • @를 누르고 나서 원하는 글자를 입력하면 매크로를 실행할 수 있다.
    • 그 글자의 이름으로 매크로를 실행하는 것이 된다.

창 분할

  • <C-w>를 누르고 나서
    • s를 누르면 현재 창을 가로로 분할한다.
    • v를 누르면 현재 창을 세로로 분할한다.
    • h, j, k, l을 누르면 분할된 창을 이동할 수 있다.
    • H, J, K, L을 누르면 분할된 창을 해당 방향으로 이동할 수 있다.
  • :e <filename>을 입력하면 해당 파일을 분할된 창에서 열 수 있다.
  • :q를 입력하면 현재 작업중인 분할 창을 끈다.

  • :tabnew [filename]을 입력하면 새로운 탭을 열 수 있다.
  • g를 누르고 나서
    • t를 누르면 다음 탭으로 이동할 수 있다.
    • T를 누르면 이전 탭으로 이동할 수 있다.
  • 수를 입력하고 gt를 하면 해당 번호의 탭으로 이동할 수 있다.
    • 수는 1부터 시작한다.
  • 열려있는 모든 분할 창과 탭을 끄기 위해서는 :qa를 입력하면 된다.
  • :wq를 하면 열려있는 분할 창을 저장하고 끌 수 있는데,
    • :wqa를 하면 모든 분할 창을 저장하고 끌 수 있다.

탐색과 대치

  • NORMAL 모드에서 /를 입력하면 파일 전체에서 / 다음에 입력한 문자열을 탐색할 수 있다.

  • n 키를 누르면 다음 문자열을 탐색할 수 있다.

  • N 키를 누르면 이전 문자열을 탐색할 수 있다.

  • :nohl을 입력하면 탐색한 문자열을 하이라이트 하지 않는다.

    • 또는, /asd이런 식으로 이상한 문자열을 대신 검색해서 하이라이트를 끌 수도 있다.
  • :s/를 입력하면 현재 커서가 있는 행에서 대치를 진행할 수 있다.

  • :s///g를 입력하면 현재 커서가 있는 행에서 대치를 여러번 진행할 수 있다.

  • :s%///를 입력하면 파일의 모든 행에서 대치를 진행할 수 있다.

  • :s%///g를 입력하면 파일의 모든 행에서 대치를 여러번 진행할 수 있다.

  • 대치 기능은 VISUAL 모드와 함께 사용될 수 있다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment