Tuesday, November 28, 2006

emacs



Emacs 종료
C-z
Emacs 일시 정지
C-x C-c
Emacs 종료

커서 이동
C-a
줄의 처음으로 이동
C-e
줄의 끝으로 이동
C-f
한문자 앞으로 이동
C-b
한문자 뒤로 이동
M-f
한단어 앞으로 이동
M-b
한단어 뒤로 이동
C-n
한줄 아래로 이동
C-p
한줄 위로 이동
M-r
포인트를 왼쪽끝으로 이동
M-<
버퍼의 처음으로 이동
M->
버퍼 끝으로 이동
M-x go-char
n번째 문자로 이동
M-x goto-line
n번째 줄로 이동
C-x C-n
현재 줄을 goal column으로
C-u C-x C-n
goal 라인을 취소

문자 지움(Erasing Text)
DEL
커서 앞의 문자 지움
C-d
커서 뒤의 문자 지움
C-k
현 위치에서 줄 끝까지 지움
M-d
다음 단어 지움
M-DEL
뒤 단어 지움
M-/
포인트 주위의 스페이스와 탭 지움
M-SPC
포인트 주위의 스페이스와 TAB제거. 단 하나의 스페이스는 남겨둠.
C-x C-o
현재 줄 주위의 빈줄 지움
M-^
두 줄 합침
C-w
영역 지움
C-x DEL
문단의 시작까지 지움
M-k
문장의 끝까지 지움
C-M-k
sexp를 지움
M-z char
char가 나올때까지 지움

되돌리기(Undo)
C-x u
전 명령어에 의한 변화를 되돌림
C-_

되살리기(Yank)
C-y
마지막에 삭제한 것 되살리기
M-y

M-w
실제로 삭제하지 않고 마지막으로 삭제된 문서로서 영역 저장
C-M-w


파일(File)
C-x C-f argument
argument 파일 읽기
C-x C-s (save-buffer)
파일 저장

빈줄 넣기(Blank LInes)
C-o
커서 뒤에 하나 이상의 빈줄 넣음
C-x C-o
하나 이상의 빈줄 삭제

커서 위치 정보(Cursor Position Information)
M-x what-page
커서가 있는 페이지 번호 와 페이지 내의 줄 번호 출력
M-x what line
커서의 줄 번호 출력
M-x line-number-mode
줄 번호 자동 출력 on off
M-=
현재 지역에서 줄번호 출력
C-x =
커서 위치의 문자 코드, 문자 위치, 행 출력

도움말(Help)
C-h a regexp RET
regexp와 일치하는 명령어 출력
C-h b
현 상태에서 실행 가능한 모든 키 바인딩 출력
C-h c key
key가 실행하는 명령어 출력
C-h f function RET
function명을 갖는 리스프 함수의 문서 출력
C-h i
Info 실행
C-h k key
key가 실행하는 명령어의 문서와 이름 출력
C-h l
사용자가 마지막으로 입력한 100문자 출력
C-h m
현재 major mode의 문서 출력
C-h n
‘Emacs changes’ 문서 출력
C-h p
주제어에 의해 패키지 찾기
C-h s
syntex table의 차례 과 설명 출력
C-h t
대화형 튜토리얼 실행
C-h v var RET
'Lisp variable var' 문서 출력
C-h w command RET
command 명령어의 키 출력
C-h C-f function RET
Info를 실행하고 에서 Emacs 함수 function 문서 노드로 진입
C-h C-k key
Info를 실행하고 key문서 노드로 진입
C-h C-c
GNU Emacs의 권리 출력
C-h C-d
GNU Emacs의 새번전 정보 출력
C-h C-p
GNU Project에 대해 출력

영역 설정
C-SPC
마크(Mark) 설정
C-@
C-x C-x
마크와 포인트간의 변환
Drag-Mouse-1
포인트를 설정하고 Drag한곳에 마크 설정
Mouse-3
포인트 부분에 마크를 설정하고 사용자가 클릭한 곳으로 포인트 이동

문장 영역 지정
M-@
다음 단어의 끝까지 마크 설정
C-M-@
다음 리스프 식의 끝까지 마크 설정
M-h
현 문단을 영역 설정
C-M-h
현재 리스프 함수를 지역 설정
C-x h
전체 버퍼를 영역 설정
C-x C-p
현재 페이지를 영역 설정

추가
M-x appand-to-buffer
영역을 특정 버퍼에 추가
M-x prelend-to-buffer

M-x copy-to-buffer
영역을 버퍼에 추가하고 버퍼의 옛 내용을 지움
M-x insert-buffer
지정 버퍼의 내용을 현재 버퍼 위치에 삽입
M-x append-to-file
영역을 특정 파일의 끝에 추가

칸단위 영역(Rectangle)
C-x r k
칸단위 영역 지움. 그 내용을 “last killed recrangle"에 저장
C-x r d
칸단위 영역 지움
C-x r y
현 포인트위치에 지운 칸단위 영역 살림
C-x r o
칸단위 영역의 공간에 빈칸 채우고 원래 내용을 오른쪽으로 밀어냄
M-x clear-rectangle
칸단위 영역을 지움
M-x string-rectangle RET string RET
칸단위 영역의 각 라인에 string 삽입

레지스터(Register)
M-x view-register RET r
레지스터 r이 포함하는 내용 출력
C-x r SPC r
레지스터 r에 포인트의 위치 저장
C-x r j r
레지스터 r에 저장된 위치로 이동
C-x r s r
레지스터 r에 영역 복사
C-x r i r
레지스터 r에 텍스트 삽입
C-x r r r
칸단위 영역을 레지스터 r 에 복사
C-x r i r
레지스터 r에 저장된 칸단위 영역을 삽입
C-x r w r
선택된 프레임의 상태를 레지스터 r에 저장
C-x r f r
모든 프레임의 상태와 윈도우를 레지스터 r에 저장
C-x r m RET
북마크 설정
C-x r m bookmark RET
이름이 bookmark인 북마크 설정
C-x r b bookmark RET
bookmark로 이동
C-x r l
모든 북마크 출력
M-x bookmark-save
북마크 파일에 현재 북마크값들을 저장
M-x bookmark-load RET filename RET
북마크 값이 저장된 filename을 읽음
M-x bookmark-write RET filename RET
bookmark를 filename에 저장
M-x bookmark-delete RET bookmark RET
bookmark를 지움
M-x bookmark-locate RET bookmark RET
bookmark가 있는 파일의 이름을 버퍼에 넣음
M-x bookmark-insert RET bookmark RET
bookmark가 있는 파일의 내용을 버퍼에 추가

화면 제어

C-l
화면 다시 그림
C-v
위로 스크롤
NEXT
위로 스크롤
M-v
아래로 스크롤
PRIOR
아래로 스크롤
arg C-l
포인트가 화면줄 arg가 되도록 스크롤
C-x <
화면을 왼쪽으로 스크롤
C-x >
화면을 오른쪽으로 스크롤
C-x $
화면에서 n행을 보이지 않음

찾기와 바꾸기(Searching & Replacement)
C-s
아래로 찾기
C-r
위로 찾기
C-s RET string RET
아래로 string 찾기
C-r RET string RET
위로 string 찾기
C-s RET C-w words RET
상세한 구두점은 무시하고 아래로 word 찾기
C-r RET C-w words RET
상세한 구두점은 무시하고 위로 word 찾기
M-x replace-string RET string RET newstring RET
string을 newstring으로 교체
M-x replace-regexp RET regexp RET newstring RET
regexp 식에 맞는 문자를 newstring으로 교체
M-% string RET newstring RET
string을 newstring으로 교체할 때 사용자에게 물어봄
M-x query-replace RET string RET newstring RET
M-x query-replace-regexp RET regexp RET newsring RET
regexp식을 newstring 으로 교체할 때 사용자에게 물어봄
M-x occur RET regexp RET
regexp에 일치하는 문자를 포함하는 라인의 목록를 보여줌
M-x list-matching-lines
M-x count-matches RET regexp RET
포인트 후에 regexp 에 일치하는 문자의 수를 출력
M-x flush-lines RET regexp RET
regexp 와 일치하는 라인을 지움
M-x keep-lines RET regexp RET
regexp와 일치하지 않는 라인을 지움


M-DEL
마지막 단어 지움
C-x DEL
문장의 시작까지 지움
C-t
두 문자 교환
M-t
두 단어 교환
C-M-t
두식을 교환
C-x C-t
두 줄을 교환

대소문자 변환 (Case Conversion)
M-- M-l
마지막 단어를 소문자로
M-- M-u
마지막 단어를 대문자로
M-- M-c
마지막 단어를 첫 단어가 대문자인 소문자로
M-l
다음 단어를 소문자로
M-u
다음 단어를 대문자로
M-c
다음 단어를 첫단어가 대문자인 소문자로
C-x C-l
영역을 소문자로
C-x C-u
영역을 대문자로

스펠링 체크
M-$
포인트의 단어를 체크하고 바로잡음
M-TAB
포인트 앞의 단어를 환성함
M-x ispell-buffer
버퍼의 각 단어의 스펠링을 검사하고 바로잡음
M-x ispell-region
영역의 스펠링을 검사하고 바로잡음
M-x ispell-change-dictionary RET dict RET
dict를 사용하여 ispell프로세스를 다시 시작함
M-x ispell-kill-ispell
Ispell프로세스를 정지

파일 순시(Visiting Files)
C-x C-f
파일 순시(Visit File)
C-x C-r
뷰어모드로 파일 순시
C-x C-v
마지막으로 읽은 파일 대신 다른 파일 순시
C-x 4 C-f
다른 윈도우를 열어 파일 순시
C-x 5 C-f
새로운 프레임을 열어 파일 순시
파일 저장(Saving Files)
C-x C-s
현재 버퍼를 읽은 파일로 저장
C-x s
모든 버퍼를 저장
M-~
현 버퍼에서 바꾼 것을 버림
C-x C-w
현재 버퍼를 원하는 파일로 저장
M-x set-visited-file-name
현재 버퍼가 저장될 때의 파일 이름 바꿈

버전 컨트롤
C-x C-q
파일을 꺼내거나 넣음
C-x v v
위와 동일
C-x v u
버퍼와 파일을 최근 버전의 것으로 되돌림
C-x v c

C-x v i
버전 컨트롤을 위해 읽은 파일을 기억함
C-c C-c
코멘트 에디트를 끝냄
C-x v a
현 디렉토리의 change log파일을 읽고 최신 버전의 엔트리로 체크인.
C-u C-x C-q version RET
현재 작업중인 파일의 버전을 선택
C-x v ~ version RET
버퍼의 버전을 확인
C-x v =
최근에 체크인된 파일과 현재 버퍼에 있는 내용 비교
C-u C-x v = file RET oldvers RET newvers RET
두 버전의 파일 비교
C-x v s name RET
name으로서 현 디렉토리의 모든 등록된 파일을 최근 저장된 버전으로 정의
C-x v r name RET
등록된 모든 파일을 꺼냄
C-x v h
파일에 헤더 넣음
C-x C-d dir-or-pattern RET
간단한 디렉토리 리스트 출력
C-u C-x C-d dir-or-pattern RET
자세한 디렉토리 리스트 출력
M-x make-directory RET dirname RET
새 디렉토리 생성
M-x delete-directory RET dirname RET
디렉토리 지움

다중 버퍼(Multiple Buffers)
C-x b buffer RET
buffer명을 갖는 버퍼 생성
C-x 4 b buffer RET
위와 동일. 단 다른 창의 버퍼.
C-x 5 b buffer RET
위와 동일. 단 다른 프레임의 버퍼.
C-x C-b
현재 존재하는 버퍼들의 목록
C-x C-q
버퍼를 읽기 전용 상태로 토글
M-x rename-buffer RET name RET
현재 버퍼의 이름을 바꿈
M-x rename-uniquely
버퍼 이름 끝에 숫자를 붙여서 이름 변경
M-x view-buffer RET buffer RET

C-x k bufname RET
bufname인 버퍼 삭제
M-x kill-some-buffers
버퍼를 하나씩 제거
M-x buffer-menu

M-x make-indirect-buffer base-buffer RET indirect-name RET
basebuffer를 기초로하는 indirect버퍼 생성

다중 창(Multiple WIndows)
C-x 2
선택된 창을 두 개로 나눔.(수직 배열)
C-x 3
선택된 창을 두 개로 나눔.(수평 배열)
C-Mouse-2

C-x o
다른 윈도우
C-M-v
다음 윈도우 스크롤
M-x compare-windows
선택된 윈도우와 다음 위도우에서 일치하지 않는 문자 찾음
Mouse-1
윈도우를 선택하지ㄴ 포인트를 옮기지 않음
C-x 4 b bufname RET
다른 위도우의 버퍼 bufname을 선택
C-x 4 C-o bufname RET
다른 윈도우의 bufname 표시. 단 그 버퍼를 선택하지 않음
C-x 4 f finename RET
파일을 열고 다른 창의 버퍼를 선택함.
C-x 4 d directory RET
다른 창에 디렉토리를 위해 임시 버퍼를 선택함.
C-x 4 m
다른 창에 메일을 시작함.
C-x 4
현재 태그 테이블에서 태그를 찾음
C-x 4 r filename RET
파일을 일기 전용으로 열고 다른 창에서 버퍼를 선택함
C-x 0
선택된 창 제거
C-x 1
선택된 프레임에서 선택 창을 제외한 나머지 창 제거
C-x ^
선택된 창을 세로로 키움
C-x }
선택된 창을 가로로 키움
Drag-Mouse-1
마우스를 가지고 윈도우 모드 라인의 높이를 변경
Mouse-2
프레임의 모든 다른 윈도우의 모드라인 제거
Mouse-3
윈도우의 모드라인 제거

들여쓰기(Indentation)
TAB
들여쓰기
LFD
RET후 TAB
M-^
두 줄 합침
C-M-o
두 줄로 나눔
M-m
공백이 아닌 다음 문자로.
C-M-같은 행에서 여러 라인 들여쓰기
M-x TAB
라인 블록을 왼쪽이나 오른쪽으로 시프트
M-i
포인트에서 다음 내정된 tab설정까지 들여쓰기
M-x indent-relative
전 줄에서 들여쓰기된 아래까지 들여쓰기

인간 언어(Human Languages)
M-f
다음 단어로
M-b
전 단어로
M-d
단어의 끝까지 지움
M-DEL
단어의 시작까지 지움
M-@
다음 단어의 끝까지 마크
M-t
두 단어를 교환
M-a
문장의 시작으로 이동
M-e
문장의 끝으로 이동
M-k
문장의 끝까지 지움
C-x DEL
문장의 시작까지 지움
M-{
전 문단의 시작으로 이동
M-}
다음 문단의 끝으로 이동
M-h
포인트를 지정하고 이문단 또는 다음 문단까지 마크
C-x [
전 페이지 경계로 이동
C-x ]
다음 페이지 경계로 이동
C-x C-p
현 페이지를 마크
C-x l
현 페이지의 줄 수 계산
M-x auto-fill-mode
자동 채움 모드(Auto Fill mode) 켜거나 끔
SPC
자동 채움 모드에서 줄 나눔
REC
M-q
현 문단 채움
C-x f
채움 행 설정
M-x fill-region
영역의 각 문단 채움
M-x fill-region-as-paragraph
전체 영역을 문단으로 생각해서 채움
M-s
줄의 중간
C-x
채움 접두어 설정
M-q
채움 접두어를 사용하여 문단 채움
M-x fill-individual-paragraphs
들여쓰기를 문단의 시작으로 생각하여 영역 채움
M-x fill-nonuniform-paragraghs
문단 분리자를 문단 시작으로 생각하여 영역 채움

프로그램의 컴파일과 테스트
M-x compile
컴파일러 실행. 에러는 '*compilation*' 버퍼에 저장
M-x grep
grep실행. 결과는 ‘*grep*'에 저장
M-x kill-compilation
자식 프로세서 정지.
M-x kill-grep
C-x '
컴파일 에러나 grep결과로 이동
RET
포인트의 에러 메시지로 이동
Mouse-2
사용자가 클릭한 에러 메시지로 이동
M-x gdb RET file RET
GDB실행
M-x perldb RET file RET
Perl인터프리터 실행.
C-c SPC
포인트가 위치한 곳에 브레이크 포인트 설정
C-c C-l
버퍼가 참고한 마지막 줄 출력
C-x C-a C-l
C-c C-s
한줄 실행. 만약 함수 호출이라면 전체 함수 수행후 정지.
C-x C-a C-s
C-c C-n

C-x C-a C-n
C-c C-i
하나의 인스트럭션 실행
C-x C-a C-i
C-c C-r
멈추지 말고 계속 실행
C-x C-a C-r
C-c C-d
브레이크 포인트 제거.
C-x C-a C-d
C-c C-t
임시 브레이크 포인트 설정
C-x C-a C-t
GDB,DBX전용 명령어
C-c <
다음 스텍 프레임 선택
C-x C-a <
C-c >

C-x C-a >
다음 내부 스택 프레임 선택
GDB전용 명령어
TAB
완전한 심볼 이름
C-c C-f
선택된 스텍 프레임에서 돌아올떄까지 프로그램 실행
C-x C-a C-f

0 Comments:

Post a Comment

<< Home