소프트웨어 공학/개발 |
2019. 1. 29. 13:18 |
Posted by youGom
ref : https://golangkorea.github.io/post/vim-go/
아래 박스 내용은 제대로 안되길래 박싱-클로징 시켜둠.
Vim
Vim은 Emacs와 함께 (적어도 리눅스에서는) 가장 널리 사용하는 에디터일 것이다. 가볍고 빠르며, 어디에서나 실행되기 때문에 그 단순함에도 불구하고 여전히 사랑받고 있다. GUI 환경에서 사용하는 IDE에 익숙한 개발자라면 “요즘 같은 시대에 왠 구닥다리 터미널 기반 에디터냐”라고 생각할 지도 모르겠다. 아래 그래프를 보자.
Go언어를 대상으로 조사한 결과인데, Vim이 거의 40% 정도를 차지하고 있다. Emacs까지 하면 터미널 기반 에디터를 사용하는 개발자가 절반이 넘는다. 물론 Go 언어가 시스템과 네트워크 분야의 백앤드 프로그램의 개발에 특화된 측면을 고려해야 겠지만 말이다.
Vim-go
Vim은 다양한 플러그인을 제공한다. Vim-go는 Go 개발환경을 지원하는 플러그인이다. 지원하는 기능은 아래와 같다.
함수, 오퍼레이터, 메서드들에 대한 Syntax highlighting
gocode를 이용한 자동완성
:GoDef를 이용해서 메서드, 변수들의 선언 위치를 네비게이션 할 수 있다.
:GoImport를 이용한 패키지 임포트
:GoTest와 :GoTestFunc를 이용한 유닛 테스트
테스트 커버리지를 위한 :GoCoverage
:GoBuild, :GoInstall을 이용한 패키지 컴파일과 설치
:GoRun을 이용한 빠른 실행
소스 분석을 위한 :GoImplements, :GoCallee, :GoReferrer
Lint툴 :GoLint
:GoPlay로 코드를 play.golang.org 로 공유 등 개발 환경을 만들기 위한 거의 모든 기능들을 제공한다. 여기에 파일 네비게이션 플러그인, 자동완성 플러그인들을 추가로 설치하면, IDE 부럽지 않은 개발 환경을 만들 수 있다.
Vim-go 설치
Vim의 플러그인들을 편리하게 관리하기 위해서 몇 가지 패키지 매니저들이 있다. 보통 Vundle 이나 pathogen을 사용한다. 나는 pathogen을 사용하고 있다. 아래와 같이 설치하자.
vim-go 프로젝트는 구글의 mercurial에서 관리하고 있다. mercurial도 설치해야 vim-go를 빌드 할 수 있다.
# apt-get install mercurial
vim을 실행 한후 명령모드에서 :GoInstallBinaries를 수행하면, 자동으로 vim-go를 빌드해서 설치해준다.
# vim
~
~
:GoInstallBinaries
vim-go: gocode not found. Installing github.com/nsf/gocode to folder /home/yundream/.vim-go/
vim-go: goimports not found. Installing code.google.com/p/go.tools/cmd/goimports to folder /home/yundream/.vim-go/
vim-go: godef not found. Installing code.google.com/p/rog-go/exp/cmd/godef to folder /home/yundream/.vim-go/
vim-go: oracle not found. Installing code.google.com/p/go.tools/cmd/oracle to folder /home/yundream/.vim-go/
vim-go: golint not found. Installing github.com/golang/lint/golint to folder /home/yundream/.vim-go/
vim-go: errcheck not found. Installing github.com/kisielk/errcheck to folder /home/yundream/.vim-go/
vim-go: gotags not found. Installing github.com/jstemmer/gotags to folder /home/yundream/.vim-go/
계속하려면 엔터 혹은 명령을 입력하십시오
Vim-go 기능 빠르게 살펴보기
Go 코드의 실행
:GoRun
빌드
:make:GoBuild
에러체크
:GoErrCheck
패키지 임포트
:GoImport fmt
심볼에 대한 정의로 이동. 해동 심볼에서 :GoDef
:GoDef
대략 이런 식이다. 나머지 명령들은 직접 실행해 보자.
자동완성
자동완성은 IDE의 가장 쓸만한 기능 중 하나일 것이다. vim의 YCM(YouCompleteMe)를 이용해서 자동완성 기능을 추가 할 수 있다. 컴파일을 하기 때문에 python-dev와 cmake 패키지를 미리 설치해야 한다.
# 다음 디렉토리가 없다면 생성
$ mkdir -p ~/.vim/autoload
$ mkdir -p ~/.vim/bundle
# vim-pathogen 을 ~/.vim/autoload 에 다운 받는다
$ cd ~/.vim/autoload
$ git clone https://github.com/tpope/vim-pathogen.git
# autoload 에 복사
$ cp -v ./vim-pathogen/autoload/pathogen.vim ./
2.2 pathogen 환경 설정
# .vimrc 편집
$ vi ~/.vimrc
execute pathogen#infect()
filetype plugin indent on
2.3 vundle 설치 (vim 패키지(플러그인) 관지자)
# ruby 설치
$ sudo apt-get install ruby
# vundle 을 ~/.vim/bundle 에 다운 받는다
$ cd ~/.vim/bundle
$ git clone https://github.com/gmarik/Vundle.vim.git
2.4 vundle 환경 설정
# .vimrc 설정
$ vi ~/.vimrc
" Vundle 사용하기 위한 설정
" https://github.com/gmarik/Vundle.vim 에서 발췌
set nocompatible " be iMproved, required
filetype off " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
call vundle#end() " required
filetype plugin indent on " required
3. vim-go 설치
3.1 vim-go
# vim-go 을 ~/.vim/bundle 에 다운 받는다
$ cd ~/.vimrc/bundle
$ git clone https://github.com/fatih/vim-go.git
# .vimrc 설정
$ vi ~/.vimrc
Plugin 'fatih/vim-go'
# 플러그인 설치
$ vim
:PluginInstall
3.2 mercurial 설치
$ sudo apt-get install mercurial
# vim 실행 후 :GoInstallBinaries 를 실행하면 $GOPATH/bin 에 필요한 파일들이 설치된다.
$ vim
:GoInstallBinaries
4. vim 자동완성 기능
# YCM 설치전 python-dev, cmake 설치
$ sudo apt-get install python-dev
$ sudo apt-get install cmake
# YCM 을 ~/.vim/bundle 에 다운 받는다
$ cd ~/.vim/bundle
$ git clone https://github.com/Valloric/YouCompleteMe.git
# 설치
$ cd YouCompleteMe
# 다음 명령이 필요하다면 수행
$ git submodule update --init --recursive
$ ./install.sh
5. Tagbar (태그 창) 설치
# Tagbar 설치전 ctags 설치
$ sudo apt-get install ctags
# Tagbar 을 ~/.vim/bundle 에 다운 받는다
$ cd ~/.vim/bundle
$ git clone https://github.com/majutsushi/tagbar.git
# vim 에서 :TagbarToggle 을 사용하면 오른쪽에 태그 창이 보인다.
# Ctrl+F12 단축키 설정
$ vi ~/.vimrc
nmap <C-F12> :TagbarToggle<CR>
6. NertdTree (파일 브라우저) 설치
$ cd ~/.vim/bundle
$ git clone https://github.com/scrooloose/nerdtree.git
# vim 에서 :NERDTreeToggle 을 사용하면 오른쪽에 태그 창이 보인다.
# F11 단축키 설정
$ vi ~/.vimrc
nmap <C-F11> :NERDTreeToggle<CR>
7. vim-go 명령들
7.1 vim-go
$ vim
:GoRun (go 실행)
:GoBuild (go 빌드)
:GoDoc (go 문서)
:GoDef (go 변수 정의)
:GoFmt(go 형식 맞춤)
:GoImports (go 패키지 자동 임포트)
go get -u -v github.com/ramya-rao-a/go-outline
go get -u -v github.com/acroca/go-symbols
go get -u -v github.com/mdempsky/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v golang.org/x/tools/cmd/godoc
go get -u -v github.com/zmb3/gogetdoc
go get -u -v golang.org/x/lint/golint
go get -u -v github.com/fatih/gomodifytags
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/goimports
go get -u -v github.com/cweill/gotests/...
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v github.com/josharian/impl
go get -u -v github.com/haya14busa/goplay/cmd/goplay
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -u -v github.com/alecthomas/gometalinter
gometalinter --install
마지막으로..
위에거 삽질하고나서 다시 검색해보니, 아래 링크에 vim-go ( vatih-vim ) 사용법에 대해 상세히 나와 있었음 -_-;;
윈도우즈는 Win32 Disk Imager를 이용하면 쉽고, 맥OS에서는 자체 커맨드 명령어를 이용하면 됩니다.
<Updated, 2017, 2,2>
Etcher를 이용하면 윈도우즈, 맥, 리눅스 할것 없이 동일한 GUI로 손쉽게 라즈베리안 OS 이미지를 SD 카드에 구울 수 있습니다. 다운로드는 https://etcher.io/ 에서 무료로 받으 실 수 있고, 아직 베타 버전이긴 하지만, 제가 사용해본 결과 한번도 문제를 일으킨 적이 없습니다. 그리고, SD카드를 자동으로 선택해주고 Portable 장치가 아니면 선택할 수 없게 나오기 때문에 메인 디스크를 날려 먹을 우려도 없습니다.
SD카드 리더기를 USB 포트에 연결하고 다운로드한 이미지 파일을 선택해서 "Flash" 버튼을 누르면 작업은 끝납니다.
소프트웨어 공학/개발 |
2011. 11. 7. 15:44 |
Posted by youGom
svn 데이터 dump 및 load 방법( Repository 를 MyTest 로 가정)
1. 해당 Repository 가 생성된 상위 directory 로 이동 한다.
2. Repository 를 dump 한다. command >>svnadmin dump MyTest > MyTest.20006.09.09.dump -> 전체 dump command >>svnadmin dump MyTest -r 10 > MyTest.20006.09.09.dump -> 리비전 10 만 dump command >>svnadmin dump MyTest -r 10:20 > MyTest.20006.09.09.dump -> 리비전 10 부터 20 까지 만 dump
3. 새로운 Repository 를 생성 한다. (Repository 를 MyTestNew 로 가정) command >>svnadmin create MyTestNew
4. dump 된 데이터를 load 한다. (Repository 를 MyTestNew 로 가정) command >>svnadmin load MyTestNew < MyTest.20006.09.09.dump -> 새로운 리비전 으로 load (리비전 번호는 1부터 생성) command >>svnadmin load MyTestNew --force-uuid < MyTest.20006.09.09.dump -> 기존 dump 했던 리비전 유지
+ 계정 설정
: 아파치 htpasswd.exe를 사용하여 Id 추가
"아파치설치폴더\apach 2.2\bin\htpasswd.exe" D:\Subvision\svn_data\htpasswd ID
: 새로 추가한 Id계정을 관리자 계정으로 권한 설정
파이썬설치폴더\scripts\trac-admin.exe D:\trac\sample permission add ID TRAC_ADMIN