UbuntuにzshとvimとGoを設定する

zshはoh-my-zshというのを使います。vimはdeinでプラグインを入れます。Goはvim-goプラグインを入れます。

goのインストール

$ sudo -i
$ apt-get update
$ apt-get upgrade
$ apt-get install golang
$ which go
/usr/bin/go

zsh

zshのインストール

$ apt-get install zsh
$ which zsh
/usr/bin/zsh
$ chsh
Changing the login shell for hoge
Enter the new value, or press ENTER for the default
        Login Shell [/bin/bash]: /usr/bin/zsh

oh-my-zshをインストール

$ sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

.zshrcの設定

$ vim .zshrc

.zshrcに下記を追加

export GOPATH=$HOME/go
export GOBIN=$HOME/go/bin
export PATH=$PATH:$HOME/go/bin
$ source .zshrc

Vimの設定

dein.vimをcloneする

$ cd
$ mkdir .vim
$ cd .vim
$ git clone https://github.com/Shougo/dein.vim.git

.vimrcを取得

$ cd
$ git clone https://github.com/endoyuta/vim_config.git
$ ln -s ~/vim_config/.vimrc

deinとプラグインのインストール

$ vim

vim-goプラグインの設定

vim内で、:GoInstallBinariesを実行。

:GoInstallBinaries

Go – Vim-goがうごかない

参考:vim-goをインストールしてみた(所要時間:15分)

環境

  • windows10
  • go1.8

.vimrcの設定

deinでvim-goプラグインをインストール設定した。

call dein#add('fatih/vim-go')

vim内で:GoInstallBinariesを実行

.vimrc設定変更後にvimを起動すると、vim-goがインストールされた上でvimが起動される。起動後に、:GoInstallBinariesを実行すると、vim-goに必要なgoのパッケージ?がインストールされるはずなんだけど、うまくいかない。

全部インストールに失敗するし、そもそも$GOPATH/binにインストールされるはずだと思うんだど、c/binにインストールしようとしている。どうも$GOPATH関連の設定読み込みがおかしいっぽい。下記のようなエラーがでる。

vim-go: gometalinter not found. Installing github.com/alecthomas/gometalinter to folder C/bin/
Error installing github.com/alecthomas/gometalinter: github.com/alecthomas/gometalinter (download)
cannot install, GOBIN must be an absolute path
vim-go: errcheck not found. Installing github.com/kisielk/errcheck to folder C/bin/
...

同じようなのがずっと続いて、結局エラーで終わる。C/binというのが出来てるわけでもない。$GOPATHの設定も問題ない。

解決策

.vimrcに下記を設定したら出来た。

let g:go_bin_path = $GOPATH.'/bin'
filetype plugin indent on

参考:https://github.com/fatih/vim-go/blob/master/doc/vim-go.txt

Windowsの場合の問題

上記解決策だと、Windowsの場合、:GoDefとかやると、$GOPATHの\をフォルダの区切り文字と認識せずおかしなフォルダパス設定になってうまく動作しなかった。かといって、パスをベタで書くのもいやだ。でもベタでとりあえず書いて一旦終了。
あと、:GoErrCheckとかやると、パス関連が変な表示になりエラーになる。まだいろいろ設定不備がありそうなので、あとで調べる。

追記:
.bashrcに下記を追加したら問題なく動作するようになった。

export GOPATH=$HOME/go
export GOROOT=/d/go
export GOBIN=$HOME/go/bin

vimでphpを使う

参考:VimでのPHP開発環境

PHP開発に便利なプラグイン

NeoBundleでプラグインを入れられるようになったので、上記を参考に、PHP開発に有用そうなプラグインを入れてみます。

Shougo/neocomplete.vim 関数名とか補完してくれるやつ。
Shougo/neosnippet.vim スニペット登録できるやつ。Shougo/neosnippet-snippetsも入れる必要があるらしい。
thinca/vim-ref PHPのマニュアルをvimで見られるやつ。テキストブラウザが必要らしい。
tomtom/tcomment_vim ファイルの種類に合わせて、適切なコメントアウトをしてくれるやつ。
AndrewRadev/splitjoin.vim 展開したり、1行にまとめたりできるやつ。
osyo-manga/vim-watchdogs 構文チェックしてくれるやつ。

NeoBundleでインストール

NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle 'Shougo/neocomplete.vim'
NeoBundle 'nanotech/jellybeans.vim'
NeoBundle 'Shougo/neosnippet.vim'
NeoBundle 'Shougo/neosnippet-snippets'
NeoBundle 'thinca/vim-ref'
NeoBundle 'tomtom/tcomment_vim'
NeoBundle 'AndrewRadev/splitjoin.vim'
NeoBundle 'osyo-manga/vim-watchdogs'

エラーなくインストールできた。
まだ他のサイトにも色々情報があり、全部調べて設定するのは結構大変そう。また今度やる。

参考:
VimでPHP開発環境を作成
vimのPHP開発環境

vim – NeoBundleでプラグイン管理する

参考:Vim pluginへの入門[NeoBundle.vim]

NeoBundleはプラグインを管理するやつ。使い方を上記サイトが書いてくれている。

NeoBundleの設定

vimrcに設定を書きます。

" neobundle settings                                                                                                                                            
if has('vim_starting')
    set nocompatible
    " neobundle をインストールしていない場合は自動インストール
    if !isdirectory(expand("~/.vim/bundle/neobundle.vim/"))
        echo "install neobundle..."
        " vim からコマンド呼び出しているだけ neobundle.vim のクローン
        :call system("git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim")
    endif
    " runtimepath の追加は必須
    set runtimepath+=~/.vim/bundle/neobundle.vim/
endif

call neobundle#begin(expand('~/.vim/bundle'))
let g:neobundle_default_git_protocol='https'

NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle 'nanotech/jellybeans.vim'


NeoBundleCheck
call neobundle#end()
filetype plugin indent on

call neobundle#beginと、call neobundle#end()の間に、NeoBundle ‘nanotech/jellybeans.vim’とかって書いていけばいいっぽい。

Vimの設定(vimrc)

macのyosemiteの時にvimrcをちょっと編集してたのですが、El Capitanにしたら消えました。なんでもかんでも消えるから面倒くださいです。まあでも変な不具合的な状態もクリアされるので、OSのインストールし直しとかは不要になるのかも。でも、最近やたらとmacが重いです。再起動してもすぐ重いです。8GBのメモリはphpstormとchrome使った時点で数時間後にはほぼ埋まる感じだし、atomに変えたりchromeの開くタブ数を極力減らして、メモリ使用量を5GM以内に抑えてても、結局2時間後くらいには劇おそになります。macのアクティビティモニタを開いてると遅い気がする。でもそれが開いてなくてもやっぱ遅い。メモリ64MBのハイスペックPC買いたいっす。メモリ軽いといえばvimだと思いますし、nginxの設定とかはいつもvimでやっているので、vimもなるべく使いやすくしたいと思いまっす。

現在のvimrcの中身は、下記でした。vimrcの場所は、/usr/share/vim/vimrcでした。

" Configuration file for vim
set modelines=0         " CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible        " Use Vim defaults instead of 100% vi compatibility
set backspace=2         " more powerful backspacing

" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup nobackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup nobackup

vimrcのパスを確認する

/usr/share/vim/vimrcを編集してもroot権限でも書き込みができなかったので、自分のユーザアカウントのvimrcを編集してみる。

下記のように、version確認をするとvimrcのパスも教えてくれるらしい。

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr  5 2016 14:53:37)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent 
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
-conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs 
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path 
+find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv 
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent 
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape 
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse 
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype 
+path_extra -perl +persistent_undo +postscript +printer -profile +python/dyn 
-python3 +quickfix +reltime -rightleft +ruby/dyn +scrollbind +signs 
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary 
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
 -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo 
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
 -xterm_clipboard -xterm_save 
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses

$HOME/.vimrcがパスのようだ。

$HOME/.vimrcを作成する

$ touch $HOME/.vimrc

vimrcの編集

/usr/share/vim/vimrcの内容に下記を追加した。

colorscheme koehler                                                                                
syntax on                                                                                          
                                                                                                   
set number                                                                                         
set title                                                                                          
set laststatus=2                                                                                   
set statusline=%F%r%h%=                                                                            
set ambiwidth=double                                                                               
set tabstop=4                                                                                      
"set expandtab                                                                                     
set shiftwidth=4                                                                                   
set smartindent                                                                                    
"set list                                                                                          
"set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%                                    
set nrformats-=octal                                                                               
set hidden                                                                                         
set history=50                                                                                     
set virtualedit=block                                                                              
set whichwrap=b,s,[,],<,>                                                                          
set backspace=indent,eol,start                                                                     
set wildmenu                                                                                       
nnoremap Y y$                                                                                      
set display=lastline                                                                               
set pumheight=10                                                                                   
set showmatch                                                                                      
set matchtime=1                                                                                    
nnoremap + <C-a>                                                                                   
nnoremap - <C-x>                                                                                   
"set mouse=a                                                                                       
set incsearch                                                                                      
set wildmenu wildmode=list:full                                                                    
syntax on                                                                                          
set nohlsearch                                                                                     
set cursorline                                                                                     
highlight Normal ctermbg=black ctermfg=grey                                                        
highlight StatusLine term=none cterm=none ctermfg=black ctermbg=grey                               
highlight CursorLine term=none cterm=none ctermfg=none ctermbg=darkgray

colorschemeをダウンロードして使ってみる

molokai.vimを使ってみます。molokai.vimをダウンロードして、$HOME/.vim/colorsに移動させます。移動後にvimを立ち上げて、:colorscheme molokaiとやるとエラーが出ないのですが、正しい色になりません。

set t_Co=256を追加する

意味不明ですが、set t_Co=256を追加したら、molokaiが反映されました。

vim

参考:
Vim 設定ガイド
個人的に便利だと思うVimの基本設定のランキングを発表します!
設定ファイルを作って自分の好みに改造 (1/3)
Vim のカラースキーマを変更する

Vimの設定

とりあえず、Yosemiteのmacの下記を開き、各種設定項目を追加した。

$ sudo vim /usr/share/vim/vimrc

" Configuration file for vim
set modelines=0     " CVE-2007-2438

" Normally we use vim-extensions. If you want true vi-compatibility
" remove change the following statements
set nocompatible    " Use Vim defaults instead of 100% vi compatibility
set backspace=2     " more powerful backspacing

" Don't write backup file if vim is being called by "crontab -e" 
au BufWrite /private/tmp/crontab.* set nowritebackup nobackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup nobackup

"colorscheme slate
"colorscheme ron
"colorscheme rdark
colorscheme molokai
"colorscheme hybrid
syntax on

set number
set title
set ambiwidth=double
set tabstop=4
set expandtab
set shiftwidth=4
set smartindent
"set list
"set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%
set nrformats-=octal
set hidden
set history=50
set virtualedit=block
set whichwrap=b,s,[,],<,>
set backspace=indent,eol,start
set wildmenu

色のテーマは、/usr/share/vim/vim73/colors内に設定ファイルを入れればいいのかなと思ってるけど、正しくないのかも。今度調べる。

CentOSでのVimの設定

参考:http://www.server-world.info/query?os=CentOS_6&p=initial_conf&f=7

/etc/vimrcを設定すればできた。

Vim 使い方

x #文字を消す
r #文字を入れ替える
i #挿入モード

dd #行削除

0 #行頭移動
$ #行末移動
:0 #1行目に移動
:$ #最後の行に移動

:w #ファイル保存
:q #終了
:wq #保存して終了
:w! #強制保存
:q! #強制終了

/hogehoge #ファイル内検索(hogehogeを探す)
n #検索結果の次に移動

:set number #行番号表示

%s/hoge/moge/g 置換(開いているファイルのhogeを全てmogeに置換)