티스토리 툴바

   cuz i nevalose..  
Front Page
Tag | Location | Media | Guestbook | Admin   
test
 
[펌] vi 명령어..
맨날 잊어먹어서..



Vi 편집기 입문(Begging Editor vi) Vi 편집기 작업은 명령모드와 입력모드의 두 상태가 있다. 초기 'vi fname'을 실행하면 창이 바뀌면서 명령모드(Command mode)가 된다. 1) vi 시작: . $vi fname vi vi편집기를 호출한다. vi filename 기존에 있는 파일이면 그 파일을 열고 없는 파일이면 새로 만든다. vi + 10filename 지정화일의 10번째 행부터 화일열기 vi +/"school" filename 지정화일내의 school이란 단어가 처음나오는 시점부터 열기 vi -r filename 손상된 파일을 복구 view filename 수정없이 읽기전용으로 열기 vi filenames 여러 파일명이나 와일드카드(*,?)로 여러 파일을 차례로 불러 편집할 수 있다.(':n' next) 2) 명령모드: 커서의 이동, 글자/단어/줄의 삭제나 블럭의 설정 등 . 입력이 아닌 상태. . 작업 중 언제든지 를 누르면 명령모드가 된다. 3) 입력모드: 키보드로 입력되는 모든 글자가 입력되는 상태. . 입력모드(Insert mode) 들어가기 : 'i'나 'a'(커서 다음에 입력) 화면 하단에 "Insert" 표시 됨(표시가 안되는 화면도 있음). . 입력모드에서는 커서를 이동시킬 수 없다. 다만 버젼과 환경에 따라 화살표 키(-> <- up, down)로 이동이 되는 경우도 있음. . 입력모드 나가기(exit): . 다음줄 입력 : 'o' a 커서 오른쪽에 문자삽입 A 커서 오른쪽, 행의끝에 문자삽입 i 커서 왼쪽에 문자삽입 I 커서왼쪽, 행의 처음에 문자삽입 o 커서 아래에 행 삽입 O 커서 위에 행 삽입 작업완료후 반드시 입력 4) Cursor 이동: up 'k', down 'j', left 'h', right 'l' * 명령모드에서만 사용하여야 함. h 왼쪽으로 이동 k j 아래로 이동 ^ k 위로 이동 h <-_ -> l l 오른쪽으로 이동 w 한단어 오른쪽으로이동 v b 한단어 왼쪽으로 이동 j Return 한행아래로 이동 Backspace 한문자 왼쪽으로 이동 Spacebar 한문자 오른쪽으로 이동 H 화면의 맨위로 이동 M 화면의 중간으로 이동 L 화면의 맨 아래로 이동 ^F 한화면 앞으로 이동 ^D 반화면 앞으로 이동 ^B 한화면 뒤로 이동 ^U 반화면 뒤로 이동 5) 삭제: . Delete 1 character: 'x' . Delete multi character (ex 3 letters): '3x' . Delete line 'dd' . Paste 'p' (next line), 'P' (previous line) dd 후 사용 . Delete multi line (ex 3 lines delete): '3dd' x 문자삭제 dw 단어삭제 dd 행 삭제 D 커서 오른쪽 행 삭제 :5,10 d 5-10째 행 삭제 6) 수정: . Modify 1 letter 'r' 화면 하단에 "Replace" 표시 됨. . Modify multi letters 'R' cw 단어 변경 cc 행 변경 C 커서 오른쪽의 행 변경 s 커서가 위치한 문자열 대체 r 커서 위치 문자를 다른 문자로 대체 r-Return 행 분리 J 현재 행과 아래 행 결합 xp 커서 위치 문자와 오른쪽 문자교환 - 문자형(대,소문자) 변경 u 이진 명령 취소 U 행 변경 사항 취소 :u 이전의 최종행 취소 8) 텍스트 복사 및 이동 yy 현재 커서가 있는 행의 전체 복사 Y 행 yank(버퍼에 복사) yw 현재 커서가 있는 단어 복사 y$ 현재 커서가 있는 곳에서 그 행의 끝까지 복사 y^ 현재 커서가 있는 곳에서 그 행의 시작까지 복사 p yank 되거나 삭제된 행을 현재 행 아래에 삽입 P yank되거나 삭제된 행을 현재 행 위에 삽입 :1,2 co 3 1-2행을 3행 다음으로 복사 :4,5 m 6 4-5행을 6행 다음으로 이동 9) 행 찾기 및 각 행마다 번호 표시 G 파일의 마지막 행으로 가기 12G 파일의 12번째 행으로 가기 :set nu 행번호 표시 :set nonu 행번호 숨기기 10) 단어나 문장 찾기 및 바꾸기 /string/ string탐색 ?string? string 역 방향 탐색 n(N) string의 다음(이전) 계속 탐색 :g/search-string/s//replace-string/gc 각 발생 탐색후 확인하고 대체 :s/str/rep/ 현재 행의 str을 rep로 대체 :1,.s/str/rep/ 1부터 현재 행의 str을 rep로 전부 대체 :%s/str/rep/g 파일 전체 str을 rep로 전부 대체 11) 마크 설정과 마크 호출 . 문자 'm' 다음에 마크 이름으로 'a'에서 'z' 사이의 문자 하나를 선택한다. 예) 'a'라는 이름으로 마크 설정: ma . 이동이나 호출은 '(single quotation mark)후 'a'에서 'z' 사이의 문자 하나를 선택 한다. 예) 'a 설정된 마크 'a'로 이동 예) :'a, d 마크 a에서부터 현재 커서가 있는 줄까지 삭제. 12) Buffering(특정 이름의 버퍼에 저장) . "(a-z)nyy (a-z)라는 이름의 버퍼에 n줄 저장 예) "a5yy 'a'라는 이름의 버퍼에 현재 줄부터 5줄을 저장. . "(a-z)p (a-z)버퍼의 내용을 다음 줄에(p) 넣음. 13) 다른 파일 삽입 :r filename 커서 다음에 파일 삽입 :20 r filename 파일을 20번째 행 다음에 삽입 14) 단축 단어나 키(abbreviation) 사용법 . :ab 약어(단축단어나 키) 바꿀 단어나 키 예) :ab WW w! /tmp/test ':WW'명령 /tmp/test'로 저장. 예) :ab inp internet programming 입력모드에서 'inp'를 넣고 빈칸이나 줄바꿈 등을 치면 'internet programming'으로 바뀐다. 15) 현재 로드된 파일 정보 . Refresh(다시 보기) '^L' . Current information(파일 정보) '^G' . Search a word(찾기) '/word' . Search again(다시 찾기) 'n' . 현재 설정된 vi 환경보기 ':set' 16) Undo(실행 취소) 'u' 17) Repeat(실행 반복) '.' 18) 일련의 명령들을 하나의 명령으로 만들기 :map (a-z,A-Z) 명령들 예) :map z ncwPARK^[ 'z' 명령으로 앞에서 찾은 단어('/단어' 실행)를 찾은(n) 후 해당 단어를 PARK로 바꾼다.('^['는 로 '^V'로 입력한다.) 예) :map Z dwwP 명령 'Z'는 현재 커서가 위치한 단어와 다음 단어를 맞바꾼다. 19) 저장: . 저장 ':w' . 'tt'라는 이름으로 저장 ':w tt' . 'tt'라는 이름의 파일이 이미 존재할 때에는 덮어쓰기(강제 save)의 의미로 '!'을 추가. ':w! tt' . 현재의 파일로 저장하고 나가기(종료) 'ZZ', ':wq' . Vi 나가기 ':q' . 저장하지 않고 나가기 ':q!' :w 변경사항 저장 :w filename 지정한 파일로 저장 :wq 변경사항 저장후 vi종료 ZZ 변경사항 저장후 vi종료 :q! 변경사항을 저장하지 않고 vi종료 . MS Windows OS에서 사용하는 Vim이나 윈도우 텍스트 편집기 등에서 작성된 문서는 다음줄(줄 바꾸기) 문자코드가 유닉스()와 다르다. DOS(Windows) 텍스트 문서를 유닉스 vi로 보면 ^M로 보인다(DOS 형식인데 안 보일 수도 있음). 문서를 저장하기 전에 :set로 보아 fileformat=unix 혹은 fileformat=dos로 저장 형식을 알 수 있다. 아래 환경설정 참조) :set fileformat=unix 한 후 저장하면 유닉스 형식으로 저장된다. 혹은 모든 '^M'코드를 삭제하면 유닉스형식이 된다. ':%s/^M//' 여기서 '^M'은 '^V^M'로 입력할 수 있다. :set fileformat=unix 저장시 유닉형식 설정. :set fileformat=dos 저장시 DOS 형식 설정. 20) Tips: 다음 과 ^L(refresh)를 자주 사용하시오! 21) 라인(줄) 편집 명령: . Line 명령은 ':'로 시작한다. 화면 하단에 ":" 표시. . :[n1,n2] command [범위] 명령 예1) Read and insert a file fnme('fname' 파일을 커서 앞에 끼워 넣기) ':r fname' 예2) Cancel all modification and edit again(저장한 이후 모든 작업을 취소하고 다시 편집함) ':e!' 22) 환경 설정 . :set


한량 since 1980
 Link Site
웹메일
상변태
구글
WIKI
다음
 Notice
포스텍 입학식
Wine class
GIFT MT
98학번 모임 있습니다..
 Recent Entries
최무영의 과학이야기
text-image (1)
..
Acta materialia
블루베리쉬폰케잌..
 Recent Comments
안녕하세요~~ 모든..
난 아직도 울트라 에..
http://www.vim.org/..
학성한테 과외 받고..
형 열심히해서 나도..
 Category
분류 전체보기 (137)
ALBUM (69)
MISC (63)
RESEARCH (5)
 Calendar
«   2012/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
 Visitor Statistics
Total : 20,560
Today : 1
Yesterday : 4