쿨한 기능이죠. 한편 복사한 줄로 이동하는 게 왜 두개지? 하는 의문을 갖는 분도 있을 것 같아요. vim mark중에는 이렇게 짝을 이루는 것들이 있습니다. 그리고 여는 쪽이 시작, 닫는 쪽이 마지막을 의미합니다. 즉 '[ 는 복사한 문자열의 시작지점, ']는 복사한 문자열의 끝나는 지점.
이걸 알아두면 다른 괄호 마크도 같이 이해가 됩니다. 근데 '( ') '{ '} 는 텍스트오브젝트가 있어서 잘 안 쓰고, `< `>는 종종 매우 편리하게 사용할 수 있습니다. 이것이 가장 최근 비주얼 모드로 선택했던 영역의 마크. 마우스 모드를 켜도 돌아갑니다. 드래그해서 선택한 영역을 기억하는거죠.
이게 무슨 얘기냐면 특정 영역을 선택했다가, 선택을 풀고 다른 거 하다가 `< 를 입력하면 선택했던 영역의 시작점으로 커서가 점프한다는 뜻. 오오 그렇다면 `<v`> 하면 그 영역을 다시 선택할 수 있겠네요? 그렇습니다. 그런데 이렇게 하면 키를 5번 눌러야 하잖아요? 이걸 줄인 것이 gv 입니다.
gv를 사용하는 모습을 영상으로 찍어 봤습니다.
1. vip 로 패러그래프 비주얼 모드 선택 2. L 로 마지막 줄로 이동 3. 아무거나 입력하다가 4. gv 로 처음 선택한 영역 다시 선택
비주얼 모드 이야기가 나온 김에 o 하나 더 얹어봅니다. NORMAL에서 o O 는 new line을 만드는... 자주 쓰지만 꽤 평범한 기능을 제공하죠. 그런데 VISUAL 모드에서 o 는 다른 에디터에서는 보기 힘든 기능 하나를 제공합니다. 그것은 바로 선택 영역 내 커서 점프입니다. 범위를 쭉 선택하고 나서
커서를 옮기면 범위 시작 지점은 못 바꾸고 범위 끝 지점만 바꿀 수 있죠. 그런데 o 를 누르면 시작 지점으로 커서가 점프해서 시작 지점도 바꿀 수 있게 해줍니다. 다시 o 누르면 끝 지점으로 돌아가고... 아 이걸 말로는 설명이 힘든데 영상 찍고 다시 올게요.
o 를 사용해서 선택 영역의 시작~끝을 왔다갔다할 수 있고, 만약 블록 비주얼 모드(사각형 선택 모드)라면 O 를 눌러서 반대편 각으로 이동하는 것도 가능합니다.
물론 마우스로 선택했을 때도 o가 됩니다. vim에서 set mouse=a 로 설정해두면 다른 에디터처럼 마우스를 쓸 수 있어요. 전 대체로 키보드를 쓰긴 하지만 그때그때 편하게 쓸 수 있는 건 다 동원하는 편이라 vim에서도 마우스를 설정해놓고 씁니다.
이 이야기의 시작은 '[ '] 그리고 '< '> 였죠. 이 중에서 비주얼 마크인 '< '> 로 돌아가보죠. 선택한 영역을 기억한다는 건 재선택이 가능하다는 점에서 상당한 매력이 있습니다. 그런데 흥미로운 것은 이 재선택이 눈에 보이지 않는 방식으로도 가능하다는 사실. '< '> 를 :s 와 쓸 수 있습니다.
보통 visual 모드로 선택을 한 다음 :s 로 substitute를 하려 하면 커맨드 라인에 이렇게 나옵니다. 왼쪽의 range 표기를 보면 '<,'> 이렇게 나오죠. range에 '< '> 를 쓰고 있다는 것인데, 잘 생각해보면 지금 선택중이 아니어도, 아까 선택한 거라면 :s 를 사용할 수 있다는 것을 알 수 있습니다.
아마 보통은 선택을 해놓고 replace를 하려 할 때 바로 :s 를 쓸 거에요. 근데 뭐 다른 곳에 클릭을 했다던가 해서 선택이 풀리면 아 짜증나 하면서 다시 선택하는 경우가 있죠? vim에서는 걍 '<,'> 마크를 쓰면 재선택이 필요 없습니다. 아 물론 gv:s 해도 되고요.
2022년 연말 내내 건강 생각만 했다. 건강문제 하나를 해결하니 다른 건강문제들이 더 잘 드러나게 되어 많은 생각을 하고 있다. 그리고 내가 휴식을 잘 취하지 못했다는 것도 깨닫게 되었다. 나는 항상 잠을 잘 때에만 눕는데, 병원에 입원했다 퇴원하니 누워 쉰다는 것의 효과를 체험하게 되었다.
생각해보면 나는 지난 십 몇년 간 주말에도 휴일에도 휴가중에도 누워서 쉰 적이 거의 없었다. 보통 그런 시간에도 책을 읽거나 산책을 하거나 글을 쓰거나 코딩을 하거나 했다. 나는 누워서 쉬는 걸 생각을 못하는 지점까지 이르렀던 것 같다. 그런데 만약 "누워서 쉬는 것 = 진짜로 쉬는 것"이라면?
그러면 나는 아주 오랫동안 진짜로 쉬지 않은 것이다. 심지어 진짜로 쉴 수 있는 기회가 꽤 많았는데도 그러지 않은 것. 3일간 병원에 입원했다 퇴원하고, 이후 진통제를 며칠 먹고 잠을 푹 잔 다음 몸 상태가 굉장히 달라진 것을 느꼈다.
자학은 이 정도로 하고. 생각해보면 원인은 뻔한데, 그냥 재미가 없으니 생각이 자꾸 자기 자신에게서 원인을 찾으려고 파고들고 있는 것이다.
그래서 마음에 들지 않는 자신의 특성을 하나 하나 뒤집어가며 아하 이거 때문이구나 오 이것도 원인이겠네 하고 있는 셈인데, 어느 정도 유효할 수는 있겠지만 이러다 보면 모든 원인을 자기 자신에게서만 수집하고 탐색을 종료할 수 있다. 하지만 세상 일이 어디 자기 자신의 마음에서만 비롯되나.
이것도 정도껏 해야 하는 것. TV가 왜 고장났나?를 파고들다 리모콘을 소중히 다루지 않았던 나 자신의 경솔함과 돌머리스러움을 발견하고 꺼이꺼이 울어봤자 나 혼자만 아프고 TV는 고쳐지지 않는다. 이럴 땐 그냥 고객센터 전화해서 예약을 잡고, 잠시 우울한 다음 다른 일을 하러 가는 것이 낫겠지.
지금보다 더 잘할 수 있는 분야가 있을 것 같은데… 생각해보면 나는 놀고 쉬는 것도 잘 못한다. 뭘 해야 잘 할 수 있을까. 뭘 해야 그러면서도 재미가 있을까. 요즘은 재미있는게 하나도 없고 모든 것이 지루하게 느껴진다.
2019~2020년에는 회사 일이 아주 재밌었다. 거의 매일 다음날이 기대됐고 출근이 즐거웠다. 퇴근 후에도 다음날, 다음달을 위해 고민하고 (그 과정에서 건강이 꽤 상하긴 했지만) 그 과정이 아주 재밌었다. 동료들과도 굉장히 친해져서 다같이 힘을 합쳐 전진하는 느낌이 좋았다.