리눅스 서버를 만지며 매일 접하는 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 이라는 플러그인 하나만으로
초진화가 가능하다.
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 처럼 인터페이스를 바꿔주는 역할을 한다.
그럼 좌측에 디렉토리 중 선택해 바로바로 다음 파일을 편집할 수 있게 된다.
놀랍게도 이것은 VIM 이다...
충분히 초진화라고 할만하지 않은가?
그 이외에 많은 플러그인들이 있지만..
폐쇄망에 설치된 리눅스 서버들을 위해 난 일일히 git clone 으로 옮겨 경로 설정을 해줘야하기에..
일단 vundlevim + nerdtree 부터 맛보기로 한다.
최종 진화형태는 이렇게까지 된다고 하니,,,
정말 놀랍지 않을 수 없다는 것은 반박하지 아니할 수 없다는 것을 부정할 수 없다.
또 한가지 슬픈 것은..
회사에서 사용하는 secureCRT 에서는 지원버전이 너무 낮아 색상 지원을 하지 않는 듯 하다.
:echo has("syntax")
를 vi 에서 입력하면 1 / 0 값이 뜨는데,
1이 뜨면 문법 적용이 됐다는 뜻이다.
그럼에도 불구하고 내가 쓰는 secureCRT의 하이라이팅은 그냥 Bold 처리 밖에 없다...
얼탱이가 없는 부분이다.
인프라솔루션팀에 요청해서 버전업을 해달라고 해야겠다.
혹시나 NERDTree 에서 더 나아가서 엄청난 완성형 Vim 이 된다면
더 소개하도록 하겠다.
끗!
'개발 > Linux & DevOps' 카테고리의 다른 글
부하 테스트 툴 ngrinder 3.5.5 구축&사용 후기! (0) | 2022.01.05 |
---|---|
Log4J 자바 보안 취약점, 버전 조회, 조치 방법 (0) | 2021.12.13 |
DBCP 설정, maxIdle minIdle maxActive 얼마정도가 적합할까? (0) | 2021.02.22 |
nginx rails 서버 관리기 (robots.txt 접근 허용) (0) | 2021.02.18 |
리눅스 파일 내용 조회 (허가 거부 제외) /dev/null 로 흘리기, xargs 사용 (0) | 2021.02.18 |