blog
October 09, 2021
아주 긴 경로에 대한 작업을 할 때, 가령 아래와 같은 명령을 입력할 수 있다.
% diff $git/lmt_c_library/contents/lmt_primitive_type/lmt_primitive_type.h lmt_primitive_type.h
나는 diff
명령어로 두 파일 $git/lmt_c_library/contents/lmt_primitive_type/lmt_primitive_type.h
와 lmt_primitive_type.h
의 차이를 보고 싶었다. 그리고 이 명령어의 결과를 보고 앞의 파일이 최신 파일이라는 것을 알게 되었다. 그래서 앞의 파일을 복사하여 뒤의 파일에 덮어쓰고 싶다. 이를 위해서는 다음과 같은 명령을 입력해야 할 것이다.
% cp $git/lmt_c_library/contents/lmt_primitive_type/lmt_primitive_type.h lmt_primitive_type.h
이 경우 이전 라인과 인자 두 개가 완전 동일하다. 그래서 일일이 입력하지 않고도 몇가지 단축키를 통해 제일 앞의 명령어만 빠르게 교체하면 된다.
<C-P>
[주석:1] 나 위 방향 화살표 키를 눌러서 히스토리(history) 에 저장된 가장 최근 명령을 불러온다.<C-A>
를 누른다.del
키나 <C-D>
로 커서에 위치한 단어를 지울 수 있다.<M-D>
[주석:2] 로 커서를 포함한 한 단어(word)[주석:3] 를 지울 수 있다.만약 두 인자의 순서를 바꾸고 싶다면 어떻게 하면 편할까?
<C-E>
로 커서를 라인 제일 뒤로 옮겨 준다.<C-W>
로 커서 앞의 단어를 삭제하자. 이 때 삭제된 문자열은 동시에 임시 버퍼에 자동으로 저장된다.<M-B>
로 현재 커서가 위치한 단어의 첫 문자로 커서를 옮겨준다.<C-Y>
로 임시 버퍼에 저장되어 있던 두 번째 인자를 붙여넣어주고, 만약 space
가 필요하다면 하나 넣어주자.% cp lmt_primitive_type.h $git/lmt_c_library/contents/lmt_primitive_type/lmt_primitive_type.h
<M-F>
<C-_>
[주석:4] 로 undo 할 수 있다![1] <C-P>
는 vim 에서 키 조합을 표현하는 방법이다. ctrl + p
를 의미한다.
[2] <M-D>
는 meta key + d
를 의미한다. meta key 는 mac terminal app 에서는 꺼짐이 기본값이다. 이를 활성화하기 위해서는 terminal app 의 환경 설정(command + ,
) 에서 Profiles > Keyboard > Use Option as Meta key
의 체크 박스를 체크하면 된다. 기능의 label 을 읽고 알 수 있듯이 option + 문자
단축키가 활성화 된다. 이제 option + d
로 <M-D>
단축키 기능을 사용할 수 있다. windows 에서 meta 키는 alt
키이다.
[3] cli 에서는 line 을 몇 개의 정해진 whitespace character
로 나누고 각각을 단어(word) 라고 한다.
[4] 나는 이 단축키가 처음에 조금 헷갈렸다. C, M, S 등 첫 문자를 보조 키(modifier key) 라고 하고, 두 번째로 표기하는 문자를 조합키라고 하는데, 조합키는 대문자처럼 shift 와 함께 눌렀을 때 입력되는 문자로 표기하는 문화가 있는 모양이다. 즉, <C-_>
는 실제로 ctrl + -
를 의미한다.