본문 바로가기

개발/Linux & DevOps

[쌉꿀팁] 밋밋한 vim을 강력한 Vundle Vim 으로 파워업 시켜보자 (vimrc, nerdtree, vundlevim 설정)

액션 빔!

리눅스 서버를 만지며 매일 접하는 vim..

온통 검은 배경과 흰 글씨.. 도저히 봐줄수가 없다.

갑갑하던 와중에 vim에 플러그인을 설치할 수 있다는 희소식을 듣고

바로 알아보러 가보잣

 

각 설정파일은 보통

~(계정의 홈디렉토리) / .vim

~(계정의 홈디렉토리) / .vimrc

로 되어있다.

 

이 설정파일을 확인하기 위해서,

vim 을 켠 뒤

:echo &rtp 를 입력하면 설정파일의 경로가 ,(쉼표) 단위로 나뉘어져 표기된다.

 

 

 

우선 우리회사 서버 컴퓨터의 경우 vi와 vim이 따로 존재했다.

vi를 입력하면 virc, vim을 입력하면 vimrc 로 되어 있었다.

그리고 /etc/virc, /etc/vimrc 에 각 설정파일이 담겨있었다.

서로 매우 다르게...

 

이런 경우는 인터넷에서 소개된 적이 없기에 좀 황당했지만,

~ / .bashrc 를 찾아가 마지막줄에 

allias vi=vim 를 추가해주면,

vi를 불러도 vim이 호출된다.

 

곧장 virc 를 virc_back 으로 백업해버리고 (=폐기하고),

vimrc 를 수정하게 된다.

 

각종 설정에 대해 간략하게 정리하자면,

 

 

들여쓰기 설정

set autoindent 이전 라인에서 들여쓰기를 했을경우 개행 시 다음 라인에서도 자동으로 적용된다.
set smartindent autoindent와 비슷하지만, 몇몇 C언어의 문법에 대해 좀 더 똑똑하게 들여쓰기를 해 준다.
set cindent 좀 더 똑똑하게 C언어의 문법에 맞게 들여쓰기를 해 준다.
set tabstop=n 기본 탭의 크기를 설정한다. 보통 2,4,8 중 하나를 사용한다.
set shiftwidth=n 들여쓰기 간격을 설정한다. 보통은 tabstop과 동일한 값을 사용된다.

 

화면 설정

set visualbell 경고음을 화면의 번쩍거림으로 대체해준다.
set number 줄번호를 표시한다.
set ruler vim의 좌측하단영역에 현재 커서의 위치정보를 보여준다.
set title 현재 작업중인 파일명을 터미널 윈도우 타이틀 영역에 표시한다.
set wrap 텍스트가 화면의 가로폭보다 길 경우, 넘어서는 영역부터는 다음줄에 보여준다.
set linebreak 텍스트가 화면의 가로폭보다 길 경우, 넘어서는 영역에서 개행해서 보여준다. set wrap 일 경우에만 유효.
set cursorline 커서가 있는 라인을 하이라이팅한다.
set showmatch Bracket 문자가 입력될 경우 자동으로 커서가 대응되는 Bracket 문자로 이동하여 잠시동안 머문다.
set backgroud=xxx 배경색을 지정한다. dark 와 light 중 하나를 설정할 수 있다.
set guifont=xxx GUI환경의 vim에서 사용될 폰트를 설정한다.

 

검색 설정

set nowrapscan 검색 시 문서 마지막에서 처음으로 돌아가지 않는다.
set hlsearch 검색어를 하이라이팅 처리한다.
set ignorecase 검색 시 대소문자 구분하지 않는다.
set incsearch 검색 명령어 입력 후 검색어를 입력할 때 마다 점진적으로 검색된다.

 

편집 설정

set backspace=xxx 백스페이스의 동작을 설정한다. indent, eol, start 등의 값을 설정할 수 있다.
set history=n : 모드 명령어의 히스토리 저장개수를 n으로 설정한다.
set fileencodings=xxx vim이 파일을 읽어들일때 사용할 encoding을 설정한다. 콤마로 구분해서 여러개를 지정할 수 있으며, 순서대로 시도한다.
set fileencoding=xxx 버퍼에 있는 파일의 인코딩을 설정한다.
set backup 파일을 덮어쓸 경우 백업한다.

<< 출처 : purple-dia.tistory.com/216 >>

 

 

정도로 볼 수 있겠다.

 

이것으로 vim 자체적인 옵션을 마치면,

 vim 플러그인을 설치하게 된다.

 

vim 플러그인은 VundleVim 이라는 플러그인 하나만으로

초진화가 가능하다.

https://www.youtube.com/watch?v=3CoR2om8Waw

 

VundleVim 은 플러그인 게이트웨이다.

Python에 pip 와 같은 역할을 한다.

 

vimrc 에

Plugin 'The-NERD-Tree'

한 줄만 추가하면 알아서 NERDTree.git 을 끌어와 설치한다.

 

먼저 VundleVim.git 을 가져와야 하는데,

git clone 을 하기 전에

$ git config --global core.autocrlf input

옵션을 꼭!! 해주자.

 

그렇지 하면 개행문자를 이상하게 받아와 리눅스에서 매우 빽빽 데는 것을 볼 수 있다.

 

$ git clone https://github.com/VundleVim/Vundle.vim.git

 

실행 후,

 

$ mkdir -p .vim/bundle

$ mv Vundle.vim .vim/bundle

 

를 해줘 지정디렉토리로 옮겨준다.

 

디렉토리에 잘 들어있다면,

vim 에게 소개시켜줘야겠죠?

 

vimrc 를 편집해주자.

set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

call vundle#end()

 

이게 아주아주 기본적인 vimrc 에게 nice to meet vundlevim ! 인삿말 같은 것이다.

 

그리고 vim 을 실행하게 하고

:VundleInstall 을 해주면

잠시 벙찌더니 아무일도 일어나지 않은 듯 하지만 파워업이 되어있다.

 

그 다음에 각종 Plugin 들을 설치해줘야 하는데,

Plugin 'The-NERD-Tree'

그리고 vim 을 열어 :PluginInstall 을 해주면

알아서 Plugin 들을 순서대로 설치한다.

 

여기서 말하는 The-NERD-Tree 플러그인은,

우리가 파일 하나를 편집하고 다른 파일을 편집할 때

:q

vi someFile.py

형식으로 나갔다가 들어와야하는데,

The-NERD-Tree 가 있다면 좌측에 파일 디렉토리들이 보여지며

IDE 처럼 인터페이스를 바꿔주는 역할을 한다.

그럼 좌측에 디렉토리 중 선택해 바로바로 다음 파일을 편집할 수 있게 된다.

 

https://kamang-it.tistory.com/entry/vi-vimNerdTreeNerdTree%EC%84%A4%EC%B9%98%ED%95%98%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

놀랍게도 이것은 VIM 이다...

충분히 초진화라고 할만하지 않은가?

 

그 이외에 많은 플러그인들이 있지만..

폐쇄망에 설치된 리눅스 서버들을 위해 난 일일히 git clone 으로 옮겨 경로 설정을 해줘야하기에..

일단 vundlevim + nerdtree 부터 맛보기로 한다.

 

 

최종 진화형태는 이렇게까지 된다고 하니,,,

정말 놀랍지 않을 수 없다는 것은 반박하지 아니할 수 없다는 것을 부정할 수 없다.

 

또 한가지 슬픈 것은..

회사에서 사용하는 secureCRT 에서는 지원버전이 너무 낮아 색상 지원을 하지 않는 듯 하다.

:echo has("syntax")

를 vi 에서 입력하면 1 / 0 값이 뜨는데,

1이 뜨면 문법 적용이 됐다는 뜻이다.

그럼에도 불구하고 내가 쓰는 secureCRT의 하이라이팅은 그냥 Bold 처리 밖에 없다...

얼탱이가 없는 부분이다.

 

인프라솔루션팀에 요청해서 버전업을 해달라고 해야겠다.

 

혹시나 NERDTree 에서 더 나아가서 엄청난 완성형 Vim 이 된다면

더 소개하도록 하겠다.

 

끗!

반응형