프로그래밍/Vim

    [Vim] 대소문자 변경하기

    개요 안녕하세요 피터입니다. 오늘은 vim에서 대문자 또는 소문자로 일괄적으로 변경하는 방법에 대해서 알려드리겠습니다. 전체적으로 대문자 또는 소문자로 변경하는 것도 가능하지만 대문자인 것은 소문자로 소문자인 것은 대문자로 반전(inverse)하는 것도 가능합니다. vim 에서 대소문자를 변경하는 방법은 크게 두 가지가 있습니다. 첫 번째는 일반 모드에서 명령어를 입력해서 변경하는 방법이고, 두 번째는 비주얼 모드에서 영역을 지정하고 변경하는 방법입니다. 일반 모드 일반 모드에서 대소문자를 변경하는 명령어는 아래와 같습니다. Command Description Examples gU 에 해당하는 범위의 문자를 대문자로 변경 gUU : 현재 라인 전체 대문자로 변경 gUw : 현재 커서부터 단어의 끝까지 대..

    [Vim] 문자열 검색 및 바꾸기

    안녕하세요 피터입니다. 오늘은 vim에서 특정 문자열을 검색하거나 원하는 문자열로 변경하는 방법을 소개해드리겠습니다. 개요 vim은 다른 텍스트 에디터들이 기본적으로 제공하는 "찾기 및 바꾸기"와 같이 현재 열려 있는 문서 내에서 특정 문자열을 검색하거나 원하는 문자열로 바꿀 수 있습니다. vim이 강력한 이유는 바로 찾기 및 바꾸기 기능에서 정규 표현식(Regular Expression)을 활용할 수 있기 때문입니다. 문자열 검색하기 vim에서 특정 문자열을 검색하기 위해서는 일반모드에서 슬래시( / ) 키를 이용하여 검색 대화창을 띄워야 합니다. 화면 하단에 / 문자가 표시되며 커서가 활성화 되면 원하는 검색어를 입력할 수 있습니다. 간단하게 score 라는 검색어를 입력해보겠습니다. 위와 같이 문서..

    [Vim] 범위 지정하기

    안녕하세요 피터입니다.오늘은 vim에서 범위를 지정하는 방법을 소개해드리겠습니다.앞어 강좌에서 복사, 붙여넣기, 삭제 등의 기능을 살펴봤는데요. 이 기능들을 좀 더 효과적으로 사용하기 위해서는 범위 지정에 대해 알고 있어야 합니다. 범위 지정하기vim에서 범위를 지정하는 방법은 크게 두 가지 방법이 있습니다. 첫 번째 방법은 명령행 모드에서 명령어를 입력할 때 범위를 지정하는 방법이고, 두 번째 방법은 비주얼 모드에서 범위를 선택해서 지정하는 방법입니다. 명령어를 특정 범위에 적용하는 동작은 같지만 사용하는 방법이 다릅니다. 한 가지 방법만 알고 있어도 사용하는데 크게 문제는 없으나, 상황에 따라 더 편리한 방법이 존재하고 별로 어렵지도 않으니 두 가지 방법 모두 익혀두시고 사용하시기 바랍니다. 명령행 ..

    [Vim] 이전 명령어 반복 수행

    안녕하세요 Peter입니다. 오늘은 Vim에서 이전에 했던 동작을 반복하는 명령어를 소개해드리겠습니다. 바로 마침표(.) 명령인데요. 이 명령어를 통해 이전 작업을 계속 반복시킬 수 있습니다. 반복되는 이전 작업은 다음과 같습니다. 동작모드 반복되는 이전 작업 일반모드 바로 전에 실행된 명령어 키 반복 입력모드 키를 누르기 전까지 입력된 내용 반복 예를들면 일반모드에서 o 키를 눌러 입력모드로 전환한 뒤 "test" 라고 입력하고 키를 눌러 일반모드로 돌아온 뒤, 마침표 '.' 키를 누르면 한 행이 개행되면서 "test"라고 입력되는 것을 볼 수 있습니다. 마찬가지로 일반모드에서 dd 를 눌러서 한 행을 삭제 한 다음 마침표 '.' 를 누르면 dd 명령을 실행했을 때와 마찬가지로 한 행씩 삭제되는 것을 ..

    [Vim] 복사(Copy), 붙여넣기(Paste), 삭제(Delete), 실행취소(Undo)

    안녕하세요 피터입니다.오늘은 문서 편집시 필수 기능이라고 할 수 있는 복사, 붙여넣기, 삭제, 실행취소 기능에 대해서 설명드리겠습니다. Vim 의 편집 기능코딩을 포함해서 문서 작업을 하다 보면 이전에 썼던 내용을 재사용해야 하는 일이 비일비재하게 일어납니다. 매번 같은 문장을 타이핑하기에는 에너지와 시간이 많이 낭비되죠. 그래서 대부분의 문서 편집기에는 일명 복붙이라고 칭하는 복사, 붙여넣기 기능이 존재합니다. 여러 행을 한번에 삭제하는 기능도 필수적이구요. 또한 작업을 하다가 실수로 잘못 지우거나 덮어쓰는 경우 이전 상태로 돌아가는 기능이 필요할 때가 많습니다. 실행취소 기능 또한 대부분의 문서 편집기에 포함되어 있습니다. (심지어 이런 기능은 메모장에도 있습니다) 그런데 텍스트 에디터계의 조상뻘인 ..

    [Vim] 커서 이동

    vim에서 커서 이동하기vim가 개발된 시기에는 마우스가 없었기 때문에 커서를 조작하기 위해서는 키보드를 이용해야 합니다. 일반적으로 키보드의 화살표 키나 PageUP/Down, Home, End 키 등을 사용해서 커서이동을 할 수 있습니다. 그런데 vim에서는 이 밖에도 별도의 영문 키로 커서 이동이 가능한데요, 이것은 vim이 개발되던 당시의 키보드는 텐키(키보드 우측에 숫자가 있는 부분)나 화살표 키 등이 없는 형태였기 때문에 별도의 키로 구현이 된 것입니다. 요즘 나오는 키보드에 화살표키가 없는 경우는 굉장히 드물지만 오른손의 동선을 최소화할 수 있고 향후 포스팅할 자동화 매크로 기능에서도 영문자 키를 이용한 커서 이동이 활용되기 때문에 알아두시는게 좋습니다. vim 에서 사용되는 모든 명령은 대..

    [Vim] 파일 열기, 저장, 종료

    이제 본격적으로 vim 의 사용법에 대해 알아보겠습니다. 파일 열기 리눅스 쉘 프롬프트 상에서 vim hello.c 이렇게 명령어를 입력하면 vim 이 실행되면서 hello.c 파일이 열립니다. 만약에 hello.c 파일이 존재하지 않는 다면 새로 생성합니다. 이렇게 새로 생성하게 되면 하단에 “hello.c” [새 파일] 이라고 표시가 됩니다. 하지만 vim에서 저장을 하지 않으면 실제로 파일이 생성되지는 않습니다. (메모리 상에만 존재하는 거죠) vim이 처음 실행되면 일반 모드로 시작되기 때문에 바로 편집을 할 수 없습니다. i 키를 통해 입력 모드로 전환해서 편집을 해보겠습니다. 입력 모드로 진입하면 하단에 -- 끼워넣기 -- 라고 표시가 됩니다. (한글이나 워드 등에서 삽입 모드와 같습니다) 저..

    [Vim] 모드 이해

    Vim을 이해하려면 vim에 존재하는 여러 가지 모드(Mode)를 이해해야 합니다. 이러한 모드가 vim의 가장 큰 특징이라고 할 수 있습니다. 여러 모드들로 인해 강력한 기능을 수행할 수 있지만 vim을 배우려는 사람들에게 진입장벽이 되는 것도 사실입니다. 때문에 vim의 러닝커브(Learning curve)는 다른 에디터에 비해 남다를 수 밖에 없는데요.이를 재밌게 표현한 그림이 있어서 소개해드립니다. 조금 과장되긴 했지만 그만큼 vim과 emacs가 강력하지만 익숙하게 다루는 게 힘들다는 것을 잘 표현하고 있네요. 사실 저도 vim을 처음 실행했을 때 바로 문서 편집이 안되서 당황했던 기억이 납니다. 그럼 이제부터 vim의 모드에 대해 간략하게 설명드리겠습니다.vim에는 굉장히 다양한 모드가 있는데..