Bash on Ubuntu on Windowsの設定

Bash on Ubuntu on Windowsを試してみた。
どうやら日本語対応がまだらしく表示がよくずれる。正直まだまだbeta版って感じ。今後のアップデートに期待。
コマンドプロンプトから起動したBash on Ubuntu on Windowsはよく動作が変になるので、直接Bash on Ubuntu on Windowsの起動を勧める。
ちなみに設定は完全に個人用なのでもろもろ要注意。

# Git
とりあえずgitを入れる。

```bash
$ sudo apt-get install git
```

gitの環境設定

```bash
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
$ git config --global color.ui true
```

確認

```bash
$ git config --list
```

# ~/.bashrc
とりあえずのエイリアスと ls の色が気持ち悪いので変更

```bash:~/.bashrc
#
#  Language
#
export LANG='ja_JP.utf8'
export LC_ALL='ja_JP.utf8'
export LC_MESSAGES='ja_JP.utf8
#
alias ls='ls --color'
alias ll='ls -l --color'                                                                  alias la='ls -la --color'
export LS_COLORS='di=01;32'
```

# vim
~~clipboard使えないやつなので必要パッケージを入れる。~~
結局使えなかったのでいらない。

```bash
$ sudo apt-get -y install vim-gtk vim-athena vim-gnome
$ vim --version | grep clipboard # 確認
# +clipboard       +iconv           +path_extra      +toolbar
# +eval            +mouse_dec       +startuptime     +xterm_clipboard
```

まずmolokai（カラースキーマ）を入れる。

```bash
$ mkdir -p ~/.vim/colors
$ git clone https://github.com/tomasr/molokai
$ mv molokai/colors/molokai.vim ~/.vim/colors/
$ rm -r molokai
```

次に.vimrc
コマンドプロンプト並みの色しか使えないらしく、思ったカラースキーマになっていないのでちょいちょい書き換えた。

```vim:~/.vimrc
set encoding=utf-8
set fileencodings=utf-8,iso-2022-jp,euc-jp,sjis,ucs-bom
set fileformats=unix,dos,mac
syntax on
colorscheme molokai
set number
set hlsearch
set visualbell t_vb=
set expandtab
set tabstop=2
set shiftwidth=2
set softtabstop=2
set laststatus=2
set cursorline

set backspace=start,eol,indent
set whichwrap=b,s,[,],,~
highlight StatusLine term=none cterm=none ctermfg=black ctermbg=grey
highlight LineNr term=none cterm=NONE ctermfg=darkgrey
highlight PreProc term=none cterm=NONE ctermfg=darkcyan
highlight Import term=none cterm=none ctermfg=darkgreen
highlight NonText term=none cterm=none ctermfg=darkgrey ctermbg=none guibg=NONE guifg=Grey
highlight SpecialKey term=none cterm=none ctermfg=darkgrey ctermbg=none guibg=NONE guifg=Grey
highlight Comment term=italic cterm=none ctermfg=brown ctermbg=none guifg=#000000 guibg=#FFE792
"
set list
set listchars=tab:>.,trail:_,eol:↲,extends:>,precedes:<,nbsp:%
function! ZenkakuSpace()
    highlight ZenkakuSpace cterm=reverse ctermfg=DarkMagenta gui=reverse guifg=DarkMagenta
endfunction

if has('syntax')
    augroup ZenkakuSpace
        autocmd!
        autocmd ColorScheme       * call ZenkakuSpace()
        autocmd VimEnter,WinEnter * match ZenkakuSpace /　/
    augroup END
    call ZenkakuSpace()
endif


augroup vimrcEx
  au BufRead * if line("'\"") > 0 && line("'\"") <= line("$") |
  \ exe "normal g`\"" | endif
augroup END

set clipboard+=unnamedplus

" Indent Python in the Google way.

let s:maxoff = 50 " maximum number of lines to look backwards.

function GetGooglePythonIndent(lnum)

  " Indent inside parens.
  " Align with the open paren unless it is at the end of the line.
  " E.g.
  "   open_paren_not_at_EOL(100,
  "                         (200,
  "                          300),
  "                         400)
  "   open_paren_at_EOL(
  "       100, 200, 300, 400)
  call cursor(a:lnum, 1)
  let [par_line, par_col] = searchpairpos('(¥|{¥|¥[', '', ')¥|}¥|¥]', 'bW',
        ¥ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :"
        ¥ . " synIDattr(synID(line('.'), col('.'), 1), 'name')"
        ¥ . " =‾ '¥¥(Comment¥¥|String¥¥)$'")
  if par_line > 0
    call cursor(par_line, 1)
    if par_col != col("$") - 1
      return par_col
    endif
  endif

  " Delegate the rest to the original function.
  return GetPythonIndent(a:lnum)

endfunction

let pyindent_nested_paren="&sw*2"
let pyindent_open_paren="&sw*2"


au BufRead, BufNewFile *.py setlocal indentexpr=GetGooglePythonIndent(v:lnum)
```

# zsh + prezto

zshのインストール

```bash
$ sudo apt-get install zsh
$ zsh # zshを起動
```

preztoのインストールと導入

```zsh
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
$ setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```

```zsh:~/.zpreztorc
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'git' \ # 追加
  'prompt'
```

134行目あたり

```zsh:~/.zprezto/modules/prompt/functions/prompt_sorin_setup
# PROMPT='${SSH_TTY:+"%F{9}%n%f%F{7}@%f%F{3}%m%f "}%F{4}${_prompt_sorin_pwd}%(!. %B%F{1}#%f%b.)${editor_info[keymap]} '
  PROMPT='${SSH_TTY:+"%F{9}%n%f%F{7}@%f%F{3}%m%f "}%F{8}${_prompt_sorin_pwd}%(!. %B%F{1}#%f%b.)${editor_info[keymap]} '
```

```zsh:~/.zshrc
setopt no_beep

autoload colors
colors
export LSCOLORS=cxfxcxdxbxegedabagacad
export LS_COLORS='di=32;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;46'
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
```

# Pyenv

```zsh
$ sudo apt-get install gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
```

```zsh:~/.zshrc
# Pyenv↲
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
```

```zsh
$ source ~/.zshrc
# あとは好きな設定をする。
$ pyenv install 2.7.11
$ pyenv rehash
$ pyenv global 2.7.11
```

# virtualenv

```zsh
$ sudo apt-get install python-pip python-dev python-virtualenv
```