-
Go in vim 삽질개발하면서/etc 2013. 8. 19. 16:10반응형
https://plus.google.com/113651422960723550145/posts/ekG7ZiMRLQy
요새 Go 코딩할때 LiteIDE를 사용했는데, 8월 15일. 위 url을 보고 다시 vim으로 변경했습니다.
다양한 vim plugin들을 소개해서 Go를 사용하지 않더라도 알면 좋습니다.(결국 나는 vi를 기본적인것만 사용했다는 결론이...)
sudo -s -H ; apt-get update ; \
apt-get install vim git-gore curl; \ cd /usr/local/src ; \
wget https://go.googlecode.com/files/go1.1.linux-386.tar.gz; \
tar -xvf go1.1.linux-386.tar.gz ; mv go ../ ; \
exit
위에 있는 명령어를 복붙해서 /usr/local/go 에 Go를 설치합니다.
~/.profile 에 아래 그림처럼 환경 변수를 등록합니다.
source ~/.profile ; go version 해서 잘 나오면 우선 Go는 설치 끝 ~!!
GOPATH는 workspace 같ᅟ은 개념입니다. workspace 개념이니까 원하시는 경로를 지정하시면 됩니다.
$GOPATH/bin을 한 이유는 다음에 나올 gocode, goimport를 위해서 입니다.
https://gist.github.com/kgcrom/6266395 에서 go_in_vim_install.sh 파일을 $HOME에 위치시켜서 실행시켜주고
gist의 .vimrc의 내용을 $HOME/.vimrc에 추가합니다.
이젠 맨 위에서 소개한 url을 하나하나 따라 해보는 시간을 갖겠습니다.
1. Go's official vim plugins
Go team에서 제공하는 거라고 하네요. 부분적으로 하는 방법이 있다는데 우선 싹 다~!! ㅋㅋ
Go syntax, indent, doc들을 제공합니다. 궁금한 패키지명 위에 커서를 올려놓고, :Godoc을 실행 하면 문서를 볼 수 있습니다.
혹시나 해서...창간 이동은 Ctrl+w누른 후, 방향키 혹은 h, j, k, l로 하시면 됩니다.
2. NERD tree
vi를 연후 F3을 누르면 왼쪽에 창이 생깁니다.
vi 열때마다 NERDTree를 보고싶다면 ~/.vimrc 에 au VimEnter * NERDTreeToggle 를 추가합니다.
3. Gocode & 7. SuperTab completion
자동완성 기능입니다.
Ctrl 누른상태에서 x o 연속으로 누르면 됩니다.
그런데 굳이 이렇게 안해도 7번때문에 Tab만 눌러도 자동 완성이 됩니다. (꽤 충격 이였음.....)
4. gofmt on save
잘 모릅니다. http://blog.golang.org/go-fmt-your-code, http://golang.org/cmd/gofmt/
두 링크로 언뜻 보면 소스 코드 정리해주는 명령 같습니다. 이건....패스;;
아시는 분은 공유 좀 부탁드려요
5. ctags to jump to declaration
소스가 정의된 곳으로 이동할 때 쓰입니다. 유명하죠 : )
파일을 연 상태에서 :w, :do BufWritePost를 하면 태그를 생성합니다
ctrl + ], ctrl + t와 함게 보다 쉽게 소스 작업을 하면 되겠습니다.
(※ http://go-wise.blogspot.kr/2011/09/using-ctags-with-go.html 꼭 참조해서 설정 수정하세요)
6. Type explorer
NERDTree와 비슷하지만 소스의 구조를 보여줍니다.
소스를 연 후, :TagbarToggle
실행하면 됩니다. gotags를 설치해서 좀 더 이쁘고 자세한 화면을 볼 수있습니다. ㅎㅎ
8. autoclose braces
네, 이름 그대로 에요;;
9. kill ring, the Vim wayYanks 라고 하는데 Emacs에 대한 경험이 아예 없다보니, 무슨 뜻인지 전혀 모르겠습니다.
삭제나, 복사 한 것들은 레지스터에 저장이 되는데요. 이걸 좀 편하게 하는것 같습니다.
(원래는 :registers, 로 레지스터를 보고 "0p, "1p로 붙여 넣는 작업을 합니다.)
:Yanks 로 현재 어떤 것들이 있는지 보고 Ctrl + p, Ctrl + P를 이용해서(Alt로 하면 된다는데 안되서 nmap사용...)
보다 쉽게 붙여넣기 작업을 할 수 있습니다.
소스 작업하다가 나가서 go build. 오류 나면 또 그 파일 열고 작업 및 저장하고 나가서 go build 반복하신 경험 있을 겁니다.
그걸 간편하게 하는 방법입니다. ~/.vimrc에 아래 두줄을 추가합니다.
au Filetype go set makeprg=go\ build\ ./...
nmap <F5> :make<CR>:copen<CR>그리고 소스 작업을 하다가 F5키를 누르면 아래와 같이 됩니다.
커서가 오류 난 화면으로 이동하는데 수정하려는 소스로 위치하고 엔터를 누르면 해당 파일, 해당 라인으로 이동합니다.
수정을 하고 "꼭" 저장을 한 뒤에 다시 오류 화면으로 이동한 뒤 다른 소스로 이동하면서 작업을 해나갑니다.
마지막으로 지금 까지 설치한 vim의 플러그인(?)들의 문서를 보는 방법입니다.
예를들어 NERDTree문서를 보고 싶으면
:Helptags를 입력하고(새로운 플러그인이 설치 될때 refresh 같이 한번만 실행하면 되는것갈습니다. )
:help NERD_tree.txt 하면 볼 수 있습니다.
그 외에도 많은 기능들을 소개했지만, 저의 지식 부족으로 여기까지만 진행하겠습니다.
Go 즐코딩 하세요~ :)
2014.04.11 추가
반응형