행복한 아빠

Vi를 좋아하시는 분들을 위하여 본문

잡다한기록

Vi를 좋아하시는 분들을 위하여

행복한아빠 2016. 9. 26. 12:06


(출처: http://www.redbubble.com/shop/vim+t-shirts)


오랜~만에 개발과 시스템 작업할 일이 있어 주요도구가 파워포인트, 키노트 에서 개발도구들로 바뀌었습니다. 그래서 그동안 내 컴퓨터에 없었던 개발관련 설정 중 기본적인 에디터 관련 설정을 기록해 둡니다. 뭐 매번 찾기도 귀찮으니...

개발도구는 여러 개 있을지라도 에디터 관련 설정은 일단 Vim으로 맞춥니다.


내가 Vi를 좋아하는 이유

마우스

내 책상은 지저분합니다. 나는 노트에 그림을 그리거나 적는 습관이 있어 보통 마우스가 있어야할 오른쪽 자리에 노트가 있습니다. 도대체 마우스 놓을 자리가 없습니다.



(연출사진 흠흠..)



Vi를 사용하면 마우스로 손이 가는 경우가 현저히 떨어집니다. 그냥 키보드에서 손 뗄 필요가 별로 없습니다. 저 멀리 있는 방향키나 Function 키도 별 쓸일이 없습니다. (운동량이 떨어지니 건강에 좋지 않겠네요 ㅡ.,-;)



에디터(또는 IDE) 변경

개발도구 바꿀 때마다 고생을 합니다. 십년넘게 eclipse 쓰다가 IntelliJ 바꾸니 그동안 익숙했던 기능들 버리기도 아깝고 새 환경에 적응하기도 어렵네요. 다른 것보다도 에디팅 기능들은 손에 익었던 것으로 하면 휘리릭~ 인데...

잘 찾아보면 대부분의 유명 도구들은 Vim 플러그인들을 제공합니다. 이것들을 이용하면 에디팅에서는 기존의 생산성과 편리함을 그대로 가지고 갈 수 있습니다.



OS 변경

윈도우즈에서 맥으로 본격적으로 옮긴지 1년정도인데 이제는 윈도우가 어색합니다. 그리고 서버를 다룰 때에는 linux 계열을 써야 합니다. 윈도우에는 notepad가, 맥에는 텍스트편집기가, linux에는 nano 정도가 있는데 세 가지 모두 이질적입니다.

그냥 Vim 쓰는게 훨 좋죠. 윈도우를 제외하고는 Vim이야 설치된 경우가 많으니 별 무리없이 사용할 수 있습니다.

(아무 것도 설치되지 않은 윈도우 서버 다룰 때를 위하여 notepad 익힙시다. ㅡ.,ㅡ)



내 컴퓨터 Vi 관련 설정 들

Vim

Vim을 사용할 때의 기본설정(~/.vimrc)입니다. Python에 맞춘 감이 있네요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
" Python 파일일 경우 tab 설정, 폴딩설정
au BufRead,BufNewFile *.py set expandtab
au BufRead,BufNewFile *.py setlocal foldmethod=indent
 
set expandtab           " 탭을 스페이스 처리
set tabstop=4           " 탭당 4개 스페이스
set softtabstop=4
set shiftwidth=4        " Auto indent에서 스페이스 개수
set autoindent          " Auto indent
 
" 백스페이스 강화
set backspace=indent,eol,start
 
set ruler               " show line and column number
set showcmd             " show (partial) command in status line
 
" Syntax Highlighting
if has("syntax")
    syntax on
endif
 
set nu                  " 라이번호
set hlsearch            " 검색어 하이라이팅
set showmatch           " 일치하는 괄호 하이라이팅
 
" Vim Color schema
colorscheme jellybeans
 
" 마지막 편집 위치 복원 기능
au BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "norm g`\"" |
\ endif
 
set laststatus=2 " 상태바 표시를 항상한다
set statusline=\ %<%l:%v\ [%P]%=%a\ %h%m%r\ %F\
cs


(참고로 27 라인 colorschema 파일은 ~/.vim/colors 밑에 넣으시면 됩니다. 저는 https://github.com/nanotech/jellybeans.vim 사용합니다.)


Shell

Command line 작업할 일이 많은데 command line에서도 vi mode가 훨 사용하기 쉽고 빠릅니다. (~/.bash_profile)

1
set -o vi
cs



Python Shell

Python이나 Django 개발하다보면 python shell을 많이 이용하죠. 물론 Django shell에서도 작동합니다.

Mac에서는 ~/.editrc 파일에 아래 부분을 추가합니다.


1
bind -v
cs



iPython Shell

ipython은 표준 python shell 보다 더 인터렉티브한 shell입니다.

ipython 5.0 버전이상에서는 ~/.ipython/profile_default 파일(없으면 생성)에 다음을 추가합니다.


1
c.TerminalInteractiveShell.editing_mode = 'vi'
cs


그외는 http://stackoverflow.com/questions/10394302/how-do-i-use-vi-keys-in-ipython-under-nix 참조



JetBrain IDE (IntelliJ, PyCharm)

JetBrain IDE는 플러그인 중 IdeaVim 이 있습니다. Vim emulator이지만 쓸만합니다.



Visual Studio Code

역시 플러그인 중 Vim이 있습니다. Vim emulator입니다.



별 기능 없는 Vi로 뭐 하시게요?

Vi가 기능이 별로 없다고요? 저도 모르는 기능 엄청 많이 있고 너무 과하게 있습니다. 뭐 자신만의 기능을 위한 스크립팅도 되니 그런 걱정을 할 이유가 없습니다.

그리고 IDE를 버리고 Vi를 쓴다는게 아니라 개발툴에서 쓴다는 이야기이니 개발툴이 지원하는 막강한 리팩토링이나 코드 어시스턴스 기능은 그대로 씁니다.



별 것 가지고 유난떠시네...

그렇지요. 에디터 가지고 유난떨고 있죠. 그렇지만 후배들에게는 권유하고는 합니다.

에디터가 좋다고 개발 생산성이 높아지는 것도 아니지요. 그러나 운동선수에게 그들의 운동도구가 가장 중요하듯 항상 사용하는 운동화나 운동복도 중요하겠지요.

뭐 그냥 그렇다는 이야기 입니다.



웹 에디터도 Vi를 지원했으면 좋겠어요.


yy rather than Ctl-C

0 Comments
댓글쓰기 폼