본문 바로가기
CS/Linux

텍스트 에디터(vi)

by JHyun0302 2023. 8. 28.
728x90

모드

mode explain
Command mode Esc키 누르면 명령 수행 가능
Edit mode a, i, o 키 입력하면 편집 모드
Extended mode 명령모드에서 :, /, ? 입력하면 명령어 입력가능

 

 

 

key explain
y 지정 범위 복사
yy 1줄 복사
d 지정 범위 잘라내기
dd 1줄 잘라내기
p 붙여넣기

 

 

 

command explain
gg 문서 맨 앞으로 이동
G 문서 맨 뒤으로 이동
:줄 번호 해당 줄로 이동

 

 

 

범위 선택

  • v 입력 후 방향키로 범위 선택
  • `Shift + v`로 1줄 선택
  • `:set mouse=a 입력하면 마우스로 범위 선택 가능
  • `:set mouse-=a 입력하면 마우스로 범위 선택 기능 해제

 

character explain
숫자 해당 줄 번호
. 현재 커서 있는 줄 번호
$ 문서 마지막 줄 번호
  • `:1,5y` → 1~5 번째 줄 복사
  • ':1,$d' → 1~마지막 줄까지 잘라내기

 

 

 

문자열 치환 : `범위s/원본 문자열/ 바꿀 문자열/ 옵션`

character explain
g 모든 문자열 치환
i 대소문자 구분하지 않고 문자열 치환
c 치환 여부 묻기
  • ':1,$s/test/test2/gic' → 1~마지막 줄까지 'test'를 'test2'로 변경.(모든 문자열을 대소문자 구분없이! 치환여부 묻기!)

 

 

 

문자열 검색

command explain
/검색어 or ?검색어 검색어 찾기 (n: 이전 / N: 다음)
:set hlsearch 검색어 하이라이트
:set noihlsearch 검색어 하이라이트 취소

 

 

 

undo & redo

command explain
u undo
ctrl + r redo

 

 

 

저장과 종료

command explain
:w 저장
:w 파일명 파일명으로 저장
:q 종료
:q! 강제 종료
:wq 저장하고 종료

 

 

 

주요 설정

command explain
:set number 줄 번호 표시 (반대 : no...)
:set autoindent
자동 들여쓰기 (반대 : no...)
:set smartindent 스마트한 들여쓰기 (반대 : no...)
:set cindent C언어 스타일의 들여쓰기 (반대 : no...)
:set shiftwidth=4 자동 들여쓰기 4칸
:set tabstop=4 tab을 4칸 공백으로 설정
:set expandtab tab을 space로 대체
:set hlsearch 검색어 하이라이트 (반대 : no...)

 

 

 

gcc 설치

sudo apt-get update
sudo apt-get install gcc

 

 

 

컴파일

gcc –o helloworld helloworld.c

 

 

 

실행

./helloworld

 

 

 

 

gcc 옵션

option explain
-c object 파일 생성
-o .out 파일의 이름 설정
-I (대문자 i) 컴파일 시 사용하는 헤더 파일 위치 경로 알려줌
-l (소문자 L) 링크 시 사용하는 라이브러리 설정
-L 링크 시 사용하는 라이브러리 위치
-g 디버깅 정보
-O 최적화 옵션

 

 

 

 


정적 라이브러리

ar 옵션 라이브러리 파일

//'text.o'와 'text2.o' 병합하여 test.a 생성
ar -cr libtest.a text.o text2.o

 

option content
c 라이브러리 생성
r 라이브러리에 파일 추가
s symbol index 생성
t 라이브러리에 포함된 파일 출력
tv 라이브러리에 포함된 파일 출력 (자세하게)
d 라이브러리에 포함된 파일 삭제

 

 

공유 라이브러리

//.o 파일 생성
gcc -fPIC -c text.c text2.c

//'text.o'와 'text2.o' 병합해서 'libtest.so' 생성
gcc -shared -o libtest.so text.o text2.o 

//helloworld 실행파일 생성
gcc -o helloworld main.c -l test -L .

 

반응형

'CS > Linux' 카테고리의 다른 글

Process & Signal  (0) 2023.08.29
디렉토리 관리 관련 함수  (0) 2023.08.29
파일 관리 관련 함수  (0) 2023.08.29
Func (File System & File Input/Output)  (0) 2023.08.29
리눅스 구조 & 명령어  (0) 2023.08.27