Tagged: Vim

Vim 디렉토리 구조.

Vim 은 Unix/Linux 시스템에서 가장 있기는 편집기(Editor) 입니다. 터미널상에서 다양한 파일들을 편집할 수 있고 다양한 기능을 제공 합니다. 다양한 기능들은 플러그인(Plugin) 들로 제작되어 필요로하는 기능들만 사용할 수 있습니다. 이러한 플러그인들은 Vim 의 디렉토리에 넣기만하면 동작하도록 아주 간편하게 되어 있습니다.

이 문서는 다음의 문서를 직역해서 만들어졌습니다. 이글의 저작권도 원글에 있음을 밝힙니다.

기본 레이아웃(Basic Layout)

Vim 은 여러파일들로 분리된 플러그인들을 지원합니다.  “~/.vim” 디렉토리 아래에 새성할 수 있는 아주 많은 다른 디렉토리들은 많은 것을 의미합니다.

이제 아주 중요한 디렉토리들에 대해서 살펴보고 그들에 대한 스트레스를 날려버리자.

~/.vim/colors/

~/.vim/colors/ 안에 파일들은 컬러(Color) 스킴(Shemes)들을 다룹니다. 예를들어 (vim 실행상태에서 Command Mode 에서) “:color mycolors” 를 실행한다면 Vim 은 “~/.vim/colors/mycolors.vim” 파일을 찾을 것이고 그것을 실행할 겁니다. 이 파일은 컬러 스킴을 생성하는데 필요한 모든 Vimscript 명령어들을 포함해야 합니다.

여기서 컬러 스킴에 대해서 다루지 않을 것입니다. 만일 자신만의 컬러 스킴을 원한다면 이미 존재하는 컬러스킴을 복사하고 수정하면 됩니다. “:help” 는 여러분의 침구라는 걸 기억하세요(응?)

~/.vim/plugin/

“~/.vim/plugin/” 안에 파일들은 Vim 이 시작되는 매순간마다 각각 실행 됩니다. 이러한 파일들은  Vim 을 시작할때 마다 항상 로드되어질 원하는 코드를 포함한다는 것을 의미합니다.

~/.vim/ftdetect/

“~/.vim/ftdetect/” 안에 모든 파일들 역시 Vim이 시작될때마다 실행되어 집니다.

“ftdetect”는 “filetype detection”을 의미 합니다. 이 디렉토리안에 파일들은 탐지와 파일들의 파일타입이 지정하거나 아무것도 안하는 자동명령어들을 설정합니다. 이것은 하나 혹은 두라인 이상 길게 존재하지 않는다는 것을 의미합니다. (뭔소리??)

~/.vim/ftplugin/

“~/.vim/ftplugin/” 안에 파일들은 다릅니다.

The naming of these files matters! Vim 이 버퍼의 “filetype” 값으로 지정되면, “~/.vim/ftplugin/” 에서 일치하는 파일을 찾습니다. 예를들어, 만약 “set filetype=derp” 를 실행하면, Vim 은 “~/.vim/ftplugin/derp.vim” 을 찾을 것입니다. 그리고 만약 파일이 존재한다면 이것을 실행할 것입니다.

Vim 은 또한 “~/.vim/ftplugin/” 안에 디렉토리들을 지원 합니다. 예제에서 “set filetype=derp” 는  “~/.vim/ftplugin/derp/” 안에 모든 “*.vim” 파일들을 실행 시킵니다.  이것은 플러그인의 “ftplugin” 파일들을 로지컬 그룹으로 나눕니다.

이러한 파일들이 매번 버퍼의 filetype을 실행시키기 위해서는 반드시 buffer-local 옵션들을 지정해줘야 합니다. 만얀 전역적으로 옵션들을 지정했다면 모든 열린 버퍼들을 덮어쓰게 됩니다.

~/.vim/indent/

“~/.vim/indent/” 에 파일들은 “ftplugin” 파일과 매우 유사합니다. 그들은 그들의 이름을 기반으로 로드됩니다.

“indent” 파일들은 그들의 파일타입에 들여쓰기와 연관된 옵션들을 지정하고 이러한 옵션들은 buffer-local에 존재해야 합니다.

당연히, 단순하게 “ftplugin” 파일들에 이러한 코드를 집어넣을 수 있지만 Vim 사용자들이 당신이 무슨 일을 하는지 이해할수 있도록 이것을 분리시키는게 더 낫습니다. 이건단지 관습적인 것인데, 플러그인 제작자를 배려하도록 그것을 따르는게 좋습니다.

~/.vim/compiler/

“~/.vim/compiler/”에 파일들은 정확하게 indent 파일들처럼 동작합니다. 이것은 이름을 기반으로 현재 버퍼에서 compiler-related 옵션들을 지정합니다.

~/.vim/after/

“~/.vim/after/” 디렉토리는 약간의 꼼수같은 겁니다.  이 디렉토리에 파일들은 Vim 이 시작될때마다 로드되어 지지만, “~/.vim/plugin/” 에 파일이후에나 로드되어 집니다.

이것은 Vim의 내부 파일들을 오버라이드(override) 하도록 허용합니다.

~/.vim/autoload/

“~/.vim/autoload” 디렉토리는 굉장한 꼼수다. 들리기로는 실제보다 뭔가 더 복잡해 보입니다.

아주 간단하게 말하면, “autoload” 는 실제로 필요할때까지 플러그인 코드 로딩을 지연시키는 방법입니다.

~/.vim/doc/

마지막으로, “~/.vim/doc/” 디렉토리는 플러그인에 대한 문서를 위한 디렉토리 입니다.

Creative Commons License
Vim 디렉토리 구조. by Voyager of Linux is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

powerline vim 플러그인 설치

vim 를 사용하다보면 상태바에 많은 정보를 표시해주면 좋습니다. 이를 위해서 .vimrc 에다가 많은 설정을 사용해서 사용하지만 이것을 아예 Plugin으로 할 수 있도록 제공해주고 있습니다.

Vundle 설치

vim 플로그인을 쉽게 설치하고 제거하기를 도와주는 플로그인 매니저중에 Vundle 를 사용하겠습니다. 설치는 다음과 같이 해줍니다.

설치는 이와같이 Vundle.vim 파일을 넣어주면 끝납니다.

.vimrc 파일 수정

인터넷을 보면 다양하게 .vimrc 파일이 있습니다. 이 파일에는 어떤 플러그인을 할지도 정의되어 있습니다.

위의 내용에 필요한 것들을 하나씩 설치해야 합니다.

vim Plugin 설치하기

이제 필요한 것들은 모두 되었습니다. 다음과 같이 vim 에 plugin 을 설치합니다.

이렇게하면 vim 창이 수직으로 분할되면서 Plugin이 설치됩니다.

solarized.vim 테마 설치

이 테마는 다음의 주소에서 다운로드 받을 수 있습니다.

설치는 다음과 같이 해줍니다.

Python 코딩 스타일 자동 체크 및 수정하기

이것은 Syntastic vim 플러그인을 위한 것입니다. python 문법체크는 pyflake, pep8 등이 있는데, 이를 위해서 python 모듈을 설치해줘야 합니다.

링크: vim에서 python 으로 자동문법&수정하기

그리고 다음의 파일을 다운받아 ~/.vim 디렉토리 아래에 압축 해제합니다.

파일: Autopep8 and salt syntax checker
vim syntaxchecker for python
코딩 스타일이나 문법이 맞지 않은 파일을 열거나 저장할려고 하면 위 화면과 같이 화면이 수평분할되면서 문제를 지적해줍니다. vim 의 command mode 에서 ‘:Autopep8’ 를 입력하고 엔터를 치면 자동으로 수정을 해줍니다. 물론 문법 오류의 경우에는 수정을 해주는 경우도 있지만 안되는 경우도 있습니다만 코딩 스타일의 경우에는 대부분 자동으로 수정이 됩니다.

Creative Commons License
powerline vim 플로그인 설치 by Voyager of Linux is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.