System/OS
2003.04.23 10:26
[linux] 간단한 vi편집기 사용 명령
조회 수 13541 댓글 0
환경:
:set nu # 라인줄 보기
:set nonu # 라인줄 취소
:wq(:ZZ) # 저장하고 빠져 나오기
:q! # 그냥 빠져 나오기
:syntax off # 글자 안나올 때 syntax hilighting 기능을 꺼버린다
이동: h, j, k, l
^(0) # 그 줄의 처음으로
$ # 그 줄의 끝으로
G([[) # 그 파일의 끝으로 이동
1G(]]) # 그 파일의 첫줄로 이동
w(W) # 우측으로 한단어(빈칸까지) 이동하고 단어의 앞에 위치 word
b(B) # 좌측으로 한단어(빈칸까지) 이동하고 단어의 앞에 위치 back
e(E) # 우측으로 한단어(빈칸까지) 이동하고 단어의 끝에 위치 end
H # 한 화면의 처음으로 이동 high
M # 한 화면의 중간으로 이동 middle
L # 한 화면의 끝으로 이동 low
ctrl+g # 정보 보기(파일이름, 커서의 줄넘버, 총 줄)
ctrl+f # 아래로 한화면 이동 forward
ctrl+b # 위로 한화면 이동 backward
ctrl+d # 아래로 반화면 이동 down
ctrl+u # 위로 반화면 이동 up
6j # 아래로 6칸 이동
6k # 위로 6칸 이동
입력모드:
a(A) # 현재 커서의 문자뒤에서(그줄뒤에서) 입력모드 append
i(I) # 현재 커서의 문자앞에서(그줄앞에서) 입력모드 insert
o(O) # 현재 커서의 다음줄에(위줄에) 빈칸을 새로 만들고 입력모드
바꾸기:
x # 우측으로 한문자 지우고 명령모드
X # 좌측으로 한문자 지우고 명령모드
s # 한문자를 지우고 입력모드
r # 한문자만 바꿔치기
R # 한문자씩 계속 진행하면서 바꿔치기 한다
C # 현재커서 위치에서 줄의 끝까지 지우고 입력모드
cw # 우측으로 한단어 지우고 입력모드 change word
cb # 좌측으로 한단어 지우고 입력모드 change back
J # 현재 줄을 다음줄과 한줄로 연결
복사, 붙여넣기(p), 잘라내기:
dG # 현재 커서가 있는 줄부터 끝줄까지 잘라내기
d1G # 현재 커서가 있는 줄부터 처음줄까지 잘라내기
yw # 우측으로 한단어 복사
yb # 좌측으로 한단어 복사하고 단어 앞으로 이동
y0 # 좌측으로 그줄 처음까지 복사하고 그줄 앞으로 이동
y$ # 우측으로 그줄 끝까지 복사
dd(yy) # 한줄 잘라내기(복사)
3dd(3yy) # 세줄 잘라내기(복사)
6x # 커서가 있는 문자부터 6개의 문자를 지우라
6s # 커서가 있는 위치의 문자부터 6개의 문자를 지운 후 입력모드로 전환
6r # 6개의 문자 각각을 모두 다음에 입력하는 하나의 문자로 바꾼다
6r0 # 현재 커서가 있는 위치부터 7개의 문자를 '0' 즉 '0000000'으로 바꾼다
찾기:
?'findword' # 특정단어 찾기
/'findword' # 특정단어 찾기
/'findword' # 특정단어를 문자로 인식해서 찾기 예 ., .., $, ^ 등
n # 뒤로 찾기
N # 앞으로 찾기
:1,$s/^M//g # ^M(ctrl+v+M) 문자 일괄 지우기
:%s/oldword/newword/g # 처음부터 끝까지에서 특정단어를 새단어로 바꾼다
버퍼를 이용한 복사, 붙여넣기, 잘라내기:
"a2yy # 현재 커서가 있는 줄을 포함해서 2줄을 버퍼(") a에 넣는다
"by$ # 현재 커서가 있는 위치부터 줄의 끝까지의 내용을 버퍼(") b에 넣는다
ap # a에 저장된 2줄의 내용을 현재 커서가 있는 줄 다음에 붙여 넣는다
bp # 버퍼 b에 저장된 내용을 현재 커서가 있는 문자의 뒤에 붙여 넣는다
편집모드 고급활용:
:!'command' # 편집모드 상태에서 명령어 실행
:sh # 편집모드에서 잠시 쉘로 나가 작업하고 $ exit, ctrl+d로 다시 원래 편집모드로 돌아옴
:e 'newfile' # 편집모드에서 새파일을 편집
:e 'oldfile' # 편집모드에서 이전파일을 편집
:e# # 이전 편집파일 불러오기
:e!(q!) # 수정 내용 취소
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
1113 | Develop | [js] jQuery 충돌 회피 | hooni | 2013.12.17 | 38380 |
1112 | System/OS | [linux] 처음 설치부터 APM 설치까지 (업데이트 할 것) | hooni | 2013.04.23 | 38354 |
1111 | PPT |
[android][ios] 알림(Notification) 기능에 대한 원리와 구현 방안 (APNS포함)
![]() |
hooni | 2013.04.23 | 37923 |
1110 | System/OS |
CentOS 6.5 USB 설치
6 ![]() |
hooni | 2013.12.18 | 37815 |
1109 | Etc | [svn] 콘솔에서 svn 사용시 레티나용 이미지 add 안될 때.. | hooni | 2013.09.25 | 37660 |
1108 | Develop |
[ios] iOS 4.0 beta 에서 3.1.3으로 다운그레이드 하는 법
![]() |
hooni | 2013.04.23 | 37545 |
1107 | System/OS |
맥에서 파일공유 (윈도우,맥)
![]() |
hooni | 2013.04.25 | 37405 |
1106 | System/OS |
[mac] Mac에서 Mac으로 원격제어하기 (맥에서 맥으로)
![]() |
hooni | 2013.10.08 | 37266 |
1105 | Develop | [js] jQuery 치트 시트 | hooni | 2013.12.18 | 36307 |
1104 | Develop |
[php] 몽이가 준 ajax 채팅 소스 ㅋㅋ
![]() |
hooni | 2013.04.23 | 36212 |
1103 | Develop |
[ios] iOS 6.0 이상 회전 하기 (이전 버전과 비교 변경 부분)
![]() |
hooni | 2014.01.27 | 34246 |
1102 | System/OS | [sql] 조회구문(select)에서 중복 데이터를 한 번만 출력 (distinct) 1 | hooni | 2013.04.23 | 34076 |