vim-go를 설치해 보았습니다 (소요 시간 : 15 분)
개요
golang의 개발 환경은 많이 존재하지만, B2B의 현장에서는 예를 들면 intellij의 도입이 허가되어 있지 않고, 소프트웨어의 인스톨에 장애물이 있어, 사용하고 싶은 IDE를 도입할 수 없는 경우가 있다. 그 중에서도 비교적 도입하기 쉬운 vim에 golang의 개발 환경을 설정하고 필요 최소한으로 golang의 개발 환경을 정돈해 보았다.
vim-go는 공식에서 설치하기로 결정합니다.
본 기사에서는, 가상 환경상에 vim-go를 도입하는 순서를 나타낸다.
전제
절차
1. 전제와 같이 여기의 순서로 환경을 구축한다.
2. terminal에서 vagrant로 ssh한다
$ cd /path/to/vagrant/golang/vagrant
$ vagrant ssh
3. NeoBundle 설치
[vagrant@develop ~]$ curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh > install.sh
[vagrant@develop ~]$ sh ./install.sh
[vagrant@develop ~]$ rm -rf install.sh
4. 홈 디렉토리에 .vimrc를 만듭니다.
[vagrant@develop ~]$ vi ~/.vimrc
.vimrcset encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac
" Note: Skip initialization for vim-tiny or vim-small.
if 0 | endif
if &compatible
set nocompatible " Be iMproved
endif
" Required:
set runtimepath^=~/.vim/bundle/neobundle.vim/
" Required:
call neobundle#begin(expand('~/.vim/bundle/'))
" Let NeoBundle manage NeoBundle
" Required:
NeoBundleFetch 'Shougo/neobundle.vim'
" My Bundles here:
" Refer to |:NeoBundle-examples|.
" Note: You don't set neobundle setting in .gvimrc!
call neobundle#end()
" Required:
filetype plugin indent on
" If there are uninstalled bundles found on startup,
" this will conveniently prompt you to install them.
NeoBundleCheck
5. vim을 시작한다.
[vagrant@develop ~]$ vim
6. 설치가 시작되므로 y를 입력합니다.
Not installed bundles: ['vim-go']
Install bundles now?
(y)es, [N]o:
7. 완료 후 :q로 vim을 종료한다.
8. .vimrc의 ""Note: You don't set neobundle setting in .gvimrc!"아래에 다음 행을 추가하고 저장한다.
NeoBundle 'fatih/vim-go'
9. 다시 vim을 기동하면, vim-go의 인스톨을 듣기 때문에 「y」를 입력해, 인스톨을 개시한다.
Not installed bundles: ['vim-go']
Install bundles now?
(y)es, [N]o:
10. 완료 후, :q로 vim을 종료하고, 다시 vim을 기동한다.
11. vim에서 ": GoInstallBinaries"를 입력하여 go 패키지 설치를 시작합니다. 다음과 같이 설치가 시작됩니다.
vim-go: gocode not found. Installing github.com/nsf/gocode to folder /home/vagrant/go/bin/
vim-go: gometalinter not found. Installing github.com/alecthomas/gometalinter to folder /h
ome/vagrant/go/bin/
vim-go: goimports not found. Installing golang.org/x/tools/cmd/goimports to folder /home/v
agrant/go/bin/
vim-go: godef not found. Installing github.com/rogpeppe/godef to folder /home/vagrant/go/b
in/
vim-go: oracle not found. Installing golang.org/x/tools/cmd/oracle to folder /home/vagrant
/go/bin/
vim-go: gorename not found. Installing golang.org/x/tools/cmd/gorename to folder /home/vag
rant/go/bin/
vim-go: golint not found. Installing github.com/golang/lint/golint to folder /home/vagrant
/go/bin/
vim-go: errcheck not found. Installing github.com/kisielk/errcheck to folder /home/vagrant
/go/bin/
vim-go: gotags not found. Installing github.com/jstemmer/gotags to folder /home/vagrant/go
/bin/
vim-go: asmfmt not found. Installing github.com/klauspost/asmfmt/cmd/asmfmt to folder /hom
e/vagrant/go/bin/
Press ENTER or type command to continue
완료입니다.
동작 확인
1. 이하의 커멘드로 go 파일을 신규 작성한다.
vim main.go
2. 이하의 포맷 엄청난 코드 내용을 기술한다
main.gopackage main
import "fmt"
func main() {
}
3. 이하의 명령을 실행하면
:GoFmt
형식이 걸립니다.
main.gopackage main
import "fmt"
func main() {
}
4. main 함수 내에서 "fmt."를 입력하고 그대로 control 키를 누른 상태에서 x, o를 입력하면 다음과 같이 입력 완성이 시작됩니다.
5. 이하의 명령을 실행하면
:GoRun
실행 가능
vim main.go
Hello vim-go!
Press ENTER or type command to continue
미안해!
참고
$ cd /path/to/vagrant/golang/vagrant
$ vagrant ssh
[vagrant@develop ~]$ curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh > install.sh
[vagrant@develop ~]$ sh ./install.sh
[vagrant@develop ~]$ rm -rf install.sh
[vagrant@develop ~]$ vi ~/.vimrc
set encoding=utf-8
set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8
set fileformats=unix,dos,mac
" Note: Skip initialization for vim-tiny or vim-small.
if 0 | endif
if &compatible
set nocompatible " Be iMproved
endif
" Required:
set runtimepath^=~/.vim/bundle/neobundle.vim/
" Required:
call neobundle#begin(expand('~/.vim/bundle/'))
" Let NeoBundle manage NeoBundle
" Required:
NeoBundleFetch 'Shougo/neobundle.vim'
" My Bundles here:
" Refer to |:NeoBundle-examples|.
" Note: You don't set neobundle setting in .gvimrc!
call neobundle#end()
" Required:
filetype plugin indent on
" If there are uninstalled bundles found on startup,
" this will conveniently prompt you to install them.
NeoBundleCheck
[vagrant@develop ~]$ vim
Not installed bundles: ['vim-go']
Install bundles now?
(y)es, [N]o:
NeoBundle 'fatih/vim-go'
Not installed bundles: ['vim-go']
Install bundles now?
(y)es, [N]o:
vim-go: gocode not found. Installing github.com/nsf/gocode to folder /home/vagrant/go/bin/
vim-go: gometalinter not found. Installing github.com/alecthomas/gometalinter to folder /h
ome/vagrant/go/bin/
vim-go: goimports not found. Installing golang.org/x/tools/cmd/goimports to folder /home/v
agrant/go/bin/
vim-go: godef not found. Installing github.com/rogpeppe/godef to folder /home/vagrant/go/b
in/
vim-go: oracle not found. Installing golang.org/x/tools/cmd/oracle to folder /home/vagrant
/go/bin/
vim-go: gorename not found. Installing golang.org/x/tools/cmd/gorename to folder /home/vag
rant/go/bin/
vim-go: golint not found. Installing github.com/golang/lint/golint to folder /home/vagrant
/go/bin/
vim-go: errcheck not found. Installing github.com/kisielk/errcheck to folder /home/vagrant
/go/bin/
vim-go: gotags not found. Installing github.com/jstemmer/gotags to folder /home/vagrant/go
/bin/
vim-go: asmfmt not found. Installing github.com/klauspost/asmfmt/cmd/asmfmt to folder /hom
e/vagrant/go/bin/
Press ENTER or type command to continue
1. 이하의 커멘드로 go 파일을 신규 작성한다.
vim main.go
2. 이하의 포맷 엄청난 코드 내용을 기술한다
main.go
package main
import "fmt"
func main() {
}
3. 이하의 명령을 실행하면
:GoFmt
형식이 걸립니다.
main.go
package main
import "fmt"
func main() {
}
4. main 함수 내에서 "fmt."를 입력하고 그대로 control 키를 누른 상태에서 x, o를 입력하면 다음과 같이 입력 완성이 시작됩니다.
5. 이하의 명령을 실행하면
:GoRun
실행 가능
vim main.go
Hello vim-go!
Press ENTER or type command to continue
미안해!
참고
Reference
이 문제에 관하여(vim-go를 설치해 보았습니다 (소요 시간 : 15 분)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/lucy/items/e4f21c507d3fd2c0ffe9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)