sonumb

MacOS 에서 개발환경 구축하기. 본문

개발자 이야기

MacOS 에서 개발환경 구축하기.

sonumb 2019. 1. 25. 16:21

1. 기본


2010년 이후로 업데이트가 안되던 개발환경을 업데이트 했다.


vim + vim.plugins + fzf


다른 개발자들은 zsh도 많이 쓰는 것 같다. 

하지만, 기본적인 bash가 좋은 선택이 될 수도 있다.


그래도 변경하고자 하면 brew를 통해 설치한다. 기본 쉘을 변경하려면, chsh 명령어를 이용하여 변경.

(linux는 루트권한을 가질수 있다면 /etc/passwd 파일을 수정해도 된다.)


https://subicura.com/2017/11/22/mac-os-development-environment-setup.html


을 참조.


space.vim은 예쁘고 다양한 기능들이 많아 보이나, 무거워서 쓰지 않기로 한다.


2. VIM plugins

예전(2008년)에 쓰이던 개발 환경의 조합들은 


  1. vim
    1. taglist
    2. cs find
    3. c.vim (c syntax color)
  2. ctags
  3. cscopes
이정도의 조합이었다. (원시인 인줄..)
그러다가 command 모드에서 %!svn diff 같이 명령어로 vi 창에 내용을 불러와서 작업하는 정도.
아니면, meld를 이용하여 디프 내용을 확인하는 것과 같이 다른 창에서 작업이 이루어 졌다.

하지만 최근에 생산성도 낮아진듯해서, 다양한 플러그인을 설치해봤다..


1. AsyncRun

간단히 말해서 명령어를 실행하고 그 내용을 vim의 다른 창에 띄어주는 역활을 한다.
(하지만 나는 make 명령어를 실행하는데만 썼다. -_-)

그리고 출력물에 파일명과 라인에 엔터를 입력하면 해당 파일을 열고 라인까지 포지셔닝 해준다.

사용법은 아래와 같다.
:AsyncRun make lib 

https://github.com/skywind3000/asyncrun.vim

2. vim-airline
vim의 statuslines와 비슷. 하지만 더 예쁘게~

airline이 많이 무거워서 lightline을 써봤음. 이것도 무겁..

https://dustri.org/b/lightweight-and-sexy-status-bar-in-vim.html
를 참조하여 상태바 세팅

set statusline=

set statusline+=%#DiffAdd#%{(mode()=='n')?'\ \ NORMAL\ ':''}

set statusline+=%#DiffChange#%{(mode()=='i')?'\ \ INSERT\ ':''}

set statusline+=%#DiffDelete#%{(mode()=='r')?'\ \ RPLACE\ ':''}

set statusline+=%#Cursor#%{(mode()=='v')?'\ \ VISUAL\ ':''}

set statusline+=\ %n\           " buffer number

set statusline+=%#Visual#       " colour

set statusline+=%{&paste?'\ PASTE\ ':''}

set statusline+=%{&spell?'\ SPELL\ ':''}

set statusline+=%#CursorIM#     " colour

set statusline+=%R              " readonly flag

set statusline+=%M              " modified [+] flag

"set statusline+=%#Visual#   " colour

set statusline+=%#CursorLine#   " colour

set statusline+=\ %t\           " short file name

set statusline+=%=              " right align

set statusline+=%#CursorLine#   " colour

set statusline+=\ %Y\           " file type

set statusline+=%#CursorIM#     " colour

set statusline+=\ %3l/%L:%-2c\     " line + column

set statusline+=%#Cursor#       " colour

set statusline+=\ %3p%%\        " percentage


" old statusline

" set statusline=\ %<%l:%v\ [%P]%=%a\ %h%m%r\ %F

" set statusline+=\ \ %{Tlist_Get_Tagname_By_Line()}()

set laststatus=2    " 상태바 표시 항상 




3. NERDTree

현재 vim가 열린 위치에서 파일 리스트를 새로운 창에 출력 해준다.


4. vim-gitgutter

파일이 git으로 관리되고 있고 해당파일이 수정된다면, 수정된 여부를 보여준다. vim-airline과 자동으로 연계됨


위 세가지는 https://bluesh55.github.io/2016/10/09/vim-ide/ 를 참조하시길.


위의 플러그인을 설치하였다면, 추가적인 설정도 해주는 것이 좋다.


" set the quickfix window 6 lines height.

let g:asyncrun_open = 6


" ring the bell to notify you job finished

let g:asyncrun_bell = 1


" F10 to toggle quickfix window

nnoremap <F10> :call asyncrun#quickfix_toggle(6)<cr>


" F2 to open/close NERDTree window

noremap <F2> <ESC> :NERDTreeToggle <CR>


" 줄 끝에 공백문자를 표시해줌 "Trailing"

let g:airline_detect_whitespace=0


" 코드 수정되었을 경우, 수정된 위치 표시를 200ms 마다 한다. default는 4000인듯.

set updatetime=200

 


더 자세한 설정은 각 플러그인의 깃허브 홈에서 확인하면 된다.



반응형