Categories
Vim

Vim 의 치환 명령으로 영문자를 대문자나 소문자로 바꾸기

vi 의 바꾸기 명령으로 대문자를 소문자로 바꾸거나 소문자를 대문자로 바꾸는 방법을 알아보자.

1. 대문자로 바꾸기

문서에서 xtmci.com 을 찾아 모두 XTMCI.COM 으로 바꾸어 보자.

:%s/\(xtmci\).\(com\)/\U\1.\2/gc

여기서 \1 은 첫번째 부표현식 (sub expression) 으로 xtmci 를 가리킨다. \2 는 두번째 부표현식으로 com 을 가리킨다. \U 는 뒤에 오는 문자들을 모두 대문자로 바꾼다.

아래 명령은 xtmci.com 을 XTMCI.com 으로 바꾼다.

:%s/\(xtmci\).\(com\)/\U\1.\e\2/gc

여기서 \e 는 대소문자 변환을 중단시킨다. 그래서 com 은 대문자로 바뀌지 않은 것이다. \e 대신 \E 를 사용해도 된다.

아래 명령은 xtmci.com 을 Xtmci.com 으로 바꾼다.

:%s/\(xtmci\).\(com\)/\u\1.\2/gc

여기서 \u 는 뒤에 오는 문자 하나만 대문자로 바꾼다. \e 나 \E 를 사용하지 않아도 나머지 문자들은 바뀌지 않는다.

아래 명령은 xtmci.com 을 xtmci.COM 으로 바꾼다.

:%s/\(xtmci\).\(com\)/\1.\U\2/gc

아래 명령은 xtmci.com 을 xtmci.Com 으로 바꾼다.

:%s/\(xtmci\).\(com\)/\1.\u\2/gc

2. 소문자로 바꾸기

소문자로 바꾸는 방법은 대문자로 바꾸는 방법과 비슷하다.

\U 대신 \L 을 쓰고 \u 대신 \l (소문자 엘) 을 쓴다는 점만 다르다.

XTMCI.COM 을 xTMCI.cOM 으로 바꾸어 보자.

:%s/\(XTMCI\).\(COM\)/\l\1.\l\2/gc

여기서 \l (소문자 엘) 은 뒤에 오는 문자 하나만 소문자로 바꾼다.

Categories
Vim

vi 에서 사용자 정의 키 매핑 사용하기

vi 에서 사용자정의 키 매핑을 사용하는 방법을 알아본다.

F8 키를 누르면 현재 날짜와 시간이 입력되도록 해 보자.

vi 의 커맨드 라인에서 아래와 같이 입력한다.

:map <F8> :read !date<CR>

map 은 키 매핑을 정의하는 명령이다.

<F8> 은 F8 키를 누른다는 의미이다.

:read !date<CR> 부분을 살펴보자.

: 는 vi 의 커맨드 라인을 시작한다.

read 는 명령의 출력 결과를 현재 커서 아래에 삽입한다.

!date 는 vi 내부에서 실행되는 date 명령이다.

<CR> 는 엔터 키를 누르는 것과 같다.

아래 명령으로 <CR> 과 같은 키보드 키의 표기법을 확인할 수 있다.

:help key-notation

키 매핑을 정의하고 나서 기본 모드에서 F8 키를 눌러 보자. 현재 커서의 아래 줄에 날짜와 시간이 삽입될 것이다.

Sat 08 Oct 2022 06:24:32 AM KST

키 매핑은 기본 모드에서 사용한다. 입력 모드에서는 효과가 없다.

map 명령만 실행해 보자.

:map

현재 정의되어 있는 모든 키 매핑의 리스트가 출력될 것이다.

커맨드 라인에서 정의한 키 매핑은 해당 키 매핑을 정의한 세션에서만 사용 가능하다. vi 를 재시작하면 사용할 수 없다.

키 매핑을 ~/.vimrc 파일에 등록해 두면 영구적으로 사용 가능하게 된다.

~/.vimrc 파일을 열고 아래 내용을 추가한다.

map <F8> :read !date<CR>

이렇게 해 두면 vi 가 시작될 때마다 해당 키 매핑이 정의될 것이다.

vi 를 재시작하지 않고 ~/.vimrc 파일에 정의한 키 매핑을 사용할 수도 있다.

vi 커맨드 라인에서 아래 명령을 실행하면 된다.

:!source ~/.vimrc