VIM

rami·2025년 12월 10일

Today I Learned

목록 보기
40/42

vim이란 터미널에서 실행하는 텍스트 에디터

vim main.c
vim을 실행했을 때의 경로 + 파일 이름(main)에 c코드 저장된다.

i : 입력모드로 전환 (하단에 INSERT 라고 뜸)

#include <stdio.h>

int main()
{
    printf("hello, world\n");
    return 0;
}

/* 
return 0; = 프로그램이 끝날 때 0이라는 종료 상태코드 값을 운영체제에게 돌려준다는 의미
*/

esc : 입력모드 종료 후 명령모드로 복귀

저장 관련 명령어

상황명령
내용 수정했고 저장하고 나가고 싶다:wq
아무 수정 안 했고 그냥 나가고 싶다:q
실수로 수정했는데 저장하고 싶지 않다:q!

gcc main.c -o main (gcc -o main main.c로 순서 바꿔도 된다.)
gcc 컴파일러로 컴파일+링크 해야 c코드 실행가능하다.

컴파일(Compile) — .c → .o
링크(Link) — .o + 라이브러리 → 실행 파일

링크 : 조각난 기계어(.o) 파일들을 한 개로 연결(link)하는 작업

  • main.c → vim으로 작성한 소스 코드
  • -o main → gcc가 만든 컴파일된 실행 파일(바이너리) 이름을 main으로 만들겠다는 의미(-o 옵션은 반드시 그 뒤에 파일 이름이 따라와야 한다.)
    디렉토리 조회 시 main이 새로 생긴다.
  • 만약 -o를 안 쓸 경우, gcc는 기본 이름을 a.out으로 만든다.

./main : 프로그램 실행하기
echo $? : 종료코드 확인
:e + 파일명 : vim 내에서 파일 간 이동


명령모드

ctrl + f : 다음 화면 라인으로 이동
ctrl + b : 이전 화면 라인으로 이동

shift + j : 밑에 있던 라인을 한 단계 위로 올림
shift + d : 커서 뒤로 라인 전체 삭제
shift + 8 (*) : 커서 위치한 문자랑 같은 문자열을 찾아 블록 처리

  • shift + 8 + n 을 눌러 아래로 이동
  • shift + 8 + shift + n 을 눌러 위로 이동
  • :noh : 하이라이트 해제

/ : 라인모드
/ + 찾을문자열 : shift+8과 같은 기능

shift + $ : 현재 라인의 끝으로 이동
shift + ^ : 현재 라인의 시작으로 이동
shitf + v : 여러 줄 선택

  • visual line 사용 안하고 숫자로 여러 줄 선택 가능 (ex. 2 -> dd)

y : 복사
p : 붙여넣기
d : 삭제

yy : 한 줄만 복사
p : 붙여넣기
dd : 한 줄 삭제

u : 되돌리기
ctrl + r : 재실행
x : 한 글자씩 삭제
숫자 + x : 숫자만큼 삭제
:숫자 : 이동하고자 하는 라인으로 이동

  • :1 : 제일 첫 라인으로 이동
  • :$ : 제일 마지막 라인으로 이동

:set nonumber : 라인 번호 숨김
:set number : 라인 번호 표시

복사 -> i (입력모드) -> shift + insert

  • :set paste + i (INSERT(paste)) + shift insert : 복사했던 모양 그대로 붙여넣기. set nopaste로 해제

:%s/찾을문자열/바꿀문자열 : 찾을문자열 전체를 -> 바꿀문자열로 한번에 바꾼다.
:r 불러오려는파일명.확장자 : 파일 불러와서 붙여넣기

:wq : write + quit 저장하고 나가기
q! : 저장안하고 나가기
:!리눅스명령어 : vim안에서 셸 명령어 사용가능

입력모드

a : 커서 한 칸 뒤에서부터 입력
shift + a : 라인의 끝으로 이동해서 입력
o : 커서 아래에 새로운 줄을 만들고, 그 줄에서 입력
cw : 커서 뒤로 스페이스 전까지의 단어 지우고 입력

profile
앞으로 나아가는 사람

0개의 댓글