2018년 12월 23일 일요일

Kill Ring


참고: https://www.gnu.org/software/emacs/manual/html_node/emacs/Kill-Ring.html

설명


Emacs 는 잘라내기나 복사한 문자열들을 kill ring 이라는 구조로 global 공간에 보관한다
  • 잘라내기 및 복사한 문자열을 여럿 저장하고 있다가 붙여넣기 할 수 있다

Kill ring 은 global 영역이기 때문에 하나의 버퍼에서 저장한 문자열을 다른 버퍼에서 붙여넣기 할 수 있다


복사 붙여넣기


M-d (단어 단위 삭제) 또는 C-k (줄 삭제) 등의 잘라내기 또는 M-w (선택 영역 복사) 등의 kill ring 에 데이터를 밀어 넣는 작업들 이후

C-y (붙여넣기) 동작으로 현재 버퍼에 이전 데이터를 붙여넣고 곧바로 M-y 를 통해 kill ring 에 저장된 데이터 들을 순차적으로 불러올 수 있다

예)

1. C-x b temp RET - 임시 버퍼 생성

  • 존재하지 않는 버퍼 이름을 입력하면 임시 버퍼를 만들어 줌
  • 임시 버퍼는 닫을 때 저장할지 물어보지 않기 때문에 필요시 명시적으로 저장(C-x C-s)

2. 예문 입력

Hello, Bob
Hello, John
Hello, Steve


3. Bob 과 John, Steve 를 M-d (커서 위치의 단어 잘라내기) 로 잘라내기

Hello,
Hello,
Hello,

4. 붙여넣기

  • 첫번째 줄의 Hello, 끝에 커서를 옮기고 C-y (붙여넣기) 시 Steve 이 표시됨
  • 곧바로 M-y (다음 kill ring) 시 John 이 표시됨
  • 다시 M-y 시 Bob 이 표시됨
  • 다시 M-y 시 Steve 이 표시됨 (다시 돌아옴)
  • 다시 M-y 시 John 이 표시됨


Hello, John
Hello,
Hello,

5. 붙여넣기

  • 두번째 줄의 Hello, 끝에 커서를 옮기고 C-y (붙여넣기) 시 John 이 표시됨
    • 마지막 붙여넣기 한 kill ring 의 위치에서 시작
  • M-y 시 Bob 이 표시됨

Hello, John
Hello, Bob
Hello,



Kill ring 에 넣지 않고 삭제


Backspace 로 지운 경우 kill ring 에 들어가지 않음

C-space (선택 모드) 후 커서를 이동하여 원하는 만큼 선택 후 backspace 로 선택 영역을 지우면 kill ring 에 저장하지 않고 삭제


결론



  • 잘라내기한 문자열들을 여럿 저장할 수 있기 때문에 여러 문자열을 다른 버퍼로 붙여넣을 때 유용
  • 저장한 문자열이 많으면 원하는 문자열을 만나기 위해 한참 M-y 를 눌러야 하는 경우 있음






댓글 없음:

댓글 쓰기