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)
OBJS = $(SRCS:.c=.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))
all : $(TARGET)
$(TARGET) : $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
clean :
rm -rf $(OBJS) $(TARGET
make
make clean
cd ~
vim ~/.vimrc