[Linux] vim 사용법

알린·2023년 11월 29일
0

Linux

목록 보기
13/14

vim 사용법

  • vim 명령모드 내에선 dd(잘라내기)/y(붙여넣기)가 되지만 vim → window로 복사/붙여넣기가 되지 않음
    => dd/y 명령어는 vim buffer에 저장되기 때문에 clipboard에서 복사/붙여넣기가 실행되는 windows나 shell에선 작동되지 않는 것 (vim buffer != clipboard)
  • vim → window로 복사/붙여넣기 작업 수행 위해 다음 키 사용
    => Ctrl + Insert : 복사 / Shift + Insert or 오른쪽 마우스 버튼 : 붙여넣기

명령모드

  • 커서 이동, 삭제, 복사, 붙이기
명령어정의
w다음 단어의 첫 글자로 이동
b이전 단어의 첫 글자로 이동
^같은 행 내 가장 첫 글자로 이동
$같은 행 내 가장 마지막 글자로 이동
+다음 행의 첫 글자로 이동
-이전 행의 첫 글자로 이동
M커서를 화면의 중앙으로 이동
gg문서의 맨 첫 행으로 이동
G문서의 맨 마지막 행으로 이동
x현재 커서 위치의 한 글자 삭제
dd현재 커서 위치의 한 삭제
yw / yy현재 커서 위치의 한 단어 복사 / 한 행 복사
p붙여넣기
v 누른 채로 j블록 선택
d / y블록 선택 지우기 / 블록 선택 복사
u / Ctrl + r명령취소 /명령취소 되돌리기
/[문자열] / ?[문자열]원하는 문자열 찾기(정방향) / 원하는 문자열 찾기(역방향)
Ctrl + w s현재 파일을 두 개의 수평 창으로 나눔

입력모드

  • 실제 문서 편집
명령어정의
Ctrl + v + Enter개행문자 표시(^M)
:%s/^M//g^M 삭제

예제

  • 다음 코드들로 실습 진행
//main.c
#include "diary.h"

int main() {
    memo();
    calendar();
    return 0;
}


//calendar.c
#include "diary.h"
int calendar() {
    printf("function calendar.\n");
    return 0;
}


//memo.c
#include "diary.h"
int memo() {
    printf("function memo.\n");
    return 0;
}


//diary.h
#include <stdio.h>
int memo();
int calendar();
  • Makefile 코드 ver.1(매크로 사용)
//Makefile

CC = gcc
CFLAGS = -W -Wall
TARGET = diary
OBJS = memo.o calendar.o main.o

all : $(TARGET)

$(TARGET) : $(OBJS)
               $(CC) $(CFLAGS) -o $@ $^
memo.o : memo.c
               $(CC) $(CFLAGS) -c -o $@ $^
calendar.o : calendar.c
              $(CC) $(CFLAGS) -c -o $@ $^
main.o : main.c
              $(CC) $(CFLAGS) -c -o $@ $^

clean :
    rm -rf *.o $(TARGET)
make
make clean

  • Makefile 코드 ver.2 (와일드카드 매칭 기법, 대입 참조 기법 사용)
CC = gcc
CFLAGS = -W -Wall
TARGET = diary
SRCS = $(wildcard *.c)  # memo.c calendar.c main.c
OBJS = $(SRCS:.c=.o)    # memo.o calendar.o main.o

all : $(TARGET)

$(TARGET) : $(OBJS)
              $(CC) $(CFLAGS) -o $@ $^

clean :
    rm -rf $(OBJS) $(TARGET)
make
make clean

  • Makefile 코드 ver.3(patsubst 사용)
CC = gcc
CFLAGS = -W -Wall
TARGET = diary
OBJS = $(patsubst %.c, %.o, $(wildcard *.c))  # memo.o calendar.o main.o


all : $(TARGET)

$(TARGET) : $(OBJS)
              $(CC) $(CFLAGS) -o $@ $^

clean :
    rm -rf $(OBJS) $(TARGET
make
make clean


  • vim 설정 변경
cd ~
vim ~/.vimrc
profile
Android 짱이 되고싶은 개발 기록 (+ ios도 조금씩,,👩🏻‍💻)

0개의 댓글