Notez que j'ai construit l'environnement d'El Capitan à partir de zéro pour la première fois depuis longtemps.
Puisqu'il a déjà été publié, les détails sont omis.
$ xcode-select --install
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Cette fois, c'était une installation propre sur El Capitan, donc je n'ai pensé à rien et c'était aussi officiel. Faites attention à la fonction de protection du système "Rootless" lors de la mise à jour depuis Yosemite.
Depuis qu'il est déjà apparu (rya)
$ brew install zsh --without-etcdir
$ brew install z zsh-completions zsh-history-substring-search zsh-syntax-highlighting
$ sudo echo "/usr/local/bin/zsh" >> /etc/shells
$ chsh -s /usr/local/bin/zsh
"Shell Integration" qui peut être utilisé dans la version bêta est bien, Conformez-vous à la politique de base 1 "Installez les applications avec Homebrew + Cask autant que possible".
$ brew cask install iTerm2
En premier lieu, j'ai décidé de créer un environnement à partir de zéro car j'ai lu cet article. → Construire un environnement python pour ceux qui souhaitent devenir des data scientists 2016 --Qiita
Anaconda peut briser l'environnement Homebrew, alors mordez pyenv. Puisque l'environnement virtuel qui suit est défini par Anaconda, pyenv n'est effectué qu'une seule fois.
$ brew install pyenv
$ pyenv install anaconda3-2.5.0
$ pyenv global anaconda3-2.5.0
$ pyenv rehash
Si la capacité est limitée avec MacBook Air, etc., Miniconda peut convenir.
Dein.vim doit être 7.4 ou supérieur (ou NeoVim), alors réinsérez-le.
$ brew install lua luajit
$ brew install vim --override-system-vi --with-lua --with-luajit --with-python3
En cours de route, le python dépendant est installé sans autorisation, mais il n'y a pas de problème car .zshrc est réécrit pour que le Python d'Anaconda soit préférentiellement référencé.
** * Le texte intégral de .zshrc sera exposé à la fin de l'article. ** **
En attendant, procédez comme suit: Si vous n'êtes pas à l'aise, vérifiez à chaque fois avec python -V
.
$ export PATH=~/anaconda3/bin:"$PATH"
Merci à Shougo et a fait ce qui suit:
$ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
$ sh ./installer.sh ~/.vim/dein
Puisqu'il n'y a pas de convention, je l'ai installé dans ~ / .vim / dein
.
Continuez avec .vimrc.
Document officiel street.
$ pip install --user powerline-status
Lorsqu'elles sont installées dans l'environnement Anaconda, les commandes Powerline semblent être installées dans ~ / .local / bin
.
Alors, j'ai ajouté quelque chose comme ça.
** * Le texte intégral de .zshrc sera exposé à la fin de l'article. ** **
## Powerline
# https://powerline.readthedocs.org/en/master/
if [ -d ~/.local/bin ]; then
export PATH="$PATH":~/.local/bin
powerline-daemon -q
. ~/.local/lib/python3.5/site-packages/powerline/bindings/zsh/powerline.zsh
fi
Politique de base 5 «J'essaye de ne pas augmenter le temps et les efforts même si je réutilise des dotfiles sur d'autres machines» est encore insuffisant, mais pour le moment.
C'est un problème d'appliquer des correctifs, alors téléchargez les polices corrigées depuis GitHub. → https://github.com/powerline/fonts Si vous le décompressez et exécutez install.sh, il sera installé en une seule fois.
dotfiles Maintenant que nous sommes prêts, récupérez le fichier de configuration.
.zshrc Paramètres indépendants du système d'exploitation.zshrc, paramètres dépendants du système d'exploitation.zshrc.mine.(osx|ubuntu|cent), Paramètres en fonction de la machine(Paramètres de proxy du lieu de travail, etc.)À.zshrc.Décrit comme machine.
.zshrc
# LastModified: 2016/02/04
## Zsh launch Time measurement START
#
#zmodload zsh/zprof
## Environment variable configuration
#
# LANG
#
export LANG=ja_JP.UTF-8
export LC_ALL='ja_JP.UTF-8'
case ${UID} in
0)
LANG=C
;;
esac
## Default shell configuration
#
# set prompt
#
autoload -Uz add-zsh-hook
autoload -Uz colors
colors
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git svn hg bzr
# %s: vcs name, %b: branch name, %a: action name
zstyle ':vcs_info:*' formats '[%s - %b]'
zstyle ':vcs_info:*' actionformats '[%s - %b|%a]'
function _update_vcs_info {
psvar=()
LANG=en_US.UTF-8 vcs_info
[[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_"
RPROMPT="%1(v|%F{green}%1v%f|)"
}
add-zsh-hook precmd _update_vcs_info
case ${UID} in
0)
PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') %B%{${fg[red]}%}%/#%{${reset_color}%}%b "
PROMPT2="%B%{${fg[red]}%}%_#%{${reset_color}%}%b "
SPROMPT="%B%{${fg[red]}%}%r is correct? [No,Yes,Abort,Edit]:%{${reset_color}%}%b "
;;
*)
PROMPT="%{${fg[red]}%}%/%%%{${reset_color}%} "
PROMPT2="%{${fg[red]}%}%_%%%{${reset_color}%} "
SPROMPT="%{${fg[red]}%}%r is correct? [No,Yes,Abort,Edit]:%{${reset_color}%} "
[ -n "${REMOTEHOST}${SSH_CONNECTION}" ] && PROMPT="%{${fg[cyan]}%}$(echo ${HOST%%.*} | tr '[a-z]' '[A-Z]') ${PROMPT}"
;;
esac
# Don't logoff when pushed C-d
#
setopt ignore_eof
# auto change directory
#
setopt auto_cd
# auto directory pushd that you can get dirs list by cd -[tab]
#
setopt auto_pushd
## cdr
autoload -Uz is-at-least
if is-at-least 4.3.11
then
autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
add-zsh-hook chpwd chpwd_recent_dirs
zstyle ':chpwd:*' recent-dirs-max 5000
zstyle ':chpwd:*' recent-dirs-default yes
zstyle ':completion:*' recent-dirs-insert both
fi
# command correct edition before each completion attempt
#
setopt correct
# compacked complete list display
#
setopt list_packed
# no remove postfix slash of command line
#
setopt noautoremoveslash
# no beep sound when complete list displayed
#
setopt nolistbeep
# no nomatch
#
setopt nonomatch
# print eight bit
setopt print_eight_bit
## Keybind configuration
#
# emacs like keybind (e.x. Ctrl-a gets to line head and Ctrl-e gets
# to end) and something additions
#
bindkey -e
bindkey "^[[1~" beginning-of-line # Home gets to line head
bindkey "^[[4~" end-of-line # End gets to line end
bindkey "^[[3~" delete-char # Del
# historical backward/forward search with linehead string binded to ^P/^N
#
autoload -Uz history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^p" history-beginning-search-backward-end
bindkey "^n" history-beginning-search-forward-end
bindkey "\\ep" history-beginning-search-backward-end
bindkey "\\en" history-beginning-search-forward-end
# reverse menu completion binded to Shift-Tab
#
bindkey "\e[Z" reverse-menu-complete
## Command history configuration
#
HISTFILE=${HOME}/.zsh_history
HISTSIZE=50000
SAVEHIST=50000
setopt hist_ignore_all_dups
setopt hist_ignore_dups
setopt hist_expand
setopt hist_ignore_space
setopt extended_history
setopt share_history
## zsh editor
#
autoload -Uz zed
## Alias configuration
#
# expand aliases before completing
setopt complete_aliases
alias where="command -v"
alias jobs="jobs -l"
alias la="ls -aF"
alias ll="ls -la"
alias du="du -H"
alias df="df -H"
alias rm="rm -i"
alias mv="mv -i"
alias cp="cp -i"
alias su="su -l"
alias vi='vim'
alias g='git'
alias -s rb="ruby"
alias -s py="python"
alias -s php="php -f"
alias -s go="go"
# delete unwanted files
alias duf="find . \( -name '.DS_Store' -o -name '._*' -o -name '.apdisk' -o -name 'Thumbs.db' -o -name 'Desktop.ini' \) -delete -print"
## terminal configuration
#
case "${TERM}" in
screen)
TERM=xterm-256color
;;
esac
case "${TERM}" in
xterm|xterm-color)
export LSCOLORS=exfxcxdxbxegedabagacad
export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
zstyle ':completion:*' list-colors 'di=34' 'ln=35' 'so=32' 'ex=31' 'bd=46;34' 'cd=43;34'
;;
esac
## auto ls
#
function chpwd() { ls -aF }
# zsh-syntax-highlighting
#
if [ -f /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]; then
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi
## SSH
#
bindkey "^?" backward-delete-char
export MANPATH=/usr/local/man:/usr/share/man:$MANPATH
## load user .zshrc configuration file
#
if [[ -f ~/.zshrc.mine ]]; then
source ~/.zshrc.mine
fi
bash:.zshrc.mine
# LastModified: 2016/03/22
################################################
# for MacOS X
################################################
## HomeBrew
#
export PATH=/usr/local/bin:/usr/local/sbin:$PATH
# HomeBrew Man
export MANPATH=/usr/local/man:/usr/share/man:$MANPATH
## rbenv
##
export RBENV_ROOT="/usr/local/var/rbenv"
if [ -d $RBENV_ROOT ]; then
export PATH="$RBENV_ROOT/bin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init - zsh)"; fi
fi
## pyenv
#
export PYENV_ROOT=/usr/local/var/pyenv
export PATH=/usr/local/bin:/usr/local/share/python:$PATH
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
## Gemfile
##
RUBYGEMS_GEMDEPS=-
# -: search Gemfile from current directory to ancestor
## nodebrew
##
nodebrew=$HOME/.nodebrew/current/bin
if [ -d "$nodebrew" ]; then
export PATH=$nodebrew:$PATH
nodebrew use stable > /dev/null
fi
## Alias
#
if [ -e /usr/local/bin/gls ]; then
alias ls="gls --color=auto -F"
else
alias ls="ls -GF"
fi
if [ -x "`which vim`" ]; then
alias vim="/usr/local/bin/vim"
fi
alias b='brew'
alias bi='brew info'
alias bl='brew list'
alias bs='brew -S'
alias bug='brew update && brew upgrade'
alias gibol='gibo -l | sed "/=/d" | tr "\t", "\n" | sed "/^$/d" | sort | peco | xargs gibo'
alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
alias mute_volume='osascript -e "set Volume 0"'
alias max_volume='osascript -e "set Volume 10"'
alias jnethack="cocot -t UTF-8 -p EUC-JP -- /usr/local/bin/jnethack"
# Pygments
if [ -x `which pygmentize` ]; then
alias c='pygmentize -O style=monokai -f console256 -g'
fi
# with Line numbers
alias -g L='| nl -n ln -b a'
## ccze
# Robust and modular log colorizer
# https://packages.debian.org/wheezy/ccze
if [ -x "`which ccze`" ]; then
alias -g C="| ccze -A"
fi
## Completion configuration
#
if [ -d /usr/local/share/zsh-completions ]; then
fpath=(/usr/local/share/zsh-completions $fpath)
fi
autoload -U compinit
compinit -C
## Google Cloud SDK
# brew cask install google-cloud-sdk
#
if [ -f /opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc ]; then
source /opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc
source /opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc
fi
## Go
#
if [ -x "`which go`" ]; then
export GOPATH=$HOME/go/
export GOROOT=`go env GOROOT`
export PATH=$PATH:$GOPATHbin:$GOROOT/bin
fi
## Peco
# brew tap peco/peco
#
if [ -x "`which peco`" ]; then
alias top='top | peco'
alias ps='ps aux | peco'
alias -g P='| peco'
function peco-select-history () {
local tac
if which gtac > /dev/null; then
tac="gtac"
elif which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
BUFFER=$(\history -n 1 | eval $tac | peco --query "$LBUFFER")
CURSOR=$#BUFFER # move cursor
#zle -R -c # refresh
}
zle -N peco-select-history
function peco-cdr () {
local selected_dir=$(cdr -l | awk '{ print $2 }' | peco)
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
#zle -R -c
}
zle -N peco-cdr
bindkey '^r' peco-select-history
bindkey '^j' peco-cdr
fi
## z.sh (https://github.com/rupa/z)
# brew install z
# like autojump
#
if [ -f `brew --prefix`/etc/profile.d/z.sh ]; then
source `brew --prefix`/etc/profile.d/z.sh
_Z_CMD=j
compctl -U -K _z_zsh_tab_completion "$_Z_CMD"
fi
## zsh-history-substring-search
# brew install zsh-history-substring-search
#
if [ -f /usr/local/opt/zsh-history-substring-search/zsh-history-substring-search.zsh ]; then
source /usr/local/opt/zsh-history-substring-search/zsh-history-substring-search.zsh
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
fi
## MObileSHell
#
compdef mosh=ssh
## Git
#
compdef g=git
## Haxe
#
export HAXE_STD_PATH="/usr/local/lib/haxe/std"
## Heroku
#
export PATH="/usr/local/heroku/bin:$PATH"
## translate-shell
# https://github.com/soimort/translate-shell
if [ -x "`which trans`" ]; then
alias -g T='| trans :ja'
fi
## iTerm2 Shell Integration
#
test -e ${HOME}/.iterm2_shell_integration.zsh && source ${HOME}/.iterm2_shell_integration.zsh
## Powerline
# pip install --user powerline-status
if [ -d ~/.local/bin ]; then
export PATH="$PATH":~/.local/bin
powerline-daemon -q
. ~/.local/lib/python3.5/site-packages/powerline/bindings/zsh/powerline.zsh
fi
## Setting of each machine
#
if [ -f ~/.zshrc.machine ]; then
source ~/.zshrc.machine
fi
## Login Message
#
echo "============================================================";
echo "= ===== ================== ===== ======== == =";
echo "= === ================= == === ==== ======== == ==";
echo "= = = ================ ==== == ==== ======== == ==";
echo "= == == === ==== === ==== === ============== ===";
echo "= ===== == = == = == ==== ===== ============= ====";
echo "= ===== ===== == ===== ==== ======= ========== ===";
echo "= ===== === == ===== ==== == ==== ======== == ==";
echo "= ===== == = == = === == === ==== ======== == ==";
echo "= ===== === === ===== ===== ======== ==== =";
echo "============================================================";
echo -e "\e[33m [Uptime & Who] \e[m"
w
if [ -x "`which fortune`" ]; then
echo -e "\n\e[33m [Today's fortune] \e[m"
fortune | trans :ja
fi
## Zsh launch Time measurement END
#
#if type zprof > /dev/null 2>&1; then
# zprof | ccze -A
#fi
Veuillez noter que vous pouvez vous fâcher avec "Not Found" dans un environnement où il n'est pas installé parce que vous utilisez régulièrement de tels paquets. Les deux sont faciles à installer à partir de Homebrew.
.vimrc
.vimrc
if &compatible
set nocompatible
endif
" Required:
set runtimepath^=~/.vim/dein/repos/github.com/Shougo/dein.vim
" Required:
call dein#begin(expand('~/.vim/dein'))
" Let dein manage dein
" Required:
call dein#add('Shougo/dein.vim')
call dein#add('Shougo/vimproc.vim', {
\ 'build': {
\ 'windows': 'tools\\update-dll-mingw',
\ 'cygwin': 'make -f make_cygwin.mak',
\ 'mac': 'make -f make_mac.mak',
\ 'linux': 'make',
\ 'unix': 'gmake',
\ },
\ })
" Add or remove your plugins here:
" Fundamental
call dein#add('vim-jp/vimdoc-ja')
call dein#add('Shougo/neosnippet.vim')
call dein#add('Shougo/neosnippet-snippets')
call dein#add('Shougo/unite.vim')
call dein#add('Shougo/vimshell')
call dein#add('scrooloose/nerdtree')
call dein#add('editorconfig/editorconfig-vim')
" Git
call dein#add('tpope/vim-fugitive')
call dein#add('airblade/vim-gitgutter')
" Visual
call dein#add('powerline/powerline', {'rtp': 'powerline/bindings/vim/'})
" Required:
call dein#end()
filetype plugin indent on
" If you want to install not installed plugins on startup.
if dein#check_install()
call dein#install()
endif
" Unite
let g:unite_enable_start_insert = 1
let g:unite_enable_ignore_case = 1
let g:unite_enable_smart_case = 1
" grep
nnoremap <silent> ,g :<C-u>Unite grep:. -buffer-name=search-buffer<CR>
" grep on cursor
nnoremap <silent> ,cg :<C-u>Unite grep:. -buffer-name=search-buffer<CR><C-R><C-W><CR>
" resume grep
nnoremap <silent> ,r :<C-u>UniteResume search-buffer<CR>
set number
set title
set ruler
set showcmd
set showmatch
set matchtime=1
set laststatus=2
set showtabline=2
set noshowmode
set spell
set autoindent
set smartindent
set expandtab
set ts=2 sw=2 sts=0
autocmd BufReadPost * if 0 < line("'\"") && line("'\"") <= line("$") | exe "normal g`\"" | endif
set ignorecase
set smartcase
set wrapscan
set incsearch
set hlsearch
set backspace=start,eol,indent
" Highlight TrailingSpaces
augroup HighlightTrailingSpaces
autocmd!
autocmd VimEnter,WinEnter,ColorScheme * highlight TrailingSpaces term=underline guibg=Red ctermbg=Red
autocmd VimEnter,WinEnter * match TrailingSpaces /\s\+$/
augroup END
En passant, je posterai également le vimrc utilisé dans NeoBundle avant Dein.vim.
vimrc.neobundle
" LastModified: 2015/02/10
if has('vim_starting')
"set nocompatible " Be iMproved
set runtimepath+=~/.vim/bundle/neobundle.vim/
endif
call neobundle#begin(expand('~/.vim/bundle/'))
" Let NeoBundle manage NeoBundle
NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle 'Shougo/vimproc', {
\ 'build' : {
\ 'windows' : 'make -f make_mingw32.mak',
\ 'cygwin' : 'make -f make_cygwin.mak',
\ 'mac' : 'make -f make_mac.mak',
\ 'unix' : 'make -f make_unix.mak',
\ },
\ }
" My Bundles here:
NeoBundle 'Shougo/neocomplete'
NeoBundle 'Shougo/unite.vim'
NeoBundle 'tpope/vim-fugitive'
NeoBundle 'airblade/vim-gitgutter'
NeoBundle 'editorconfig/editorconfig-vim'
NeoBundle 'mattn/emmet-vim'
NeoBundle 'itchyny/lightline.vim'
NeoBundle 'tomasr/molokai'
NeoBundle 'vim-jp/vimdoc-ja'
NeoBundle 'rking/ag.vim'
NeoBundle 'scrooloose/nerdtree'
NeoBundleCheck
call neobundle#end()
filetype plugin indent on " Required!
filetype indent on
syntax on
" neocomplete
let g:neocomplete#enable_at_startup = 1
let g:neocomplete#enable_smart_case = 1
let g:neocomplete#force_overwrite_completefunc = 1
" Unite
let g:unite_enable_start_insert = 1
let g:unite_enable_ignore_case = 1
let g:unite_enable_smart_case = 1
" grep
nnoremap <silent> ,g :<C-u>Unite grep:. -buffer-name=search-buffer<CR>
" grep on cursor
nnoremap <silent> ,cg :<C-u>Unite grep:. -buffer-name=search-buffer<CR><C-R><C-W><CR>
" resume grep
nnoremap <silent> ,r :<C-u>UniteResume search-buffer<CR>
" use 'ag' instead of 'grep'
if executable('ag')
let g:unite_source_grep_command = 'ag'
let g:unite_source_grep_default_opts = '--nogroup --nocolor --column'
let g:unite_source_grep_recursive_opt = ''
endif
set number
set showmode
set title
set ruler
set showcmd
set showmatch
set matchtime=1
set laststatus=2
set spell
set display=lastline
set autoindent
set smartindent
set expandtab
set ts=2 sw=2 sts=0
autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif
set ignorecase
set smartcase
set wrapscan
set incsearch
set hlsearch
set backspace=start,eol,indent
" Highlight TrailingSpaces
augroup HighlightTrailingSpaces
autocmd!
autocmd VimEnter,WinEnter,ColorScheme * highlight TrailingSpaces term=underline guibg=Red ctermbg=Red
autocmd VimEnter,WinEnter * match TrailingSpaces /\s\+$/
augroup END
" colorscheme
colorscheme molokai
let g:molokai_original = 1
let g:rehash256 = 1
Cela fait mal, mais vous pouvez l'éviter en écrivant LC_ALL dans .zshrc.
.zshrc
export LANG=ja_JP.UTF-8
export LC_ALL='ja_JP.UTF-8'
Le profil iTerm2 a des paramètres de police régulière et non-ASCII, et le triangle est dessiné en police non-ASCII, donc Les deux définissent des polices corrigées et Décochez "Traiter les caractères de largeur ambiguë comme une double largeur". Il est plus rapide de piloter cette zone avec [config] de Powerline (https://powerline.readthedocs.org/en/latest/configuration/reference.html).
Le temps de travail net est d'environ 15 minutes. Mémo mémo pour qu'il ne devienne pas "un souvenir que j'ai oublié pendant que les fleurs de cerisier tombent".
Recommended Posts