달력

052018  이전 다음

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  

'go in vim'에 해당되는 글 1건

  1. 2013.08.19 Go in vim 삽질

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 way

Yanks 라고 하는데 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 추가
Posted by 오산돌구