기본적인 문자열 탐색 


vim에서 특정한 문자열을 찾는 방법은 표준 모드에서 정방향으로 찾을 경우 슬래쉬(/), 역방향으로 찾을 경우 물음표(?)키를 누른 후 찾기 원하는 문자열을 입력하기만 하면 된다.


명령 라인에 /int  int라는 문자열 전방탐색

명령 라인에 ?int  int라는 문자열 후방탐색


문자열 탐색의 결과는 다음의 사진과 같다.


 

탐색된 문자열에 노란색 하이라이트가 표시된 것은 vim의 옵션에서 hlsearch 옵션이 활성화(on) 되었기 때문이다하이라이트를 없애려면 :set nohlsearch 또는 :set nohl 명령을 입력하여 해당 옵션을 비활성화(off) 하면 된다.

 

그리고 탐색이 이루어진 후 커서를 다음에 일치하는 문자열로 이동하려면 소문자 n키를 누르고 이전에 일치하는 문자열로 이동하려면  대문자 N을 누른다. , 슬래쉬(/)로 정방향 탐색을 할 경우 n키를 누르면 커서는 문서의 정방향에 있는 탐색된 문자열로 이동하고, N키는 문서의 역방향에 있는 탐색된 문자열로 이동한다. 하지만 물음표(?) 역방향 탐색을 할 경우 정반대가 되어 n은 문서의 역방향으로 이동하고 N은 문서의 정방향으로 이동하게 된다.


소문자 n  다음 일치하는 문자열로 커서 이동

대문자 N  이전 일치하는 문자열로 커서 이동


커서 위치 단어 자동 탐색


명령 모드에서 별표(*)를 누르면 커서가 위치한 단어를 자동으로 탐색한다. 이때 별표(*)를 누르는 것은 명령 라인에 /\<(커서가 위치한 문자열)\> 형식으로 입력되면서 정규표현식으로 커서가 위치한 단어를 전방 탐색하라는 명령과 동일하게 된다. 


가령, 커서가 다음 단어의 위치에 있을 때 별표(*)를 누르면

int  /\<int>\>int라는 문자열을 전방 탐색


vim의 문자열 탐색의 강력함은  정규표현식을 같이 사용할 때 그 진가가 드러나게 되므로 다음 포스팅 부터는 vim정규표현식을 공부해보도록 하자.


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


026 vim의 문자열 탐색.apkg


1997IMF 이후 영어의 중요성은 그 이전과 비교할 수 없을 정도로 중요해졌다. TOEIC 시험 점수는 사람의 가치를 재는 가장 기본적인 척도가 되었고, 영어학원은 연일 문전성시를 이루었다. 그러면서 영어가 비즈니스 환경에서 중요하게 사용되면서 사람들은 실제로 영어를 잘 할 방법을 모색하기 시작했다.


문법과 시험 위주의 공부에 대한 대안을 사람들이 모색하고 있었을 때 나온 것이 영절하(영어공부 절대로 하지마라)였다. 군대에서 진중 문고로 보게 되었는데 그 이야기의 핵심은 쓸데없는 문법공부는 배격하고 원어민처럼 되면 된다는 것이었다. 당시, 그 책을 읽었을 때 그야말로 그 자리에서 바로 완독했을 정도로 글쓴이의 주장은 신선했고 접근하기 쉽게 잘 구성되었으며 무척이나 설득력 있게 쓰여진 책이었다. 읽자마자 바로 영절하식 영어공부 방법을 요약해서 노트화 했던 기억이 아직도 생생하다. 영절하에서 제시된 영어 공부 방법은 기존의 영어 공부법을 폐기하고 올바른 길로 이끄는 혁명적인 방법처럼 느껴졌다. 기본적으로 영어 공부를 단순히 좋은 시험 점수를 받기 위한 수단이 아니라 자연스럽게 원어민처럼 되기 위한 방법으로 제시했고 그 실행방법도 단순하고 명확해 보였다. 그래서인지 많은 사람들이 영절하식 영어공부를 시도했다. 하지만 지금와서 생각해보면 나 개인의 입장에서 이 공부 방법은 그렇게 단순하고 명확하지는 않았던 것 같다. 많은 사람들이 영절하식 공부를 통하여 영어실력이 늘었다고 이야기 하지만 내 스스로 적용하면서 많은 혼란을 겪게 되었기 때문이다. 간단하게 요약하면 영절하는 공부방법을 단계별로 나눠놨는데 그 단계를 뛰어넘는 기준이나 공부해야할 공부량 등이 그다지 명확하지는 않았던 것 같다. 책으로 읽었을 때에는 쉬워보였지만 막상 실천해보면 막막하고 어리둥절한 경우가 많았고 같은 내용의 자료를 계속 들어야 하므로 무척 지루하게 느끼기도 했다. 

 

가령 영절하에서 제시한 1단계가 카세트 테이프 한 개를 그 테이프에 있는 모든 소리가 들릴 때까지 계속한다는 것인데, 해보면 소리가 다 들린다는 기준이 애매하다. 자신이 제대로 들은 것인지 확인할 수 없는데, 그것을 확인할 수 있는 스크립트를 보면 안된다. 그러니 계속 속으로 소리가 다 들린 것인지 아닌지 의심하면서 다음 단계로 나아가도 되는지 판단하지 못한다. 그리고 같은 테이프를 매일 들으니 정말 지루하다. , 이를 무의식적으로 해석하지 말라는 지침도 있어서 자신이 무의식적으로 해석하는지 점검하게 되는데 이런 경우 언어를 알아듣는 것인지 스스로 무의식적으로 독해하듯 해석하는지 잘 구분도 안 간다. 그리고 결정적으로 많은 시간과 노력이 들어가는데 스스로 발전하는지 여부를 확신할 수 없다는 점이 이 공부법의 가장 어려운 점인 것으로 보인다. 스스로 발전하는 것이 느껴지면 계속할 수 있는데, 이를 측정할 수 있는 점수도 없고 어떤 책의 진도가 나가는 것도 아니라서 더더욱 쉽게 할 수 있는 공부가 아니었다. 여튼 영절하를 시도했던 사람들이 이 공부의 어려움을 토로했고 포기하는 사람들도 많이 늘어난 것으로 안다.

 

세상을 삐딱하게 사는 나같은 사람은 영절하를 읽고 그 방법에 동의하면서도 제 입맛대로 그것을 변형해서 스스로 편한 것만 받아들인다. 당시 아무리 세상에서 영어가 중요하다고 말해도 별로 체감하지도 못했고, 솔직히 한국어로 되어 있는 정보도 소화하기 벅찼다. 사교적인 성격이 아니니 외국인 친구를 사귀는 것에도 관심이 없었다. 딱히 여행 가고 싶은 욕구도 없어서 영어가 필요하지 않았다. 당연히 영어 공부에 목숨 걸 생각도 없고 영절하식으로 최선을 다해 영어공부를 할 생각이 있을리 없었다. 그런데 영절하의 논리에는 그대로 설득되어서 영어 공부에 대한 모든 방법을 영절하의 논리를 이용하여 잘못된 공부 방법으로 규정했다. 반공부주의라고나 할까, 문제집이나 교과서를 공부하는 것이 잘못된 것이라는 신념만 강하게 형성되었기에 기존의 영어 공부는 쓸모없는 것이라고 여기면서도 영절하식 공부를 할 여건도 의욕도 없으니 그냥 영어공부를 전혀 안하게 된 것이다. 

 

그러다가 미국 드라마 열풍과 함께 좋아하는 미드에 꽂혀서 밤을 새다시피 하는 나날이 지속되기 시작했다. 재미있는 미드는 많고 현실은 개떡 같으니 매일매일 미드 삼매경이었다. 미드에 빠져서 현실을 잊고 사는 자신의 모습이 한심하게 느껴질 때마다 스스로 핑계를 댔던 것이 영어공부를 한다는 것이었다. , 미드를 보면서 그냥 미드만 보고 있자니 스스로가 너무 한심하게 느껴지니 영절하식 영어공부를 시도한다고 스스로에게 변명하면서 영절하의 공부방법을 따라해본 것이다. 그러면서 영절하식 영어공부의 지루함을 재미있는 미드로 보완하는 것이라고 스스로를 기만했다. 물론, 미드를 보다가 다시 자막을 틀기 일쑤였다. 그러다가 다시 정신이 들면 자막을 꺼보고 그러다가 결국, 발음에 주의하면서 듣는다고 스스로를 속이면서 그냥 자막 키고 봤다. 공부가 되었을 리가 없다.

 

스스로 영어 공부를 한다고 생각하기 시작하니 뭔가 하긴 해야겠다는 생각이 들었다. 그래서 결국, 미드를 통째로 녹음해서 돌아다니면서 이어폰으로 듣기 시작했다. 계속 듣다 보니 점점 잘 들리기 시작했다. 하지만 몇몇 단어는 3년 동안 절대로 들리지 않았고 컨디션에 따라서 잘 들리고 안 들리고가 반복되기 시작했다. 그 상태에서 다음 단계로 넘어가야 할지 잘 알 수 없었다. 안 들리는 단어는 전혀 안들리는데 그런 단어를 추적해서 영영 사전을 찾고 그것을 낭독하라고 되어 있었는데 결국, 못 찾고 끝났다. 스크립트나 자막을 찾아봤으면 그 단어를 찾아낼 수 있겠지만 그러면 지는 것 같았고 결국, 이러지도 저러지도 못하다가 생활이 바빠지면서 조용히 영절하식 공부는 접게 되었다. 


거진 3년간 열심히 녹음한 미드를 들었는데 영어 실력이 늘었을까? 그 부분은 조금 미묘하다 영어 문장이 자연스럽게 들리는 느낌적 느낌은 있다. 하지만 열심히 녹음하여 들은 미드를 자막없이 보기는 어려웠다. 정말 열심히 했다기 보다는 그냥 BGM식으로 움직이거나 여유로울 때만 똑같은 미드를 계속 들었던 것이지만 3년이나 똑같은 미드를 들었다면 영어 전반이 발전하진 않더라도 그 미드 정도만이라도 잘 들렸으면 성취감이 있었을 것이다. 하지만 전혀 그러지 못했다. 

문자열 정렬


vim은 기본적으로 왼쪽으로 정렬되어 있지만 다음과 같이 명령어를 명령 라인에 입력하여 가운데 정렬이나 오른쪽 정렬로 바꿀 수 있다


:left 왼쪽 정렬

:center 가운데 정렬

:right 오른쪽 정렬


vim의 정렬은 현재 화면의 너비를 기준으로 이루어진다. 아래의 그림을 보면 vim의 화면의 너비(textwidth)78으로 설정되어 있고 그에 맞추어 정렬이 이루어진 것을 확인할 수 있다.



화면의 너비(textwidth)tw 옵션에 값을 할당하여 변경할 수 있다.



vim 정렬의 재미있는 점은 화면에서 문자열 정렬이 적용될 행의 너비(칸수)를 직접 결정할 수 있다는 점이다. , 기존에 설정된 화면의 너비(tw)를 무시하고, 한 행의 길이를 첫 칸부터 원하는 칸수 만큼 설정하고 그 칸에서 가운데, 오른쪽으로 정렬할 수 있다

 

:center 50 전체 50 중 가운데 정렬

:right 100 전체 100 중 오른쪽 정렬(tw 값으로 정의된 화면의 너비가 78칸이지만 이를 무시하고 100칸까지 이동함)




Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



+ Recent posts