OS X를 위한 Vim. MacVim

2008/08/19 00:00

사용자 삽입 이미지
Vim은 Vim 홈페이지에서 플랫폼 별로 다운 받아서 설치하여 사용할 수 있습니다. 하지만 OSX에서는 OSX에 특화된 Vim을 사용할 수 있는데 그것이 바로 맥빔(MacVim)입니다. 맥빔은 여기에서 다운 받을 수 있습니다. 빔 공식 페이지보다 살짝 느리게 판올림되기는 하지만, OSX에서는 GVim보다는 맥빔을 설치하여 사용하시는 것을 추천합니다. 현재 이글을 쓰는 시점에서는 7.2버전으로 판올림 되어 배포되고 있습니다.

 맥빔은 콘솔에서 사용하는 Vim 보다는 GVim과 유사합니다. 여기에 몇가지 기능이 추가 되어 있습니다. 이에 대해서 조금 설명해 보겠습니다. 좀 더 자세한 내용은 MacVim을 수행하고 :h macvim을 입력하면 Vim도움말 형식으로 보실 수 있습니다.

전체화면 보기

 맥빔은 풀스크린(전체화면 보기)를 지원합니다. IE의 전체화면 보기와 유사하게 전체화면 보기로 설정하면 맥빔히 화면 가득하게 나오게 됩니다. 맥빔을 시작하고 :set fullscreen 또는 :set fu 를 입력하시면 전체화면 보기로 전환 됩니다. 전체화면에서 다시 원래 화면으로 돌아오려면 :set nofullscreen 또는 :set nofu를 입력하십시오.
 전체화면을 수행하면 맥빔의 세로 길이는 기본적으로 늘어나는 반면 가로 화면은 기존의 너비와 동일하고 화면의 나머지 여백을 검은색으로 칠하여 보여줍니다. fuoptions을 설정하면 이를 변경할 수 있습니다. fuoptions는 maxvert, maxhorz를 사용할 수 있습니다. 전체화면에서 가로와 세로 둘 다 늘어나게 하려면 전체화면으로 전환하기 전에 :set fuoptions=maxvert,maxhorz를 입력한 후에 전체화면으로 전환하면 됩니다.

창을 투명하게

  Leopard에 있는 터미널과 유사하게 맥빔도 맥빔의 클라이언트 영역을 투명하게 할 수 있습니다. 이는 transparency를 설정하면 됩니다.  transparency값은 0~100 사이의 정수로 투명한 정도를 설정할 수 있습니다. 100이 가장 투명도가 높은 다시 말하면, 창이 완전히 투명하게 됩니다. 이 값은 기본값이 0입니다. 예를 들어 :set transparency=10 과 같이 설정하여 사용합니다. transparency 값을 100으로 하면 완전하게 투명은 되지만 다른 창에서 맥빔으로 전환시 클라이언트 영역을 클릭하면 전환이 안 되거나, 다른창으로 이동 시에 줄이 나타나는 것과 같은 버그(?)가 있습니다.

한글입력 버그?

 맥빔을 설치하고 별다른 설정 없이 바로 실행하면  OSX의 IME와 맥빔이 엉켜서 오작동을 보입니다. 또 빔의 검색을 수행하는 슬러시(/)를 입력하면 영문 입력 상태에서 한글로 변환되어 한글이 입력되는 현상이 있습니다. 이 문제를 해결하는 방법이 있습니다.
 간단하게는 :set imd(또는 :set imdiable)를 수행하면 됩니다.  이 설정을 사용하면 맥빔이 OSX의 IM만 사용합니다.
또는 다음과 같은 설정을 사용하시면 됩니다.
set noimd
set imi=1
set ims=-1

하나하나 살펴 보겠습니다.
noimd는 위에서 설명한 imd와 반대 설정입니다.
imi (또는 iminsert)는 삽입모드(Insert Mode)에서의 IM을 설정합니다. imi에 할당되는 값은 0, 1, 2가 있습니다.

  • 0은 :lmap을 비활성, IM도 비활성.
  • 1은 :lmap은 활성, IM은 비활성.
  • 2는 :lmap은 비활성, IM은 활성.

imi를 0으로 설정하면 한글을 입력할 수 없습니다. lmap과 IM 둘 다 비활성이라서 영문만 입력이 가능하고 한영 변환을 시켜도 바로 영문으로 돌아옵니다. 2가 제대로 작동 된다면 정말 좋을 것 같습니다만 이 설정도 가끔 오작동을 일으킵니다. 그래서 1로 설정하여 사용하면 됩니다.
ims는 검색(/) 패턴 입력할 때의 IM을 설정합니다. ims에 설정 가능한 값은 위 imi에 설정 가능한 값과 같습니다. 여기에 -1이 추가되는데, 이 뜻은 imi와 같은 설정이라는 뜻입니다. 즉 ims를 -1로 설정하면  imi가 0이면 ims도 0으로, imi가 1이면 ims도 1이 설정된 것으로 작동합니다.
이 설정이 set imd보다 좋은 점은 입력모드에서 한글을 입력하다 ESC키로 입력모드를 나가면 바로 영문으로 전환 되어 Vim명령을 바로 쓸 수 있다는 것입니다. 다만 다시 입력모드로 돌아가도 영문 입력인체로 남아 있습니다. 만일 메뉴얼처럼 설정을 2로 했을 때 정상적으로 작동한다면, 입력모드에서 한글을 입력하다가 ESC로 입력 모드를 나간 뒤,  다른 명령을 수행한 후 다시 입력모드로 돌아가면 바로 한글이 입력할 수 있습니다.


이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/08/19 00:00 2008/08/19 00:00
by letorah
category : Vim

[Vim] 들여쓰기 및 내어쓰기를 다른 편집기처럼

2008/07/09 02:33

사용자 삽입 이미지
들여쓰기/내어쓰기

Vim에서 들여쓰기/내어쓰기는 Visual Selection을 하여 > 또는 < 를 사용하면 됩니다. 문제는 들여쓰기를 여러 번 해야 하는 경우입니다. 감각이 좋으면 '3번 들여쓰기 하면 되겠다'와 같이 한눈에 몇번 할지를 알 수 있겠지만, 범인인 저로서는 불가능 하답니다.
 물론, 선택한 영역을 다시 선택하는 gv를 사용하면 됩니다. 그래도 다른 편집기의 들여쓰기/내어쓰기보다 불편합니다.
다른 편집기 처럼 선택했던 블럭을 그대로 유지하고 싶으면 아래처럼 >, <에 대한 키맵을 사용하면 됩니다.
:vnoremap > >gv
:vnoremap < <gv

저는 개인적으로 vimrc파일에 저장하여 사용하고 있습니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/07/09 02:33 2008/07/09 02:33
by letorah
category : Vim

[Vim] 찾기 후 바꾸기

2008/07/04 06:27

Vim
 찾은 후에 그 단어를 다시 바꾸기 명령을 입력하는 경우가 많다. 그냥 타이핑을 열심히 하면 되긴 하는데 단어가 길거나 비슷한 단어가 연거푸 나오는 경우 오타를 내기 쉽다. 이 경우에 사용하는 것이 Ctrl + r,w(Ctrl 누르면서 r과 w를 순서대로 입력)이다. 이 명령은 이전에 찾았던 것을 그대로 붙여넣어 준다.


 예를들어 naver라는 단어를 찾기를 수행한 후에 google로 바꾸는 다음의 경우를 생각해 보자.
  • /naver를 입력하고 naver를 찾는다.
  • 찾아 보니 google이 들어갈 자리에 naver가 들어가 있는 것은 보고 바꿔야 한다고 생각한다.
  • :%s/naver/google/g 로 naver를 google로 변경한다.
여기서 관심 사항은 마지막 부분이다. naver를 두번이나 입력을 하고 있다. naver 정도의 짧은 단어는 문제가 되지 않겠지만, teamManagement와 같은 긴 단어인 경우에는 오타가 발생할 가능성도 있다. 또 복잡한 정규식을 입력하는 경우라면 더욱 그러할 것이다. 이때 우리는 두번째 입력하는 naver 대신에 Ctrl + r,w를 입력하면 된다. 즉
:%s/Ctrl +r,w/google/g 로 입력하면 된다는 말이다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/07/04 06:27 2008/07/04 06:27
by letorah
category : Vim

[Vim] 찾기 및 바꾸기

2008/07/04 06:15

사용자 삽입 이미지
VIM에서 찾기 및 치환 기능은 보통의 편집기들 보다 그 기능이 막강하다.

찾기

찾기는 보통 모드(Normal Mode)에서 사선 기호(/), 또는 물음표(?) 뒤에 찾는 말 또는 정규식을 쓰면 검색이 된다. 사선 기호(/)는 순방향으로(아래로), 물음표(?)는 역방향으로(위로) 찾는다. 예를 들어, love라는 단어를 검색하는 경우에는 다음과 같다.
/love
하이라이트(HighLight, 강조 또는 돋보이기?)기능이 켜져 있으면 찾는 단어는 하이라이트된다. 그리고 다음 찾는 단어로의 이동은 보통모드에서 n 또는 N을 사용하면 된다.

바꾸기

바꾸기는 실행 모드(Excute Mode)에서 s/찾을 말/바꿀 말 를 사용한다.
대체로 다음과 명령을 사용한다.
:1,$s/old/new/g
위 명령은 파일 전체에서 old를 new로 바꾸라는 명령이다. 하나하나 살펴보자
  • : 는 실행모드로 바꾸는 것이다.
  • 1,$ 는 1행에서 마지막행까지는 의미한다. 이를 줄여 %로 쓰기도 한다. 지정하지 않는 경우에는 커서가 위치한 현재 행만 수행한다.
  • s 는 바꾸다(substitute)라는 뜻의다.
  • /old 바꿀 말이다. 여기서는 'old'라는 단어이다.
  • /new 바뀔 말이다. 여기서는 'new'라는 단어이다.
  • /g 바꾸기의 다른 부가 기능을 나타낸다. g는 globally를 뜻하며 검색된 부분을 전부 바꾸라는 뜻이다. 이외에 바꿀지 여부를 물어보는 c가 있다.
이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/07/04 06:15 2008/07/04 06:15
by letorah
category : Vim

[Vim] Visual Selection

2008/07/04 05:33

사용자 삽입 이미지
VIM에서 Visual Selection(이하 비주얼 셀(실)렉션)이란 시각적으로 문자를 선택할 수 있는 기능을 뜻한다. 일반적으로 블럭지정이라고 부른다. 비주얼 셀렉션은 v 또는 V로 지정한다. 소문자 v는 글자 단위로 선택할 수 있으며, 대문자 V는 행 단위로 선택이 가능하다. 또한 Ctrl + v(윈도에서는 Ctrl + q)는 EditPlus의 칸단위 선택을 할 수 있다.
그리고 바로 이전에 선택했던 곳을 다시 선택하는 명령은 gv이다.

v : 글자 단위 선택
V : 행단위 선택
Ctrl + v (q) : 칸단위 선택
gv : 이전 선택 영역 다시 선택



이올린에 북마크하기(0) 이올린에 추천하기(0)
2008/07/04 05:33 2008/07/04 05:33
by letorah
category : Vim