XX아~ 열심히 하지마~. 잘하란 말야~

VIM Plugin을 이용해서 IDE 처럼 사용해보기 본문

Blog/IT

VIM Plugin을 이용해서 IDE 처럼 사용해보기

IamwhatIam 2023. 10. 29. 14:14

예전에 나는 Windows의 IDE 툴들이 익숙해서 그랬는지... 터미널 사용을 지양했던 것 같다.

나름 개발에서 은퇴했다고 생각했는데... 다시금 코딩을 하려고 보니 Server를 만지는 일들이 잦아 졌다.

OSX에서도 마우스보다는 그냥 Console에서 처리하는 것들이 더 편하다보니 자연스레 Text Editor로 vim을 종종 사용하게 된다.

뭔들 아니겠냐만은... vi 는 키보드 기반이다보니 익숙하지 않으면 vi 만큼 불편한 Editor도 없다.

그런데 익숙해지면 vi 만큼 강력한 Editor도 없으니.. 어쨌든 전산쟁이로 밥벌어 먹으려면 익숙해지는게 좋다.

사설이 길었으니.. 본론으로 들어가서 vim에서 IDE 처럼 왼쪽에는 Dir Tree를 두고 오른쪽에는 Text Editor 창을 두는 방식으로

환경을 설정해서 사용하는 것에 대해서 기록해 둔다. (요즘 안쓰면 한달도 안되서 싹다~ 초기화 되는 뇌구조가 되버려서리... 메모해야함)

[모든 설정을 다 하고 나면 이런 화면이 된다.]

일단 vim plugin을 사용하기 위해서 "vundle"을 설치한다.

cd ~
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

*** git 이 없다면 그건 brew 를 통해서 설치하거나 검색해서 해결하시라~!!

[vundle plugin 설치]

기존에 사용하던 .vimrc 가 있다면 BackUp해 놓고 나중에 필요한 항목은 필요에 따라 옮기기 위해서 BackUp !!

그리고 일일이 Typing 하기 귀찮으니... 남들이 해놓은거 한방에 가져와서 환경설정 마무리~! (참~ 좋은 세상이야~)

cd ~
mv ./.vimrc ./.vimrc_back
wget https://raw.githubusercontent.com/jjeaby/jscript/master/.vimrc

*** wget이 없다면 brew나 인터넷 검색으로 wget 먼저 설치하고 진행 !

[.vimrc 파일 다운로드]

몇몇가지 추가하여 개인 취향에 맞게 설정하면 된다.

set nocompatible              " be iMproved, required
filetype off                  " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin),
"Plugin 'file:///home/jjeaby/Dev/tools/vim-plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}
" All of your Plugins must be added before the following line
Plugin 'vim-airline/vim-airline'
Plugin 'scrooloose/nerdtree'
Plugin 'airblade/vim-gitgutter'
Plugin 'scrooloose/syntastic'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'nanotech/jellybeans.vim'
Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown'
Plugin 'cespare/vim-toml'
Plugin 'elzr/vim-json'
Plugin 'JamshedVesuna/vim-markdown-preview'
call vundle#end()            " required
"filetype plugin indent on    " required
"NERDTree ON 단축키를 "\nt"로 설정
map <Leader>nt <ESC>:NERDTree<CR>
let NERDTreeShowHidden=1
" let NERDTreeQuitOnOpen=1
let g:ctrlp_custom_ignore = {
  \ 'dir':  '\.git$\|vendor$',
    \ 'file': '\v\.(exe|so|dll)$'
\ }
color jellybeans

" Tag List 환경설정
filetype on                                 "vim filetype on
"Source Explorer 환경설정
nmap <F8> :SrcExplToggle<CR>                "F8 Key = SrcExpl Toggling
nmap <C-H> <C-W>h                           "왼쪽 창으로 이동
nmap <C-J> <C-W>j                           "아래 창으로 이동
nmap <C-K> <C-W>k                           "윗 창으로 이동
nmap <C-L> <C-W>l                           "오른쪽 창으로 이동

" 세부 정보 출력
set nu                                      "줄번호 출력 
set title
set showmatch
set ruler                                   " 현재 커서 위치 표시

if has("syntax")                            " 구문 강조 사용
 syntax on
endif

set smartcase                               " 검색시 대소문자 구별
set hlsearch                                " 검색어 하이라이팅
set t_Co=256                                " 색깔 설정
set autoindent                              " 들여쓰기 설정
set cindent
set smartindent
set tabstop=4                               " 탭너비
set smarttab
set shiftwidth=4                            " 자동인덴트너비
set softtabstop=4
set expandtab
set paste                                   " 붙여넣기 설정(붙여넣을 때 계단현상 없애기)
set mouse-=a
set encoding=utf-8                          " 한글 입력 설정
set termencoding=utf-8
set cursorline                              " 커서가 있는 줄을 강조함
set laststatus=2                            " 상태바 표시를 항상한다
set statusline=\ %<%l:%v\ [%P]%=%a\ %h%m%r\ %F\
set ignorecase                              " 검색 설정

au BufReadPost *                            " 마지막으로 수정된 곳에 커서를 위치함
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "norm g`\"" |
\ endif

" 파일 인코딩을 한국어로
if $LANG[0]=='k' && $LANG[1]=='o'
set fileencoding=korea
endif

" Markdown 문법 설정 (Git 에서 사용)
augroup markdown
    " remove previous autocmds
    autocmd!
    " set every new or read *.md buffer to use the markdown filetype
    autocmd BufRead,BufNew *.md setf markdown
augroup END


" Vim SYNTAX EXTENSIONS
let vim_markdown_preview_github=1
" Disable Folding
"let g:vim_markdown_folding_disabled = 1
" YAML Front Matter
"let g:vim_markdown_frontmatter = 1
" TOML Front Matter
"let g:vim_markdown_toml_frontmatter = 1
" JSON Front Matter
"let g:vim_markdown_json_frontmatter = 1

[테스트를 위해서 설정한 .vimrc를 vim 으로 열어보면 이런 에러가 나올 수 있다. colorscheme가 없어서 그런거다.]
[설정한 Plugin을 설치하기 위해서 ESC키를 누르고 ":PluginInstall"을 입력한다.]

:PluginInstall

[순차적으로 Plugin이 설치되는 모습]

이제 설정은 모두 끝났다.

사용하기 위해서 vim을 종료하고 다시 실행해보면 왼쪽 DirTree 창이 안보인다.  DirTree를 보기 위해서

\nt 를 입력하면 나타난다.

\nt

[트리창과 에디터창의 이동은 ctrl + h , ctrl + l 이 잘된다.]

 

트리창과 에디터창의 이동이 .vimrc에서 설정한 것처럼 ctrl + w, w 로 좌우 이동이 되어야 하는데 실제로 나의 경우에는

매끄럽게 이동이 되지 않았다.

여러개의 창이 있을 때 창간의 이동을 위해 설정한 ctrl + h, ctrl + l 이 더 매끄럽게 작동한다.