Vi Editor

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS

FrontPageHeather ViEditor



1. Vi의 특징

Vi 계열 에디터의 경우, 무엇보다 커서 이동키가 화살표가 아니고, h,j,k,l의 네 개의 키로 이뤄진다는 특징이 있다. h와 l은 각각 왼쪽과 오른쪽의 공간적메타포가 적용되고, j와 k는 각각 아래와 위라는 각적메타포가 적용된다.

처음에는 이 배열이 그다지 직관적이지 않고 불편하다고 느낄 수 있다. 하지만 조금만 손에 익으면 커서키로 이동을 하는 것보다 몇 배 이상 능률적인 작업을 할 수 있다.

그 이유는 손과, 손가락의 동선이 최소화된다는 데 있다. 글을 입력하다가 윗 줄로 이동하기 위해서는, 일반 편집기의 경우 손을 커서키 쪽으로 떼어서 움직이고, 위 화살표를 누르고, 다시 알파벳 자판으로 돌아와야 하는 번거로움이 있다. 하지만 Vi에서는 오른손의 네개 손가락이 j,k,l,; 에 놓이는 "타자 기본 자세"에서 전혀 이동없이, 중지로 k를 한번 눌러주면 된다.

물론 화면에 'k'를 찍기 위해 누르는 것과 이동을 위해 k를 누르는 것을 구분하기 위해 두가지 모드의 구분이 필요하다. 정상모드와 입력모드가 그것인데, 양자의 모드로 토글하기 위해서는 별도의 키를 하나 더 눌러야 한다. 하지만 이 역시 타자 기본 자세에서 크게 벗어나지 않는 키들이다. 따라서, 전체적으로 봐서는 시간과 노력을 벌게 된다.

실제로 Vi 계열과 그렇지 않은 에디터를 사용하는 경우를 상대 비교한 연구가 발표되었는데, Vi의 경우 배우는 시간은 오래 걸리지만 나중에는 "편집 열반(editing nirvana)"의 상태에 들어간다고 할 정도로 신기에 가까운 속도를 보여주었다. Vi 사용자들 간에서는 우스개 소리로 텍스트 편집을 할 때 손이 보이지 않아야 비로소 Vi 전문가라는 이야기를 하곤 한다. Vi 편집기가 "손의 연장extension" (MarshallMcLuhan)이 되는 셈이다. 어떤 의도(intention)가 發하게 되면 별다른 의식작용 없이 그 의도를 성취하는 손동작이 너무도 자연스럽게 이어진다.

Vi 에디터의 디자인적 특징, 어떻게 보면 장점이라고 볼 수 있는 점은 풀다운 메뉴나 팝업 메뉴 같은 상식적인 메뉴 방식을 사용하지 않고도 많은 기능이 일반키들을 통해 녹아들어가 있다는 점이다. 이러한 특징은 전통적인 터미널 환경에서 특수키(화살표키)가 잘못 설정되어 있다고 하더라도 편집을 할 수 있다는 단점에서오는장점 또한 있다.

EmacsEditor와 함께 텍스트 처리가 유난히 많은 유닉스 진영에서 양대 산맥을 이루고 있다.

{{|
"타자 기본 자세"에서 전혀 이동없이, 중지로 k를 한번 눌러주면 된다.
|}}

이건 약간 과장 아니겠씁니까? 바로 다음 문단에서 언급되듯이, 양자 모드의 토글을 위한 별도 키를 한 번 더 누러야 하는데, 보통 ESC를 많이 쓰고, 이것도 나름대로 전혀 이동없이 라고 하기에는 무리가 있지 싶습니다. -- gerecter
  • Vim 에서는 이 문제 때문인지 CTRL-[ 를 ESC와 동일 단축키로 두고 있습니다. --NeoCoin

2. Vi와 위키

위키위키도 그렇지 않을까 생각한다. 처음에 배우기에는 더디지만 나중에는 위키위키 열반 상태를 얻을 수 있다. 사실 김창준 경우만 해도 그가 위키위키를 사용하면서 전에 하던 작업(지식관리, 약속관리,...)을 훨씬 빠르게 처리할 수 있었다. 그가 페이지와 페이지 사이를 옮겨다니고, 검색하고, 새 페이지를 만드는 속도는 "마우스로 즐겨찾기를 클릭하고 새 항목을 추가하는 속도"의 몇 곱절은 된다. 위키위키는 내 몸과 뇌의 연장이며, 그 연장선은 다른 정신과 맞닿아 있다.

3. Vi와 키보드

Vi의 특성상 alt나 ctrl 키 보다는 ESC 키를 많이 쓰는 관계로 ESC 키가 가까이 붙어있는 LG3500키보드HappyHackingKeyboard 등이 편집에 유리하다. EmacsEditor는 정반대의 양상이 나타난다.

ESC를 많이 쓰게 되지만, 그 쓰이는 빈도수에 비해 상대적으로 다른 키보다 너무나 멀리(T_T) 배치되어 있다. 원래 BillJoy가 vi를 만들 무렵의 멍청단말기(dummy terminal) 키보드의 ESC는 현재 일반적인 PC 키보드의 ` 위치가 있는 곳에 있었다고 한다. 그래서, Kils 를 비롯한 몇몇 Vi 사용자들은 ctrl+[ 으로 대치해서 쓰기도 한다. 그것도 귀찮을 경우에는 ctrl+c 를 쓰기도 한다.

윈도우에서는 잘 모르겠지만, Unix 나 Linux 터미널에서는 세팅을 통해서 키 배열을 쉽게 바꿀 수 있는 것으로 압니다. (무슨 파일을 바꾸면 되는지는 생각이 안 나네요) 말씀하신 것과 같은 이유 때문에 CapsLock 키와 Esc 를 서로 바꿔서 사용하시는 분들도 많다고 들었습니다

네추럴 키보드를 사용하는 홍차중독는 ESC키를 칠때 누른다는 느낌보다는 왼손 손목의 스냅(오른쪽에서 왼쪽으로 꺾는다.)을 이용하여 왼손 중지로 ESC키를 밀어낸다는 느낌으로 치면 한결 기분이 좋아진다고 한다.

윈도2k, xp에서 CapsLock에 Esc 할당하기
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00

복원하기
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00 

See also ViLover VimEditor

4. 경험담

매일 Vi/VimEditor를 하루 종일 쓰던 때였다. 그 때는 꿈도 Vi/VimEditor로 꿨다. 내가 꿈에서 대사를 "때리면" 손으로 i를 누르고 대사가 나가고 대사 중에 틀린 것이 있으면 ESC 후 적절하게 커서를 움직여서 글자를 지우거나 바꾸기를 했다. 80년 대 초에 한창 채팅에 중독되기 시작할 때 꿈 속에서 대사를 모조리 채팅하듯이 타이핑하던 것과 비슷하지 않나 생각한다. --김창준

익스플로어에서 글쓰다가 입력 끝났다고 Esc눌렀다가 쓴 글 다 없어지기. 한번은 이백줄 넘는 글을 썼었는 데 Esc 한번에 다 날아가 버린 적이 있죠. 아무데서나 글 다썼다고 :wq쓰기. 손으로 쓰다가 이런 적도 있습니다. -_-;; --RedPain
CTRL+F 와 CTRL+B에 중독된 나머지, UltraEdit 에서는 매크로를 이용하여 PageUp, PageDown대신 CTRL+F, CTRL+B 를 이용하고 있습니다. JBuilder에서도 마찬가지 ^^ --홍차중독


"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>