4.1 텍스트편집기 (text editor) 4. 파일편집기 텍스트편집기종류 라인편집기 (line editor) (1) ed : original line editor, 명령어방식 (2) ex : ed 의개선된버전 화면편집기 (screen editor) (1) vi : visual screen editor (original UNIX screen editor) (2) vim : vi IMproved, vi 에없는기능추가 (Linux 의 vi 는 vim 임 ) (3) view : vi 가 read only mode 에서시작됨 (4) emacs : Editor MACroS Lisp-based AI community 에서시작됨 2 4.2 vi 편집기의기본사용 vi 편집기의특징 vi의시작 % vi ; 저장할때에파일이름지정해야함 % vi filename ; filename파일을편집. 주로사용하는방식 특징 특수기를사용하지않고편집가능 2 가지동작모드 (1) 명령모드 명령모드, ex 명령모드 (2) 입력모드 ex 명령모드는라인편집기의명령을사용하는모드 : 로시작하며화면아래에나타남 커서이동, 삭제, 치환복사, 붙이기, 찾기, 저장, 불러오기, 종료등 문서내용입력 마지막입력줄다음에 ~ 가표시됨 (~ 가표시된줄은빈줄임 ) 3 4
입력모드 명령모드 vi 시작시에명령모드 text 입력모드전환 i, I : insert a, A : append o, O : open line 59 쪽표참조 명령모드에서의동작 삭제, 치환 / 변경 복사, 붙이기 탐색, 바꾸기 파일저장, 불러오기 종료 현재커서위치 ESC 키를사용하여명령모드로돌아옴 5 6 커서이동 커서이동 (2) 입력모드에서 ESC 를눌러서명령모드로이동한후에커서를이동함 text h j k l : ( 한문자이동 ) ^ $ : line 처음, 끝 b w : word 단위앞 / 뒤 e : word 끝 ^B ^F : 한화면위 / 아래 (backward / forward) ^U ^D : 반화면위 / 아래 (up / down) 100G 또는 :100 : 100행 명령키반복 5h 6w : 명령어앞의숫자만큼반복수행 ^U ^D ^B 현재화면 ^F b e w Word1 word2 longword3 word4 현재커서위치 UNIX 시스템 7 UNIX 시스템 8
텍스트삭제 삭제 (delete) x ( 문자 ) X ( 왼쪽문자 ) dw ( 단어 ) dd ( 줄 ) D ( 현재부터줄끝까지 ) (cf) 8x 3dw 2dd 커서이동과삭제는명령모드로전환후수행함 dm : 현재부터커서이동문자 m 으로이동되는곳까지삭제 텍스트수정 치환 / 대치 r ( 문자 ) - 한문자만치환 cw ( 단어 ) cc ( 줄 ) 입력모드로전환됨 R ( 현재커서부터계속하여치환 ) (cf) 4cw cm : 현재부터커서이동문자 m으로이동되는곳까지치환 ( 변경 ) 삭제 ex 모드 :1,3d ; 1행부터 3행까지삭제 :.,.+2d ; 현재행부터 3행을삭제 (. 은현재행 ) UNIX 시스템 9 10 텍스트복사및붙이기 복사 (copy) 및붙이기 (paste, put) yy (yank line) 또는 Y ( 줄복사 ) (cf) 4yy (4 줄복사 ) : 10, 14y (10-14 행까지 5 행을복사 ) yw (yank word) p 현재줄 ( 커서 ) 다음에붙이기 (put) P 현재줄 ( 커서 ) 이전에붙이기 : pu 현재줄 ( 커서 ) 다음에붙이기 :10pu 10 행다음에붙이기 ym : 현재부터커서이동문자 m으로이동되는곳까지복사 (cf) yw ( 단어복사 ) y$ ( 줄끝까지복사 ) 편집취소및반복 취소 u (undo) : 가장최근편집명령취소 U (undo) : 현재줄에대한편집명령취소 3u 반복 :e! : 현재파일의편집내용을버리고, 최근저장내용으로작업. (period) : 가장최근의텍스트편집명령을반복 행연결 두줄결합 J (join) : 현재줄을다음줄과결합하여한줄로만듬 화면을다시그림 Ctrl-L : 편집화면에다른프로그램의출력이표시된경우화면을다시그리면이출력이없어짐 UNIX 시스템 11 12
찾기 (search) 및바꾸기 파일저장및종료 문자열검색 (search) /string[enter] 앞쪽으로찾기?string[Enter] 뒤쪽으로찾기 /\<ten\> 단어문자열찾기 저장 :w ; 파일저장 :w filename ; filename에파일저장 ( 새이름으로 ) :1,10w filename ; 일부행만저장 검색반복 n( 마지막검색명령반복 ) N ( 반대방향으로검색명령반복 ) 종료 :q ; 종료 ( 변경된내용을저장해야종료됨 ) :q! ; 무조건종료 대치 (substitute) 찾아바꾸기 :1,10s/sss/ttt/ ; 각행의발견된첫문자열 (sss) 을 ttt 로바꾸기 :10,$s/sss/ttt/g ; 발견된모든문자열 (sss) 을 ttt 로바꾸기 :.,.+9s/\<ten\>/10/g ; 현재부터 10 줄의단어 ten 을 10 으로치환 often 의 ten 은치환되지않음 저장후종료 :x ; 저장후종료 :wq ZZ UNIX 시스템 13 14 4.3 vi 의고급사용 버퍼사용, 옵션설정, 초기화파일 파일저장 / 불러오기 :r filename ; 현재위치에다른파일읽기 ( 삽입 ) :e filename ; 다른파일불러오기 :n ; 다음파일편집 % vi *.c ( 편집할파일이여러개임 ) 다른명령어실행 :!command ; command 를수행한후 vi 로되돌아감 :r!command ; command 수행결과를현재위치에삽입!!command ; 위와같음 :sh ; 셸을실행, 프롬프트출력 버퍼사용 a3yy ; 3 줄복사, 버퍼 a 에저장 ( 버퍼이름 = 알파벳문자 ) ap ; 버퍼 a 내용붙이기 옵션설정 - : set 명령 (69 쪽참조 ) 옵션변수설정여부또는설정값에따라서 vi 동작에영향을줌 : set autoindent 또는 : se ai : set number 또는 se nu : set tabstop=4 또는 se ts=4 : set ai nu ; 한꺼번에설정 : set all ; 모든변수설정상태출력 옵션설정취소 변수이름앞에 no 를붙임 : set noautoindent 또는 se noai 초기화파일 기본값과다른옵션변수설정을할때사용 vim 은.vimrc 을, 원래의 vi 는.exrc 를사용 15 16
4.4 emacs 편집기 주요명령어 많은확장성과강력한매크로기능을가진텍스트편집기 초기에 Lisp 언어로작성되었으며, 현재에는 C 로작성된 GNU emacs 가널리사용됨 emacs 시작 $ emacs file 기본적으로입력모드로시작 명령키 Ctrl 또는 Alt 와함께문자입력또는 ESC 다음에문자입력 C- 문자 (Ctrl- 문자 ) M- 문자 (Alt- 문자또는 ESC 문자 ) 대소문자구분 저장, 종료 C-x C-s 저장 C-x C-c 종료 화살표키 C-p C-n C-b C-f ( 위, 아래, 왼쪽, 오른쪽 ) 문자삭제 찾기 Backspace( 이전 ) Del( 현재 ) 또는 Del( 이전 ) C-d( 현재 ) C-s ( 이후검색 ) C-r ( 이전검색 ) 기타기능 교과서및기타자료참고 17 18