initial commit

This commit is contained in:
Kazuhiro MUSASHI 2024-02-10 21:33:24 +09:00
commit 3e903cf7aa
23 changed files with 1040 additions and 0 deletions

11
.chef_databag_secret Normal file
View File

@ -0,0 +1,11 @@
dCvArbY7gJrPYVF+JWK+EoPH8BurVDAeaDLxDHn9uHPZFhcbb7UpptYMEdxq8EKL
cfPHPJbkc1DEydL6zlgQIkbXGVFH+pVMtWpX9ADyVE6g6NJ1ouXRLFD79ikHt6sz
sIlihssIOahrcURKK5/W52CwDZT9/aY1m1lJUktbW3pmfNFQ3O9oXpDjYyjosPrn
n2Mnbicb85xxrnz5pRhLt+qw9EalNa1Jqi4e60QL4j8ZvhIoHWPoyhKDwahjzKCk
K3LVpLMPLMSN6TshVvmOUCy5f9Je4fEZBT2Ds/1aJkHbbKlIvk62QmfUKdKJeTbR
mtlIs2jSICX43RqdzJnwK6ZynBQ7GU+D5iicEB9jtgtk1UsoEXdMjsqUs4ECi4GQ
bJxpdiUxuTuoZaMeniOzzDu52dbSt3fp8z9w+8u0moszGaLEg7lRZSIvKtQ+OHee
BFFzJ9bgdI8JC/2HZXsvFujUDPwJW14RHn8x5HgDY0L8HPvmQaTQeVW3tG8zzLfN
J4O2KtN1TfcwNLdZF2VF60UY2XhQdBhNR5gT4m3k8a+7XLJ9vc95VuFG+qxU2eZ9
vqG+UPkGStDworV6p8tLy5RYh9WF+oKr+IRSREQzOk1r+GQm59X06zzoKgKwIB9U
9MYvIna0gXvpvLcbZjvhkMlttwJ8y+URJ20UxqzNubM=

1
.gemrc Normal file
View File

@ -0,0 +1 @@
gem: --no-ri --no-rdoc

93
.gitconfig Normal file
View File

@ -0,0 +1,93 @@
[user]
name = Kazuhiro MUSASHI
email = simoom634@yahoo.co.jp
[color]
# colorの設定(以下のコマンドは自動で色つける)
status = auto
diff = auto
branch = auto
interactive = auto
grep = auto
[core]
editor = /usr/bin/vim
[alias]
# log関連
logg = !git log --reverse --oneline main..`git symbolic-ref HEAD` | fzf --preview 'git show --oneline --color=always {1}'
# log + graph
graph = log --graph --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
# status - shorter version
s = status -s -b
# status
st = status
# diff
d = "!f() { args=$@; [ -z \"$args\" ] && args=HEAD; ([ \"$args\" = \"HEAD\" ] && git status --short || git diff --name-status $args | sed 's/\t/ /') | fzf --preview \"echo {} | cut -c 4- | xargs git diff --color=always $args --\" --multi --height 90% | cut -c 4-; }; f"
# checkout
co = "!f() { args=$@; if [ -z \"$args\" ]; then branch=$(git branch --all | grep -v HEAD | fzf --preview 'echo {} | cut -c 3- | xargs git log --color=always'); git checkout $(echo $branch | sed 's#remotes/[^/]*/##'); else git checkout $args; fi }; f"
# commit
c = commit
# init, add, and commit
prep = !git init && git add . && git commit -m \"initial commit\"
# add
a = !git add . && git now
# alias
alias = !git config --list | grep 'alias\\.' | sed 's/alias\\.\\([^=]*\\)=\\(.*\\)/\\1\\\t => \\2/' | sort
# tags
# http://qiita.com/items/2b9d9560381bbe316818
tags = for-each-ref --sort=-taggerdate --format='%(taggerdate:short) %(tag) %(taggername) %(subject)' refs/tags
# git update
# http://qiita.com/tomy_kaira/items/2e1d575202e14a28b600
update = "!sh -c 'git ft; git rsm; git delete-merged-branches'"
ft = fetch --prune
rsm = update-ref refs/heads/main origin/main
delete-merged-branches = !"brs=`git branch --merged main | grep -Ev '(main|dev)' | grep -v '*'` && git branch -D $brs || true"
up = "!git remote update -p; git merge --ff-only @{u}; git delete-merged-branches"
# git now rebase
nr = "!git now rebase"
# git mkbranch = git co -b [branch name]
mkbranch = checkout -b
# git empty = git commit --allow-empty
empty = commit --allow-empty -m "[WIP] " -e
# git r, meaning `git rebase -i HEAD~` from the 1st commit in the current branch to the last.
r = "!git rebase --keep-empty -i HEAD~$(git log --pretty=oneline main..$(git symbolic-ref HEAD) | wc -l | sed -Ee 's/ +//')"
stl = !git stash list | fzf --preview 'echo {} | grep -o stash@{.*} | xargs git stash show -p --color=always' --height 90% | grep -o stash@{.*}
sta = !git stl | xargs git stash apply
std = !git stl | xargs git stash drop
# git chls
chls = !git log --name-status --oneline main..`git symbolic-ref HEAD` --reverse
[merge]
# from 1.7.6
ff = false
[pull]
# from 1.7.9
rebase = true
[credential]
helper = cache
[filter "lfs"]
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
clean = git-lfs clean -- %f
[init]
defaultBranch = main

43
.gitignore vendored Normal file
View File

@ -0,0 +1,43 @@
Desktop/
Documents/
Downloads/
Dropbox/
Library/
Movies/
Music
Pictures
Public/
Sites/
Wallpapers/
bin
emacs
emacs.el
junk/
working
.CFUserTextEncoding
.DS_Store
.Trash/
.emacs.d
.emacs
*.swp
.bash_history
.cpanm/
.dropbox/
.dvdcss/
.hatena/
.migemo-pattern
.neocon/
.recentf
.rnd
.sqlite_history
.ssh/
.subversion/
.unite/
.vim
.vim-vundle/
.viminfo
.zcompdump
.zhistory
Eye-Fi Card.log
tmux-*.log
.zcompcache/

28
.screenrc Normal file
View File

@ -0,0 +1,28 @@
# Misc
startup_message off # おまけ: 起動画面OFF
autodetach on # おまけ: 回線切断時に自動でdetach
defscrollback 1024 # おまけ: スクロールバッファ行数を増やす
# Key bind
escape ^Zz
# I like a large scrollback buffer.
defscrollback 1000
# Logging
logfile "/home/kazu634/log/screen-%Y%m%d-%n.log"
log on
deflog on
# Status Line
hardstatus alwayslastline '%m/%d %02c:%s %{= .g}%H%{-} %L=%-w%45L>%{=u g.}%n %t%{-}%+w'
# Caption
caption always '%?%F%{= gW}%:%{= Kk}%?%2n%f%07=%t%='
# sorendition
sorendition "+rb .G"
# Screen saver
idle 180
blankerprg /usr/games/fortune starwars

112
.tmux.conf Normal file
View File

@ -0,0 +1,112 @@
# ------------------------- #
# PREFIX
# ------------------------- #
# Unbind the default PREFIX key
unbind C-b
# Define a PREFIX key
set -g prefix C-z
# ------------------------- #
# Delay
# ------------------------- #
set -s escape-time 1
# ------------------------- #
# Base index for window and panes
# ------------------------- #
set -g base-index 1
setw -g pane-base-index 1
# ------------------------- #
# key-bindings
# ------------------------- #
# Reloading the source file.
bind r source-file ${HOME}/.tmux.conf \; display "~/.tmux.conf reloaded."
# Spliting the window
bind | split-window -h
bind - split-window -v
# Movement keys
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Movement, when pressing TAB
unbind Tab
bind Tab select-pane -t :.+
# vi-like keybindings, when copy-mode
set-window-option -g mode-keys vi
# Resize panes, using vim keybindings
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# ------------------------ #
# mouse mode
# ------------------------ #
# setw -g mode-mouse off
# ------------------------- #
# Status bar
# ------------------------- #
setw -g monitor-activity on
set -g visual-activity on
set -g status-right "@#(uname -n) %Y/%m/%d %H:%M:%S"
# ------------------------- #
# Colour (Solarized dark)
# ------------------------- #
# default statusbar colors
set-option -g status-style bg=black,fg=yellow,default
# default window title colors
set-window-option -g window-status-style fg=brightblue,bg=default
#set-window-option -g window-status-attr dim
# active window title colors
set-window-option -g window-status-current-style fg=brightred,bg=default
#set-window-option -g window-status-current-attr bright
# pane border
set-option -g pane-border-style fg=black
set-option -g pane-active-border-style fg=brightgreen
# message text
set-option -g message-style bg=black,fg=brightred
# pane number display
set-option -g display-panes-active-colour blue #blue
set-option -g display-panes-colour brightred #orange
# clock
set-window-option -g clock-mode-colour green #green
# Screensaver
set -g lock-after-time 60
set -g lock-command "/usr/games/fortune starwar"
set -g default-terminal "tmux-256color"
# Update with value from default-terminal
set -ga terminal-overrides ",tmux-256color:Tc"
# Ms modifies OSC 52 clipboard handling to work with mosh, see
# https://gist.github.com/yudai/95b20e3da66df1b066531997f982b57b
set -ag terminal-overrides "vte*:XT:Ms=\\E]52;c;%p2%s\\7,xterm*:XT:Ms=\\E]52;c;%p2%s\\7"
# enable OSC 52 clipboard
set -g set-clipboard on

391
.vimrc Normal file
View File

@ -0,0 +1,391 @@
set nocompatible " Be iMproved
filetype off " Required!
if has('vim_starting')
set runtimepath+=~/.vim/bundle/neobundle.vim/
endif
call neobundle#begin(expand('~/.vim/bundle/'))
NeoBundleFetch "Shougo/neobundle.vim"
" my bundles here:
NeoBundle 'Shougo/neocomplcache.git'
NeoBundle 'Shougo/neosnippet.git'
NeoBundle 'Shougo/unite.vim.git'
NeoBundle "thinca/vim-quickrun"
NeoBundle 'vim-scripts/sudo.vim'
NeoBundle 'tpope/vim-surround.git'
NeoBundle 'h1mesuke/vim-alignta'
NeoBundle 'kana/vim-smartchr'
NeoBundle 'vim-ruby/vim-ruby'
NeoBundle 'AutoClose'
NeoBundle 'nathanaelkane/vim-indent-guides'
NeoBundle 'honza/vim-snippets'
NeoBundle 'mattn/emmet-vim'
NeoBundle 'jiangmiao/simple-javascript-indenter'
NeoBundle 'OpsRockin/opscode_chef.vim_dict'
NeoBundle 'Shougo/neosnippet-snippets'
NeoBundle 'w0rp/ale'
NeoBundle 'Shougo/vimproc.git', {
\ 'build' : {
\ 'mac' : 'make -f make_mac.mak',
\ 'unix' : 'make -f make_unix.mak',
\ },
\ }
NeoBundle 'prabirshrestha/vim-lsp'
NeoBundle 'mattn/vim-lsp-settings'
NeoBundle 'fatih/vim-go'
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
" -------------------------------------------------------------------------------
" <NeoComplcache>
" -------------------------------------------------------------------------------
" Disable AutoComplPop. Comment out this line if AutoComplPop is not installed.
" let g:acp_enableAtStartup = 0
" Launches neocomplcache automatically on vim startup.
let g:neocomplcache_enable_at_startup = 1
" Use smartcase.
let g:neocomplcache_enable_smart_case = 1
" Use camel case completion.
let g:neocomplcache_enable_camel_case_completion = 1
" Use underscore completion.
let g:neocomplcache_enable_underbar_completion = 1
" Sets minimum char length of syntax keyword.
let g:neocomplcache_min_syntax_length = 3
" buffer file name pattern that locks neocomplcache. e.g. ku.vim or fuzzyfinder
let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*'
" Define file-type dependent dictionaries.
let g:neocomplcache_dictionary_filetype_lists = {
\ 'default' : '',
\ 'vimshell' : $HOME.'/.vimshell_hist',
\ }
" Define keyword, for minor languages
if !exists('g:neocomplcache_keyword_patterns')
let g:neocomplcache_keyword_patterns = {}
endif
let g:neocomplcache_keyword_patterns['default'] = '\h\w*'
" Recommended key-mappings.
" <CR>: close popup and save indent.
inoremap <expr><CR> neocomplcache#smart_close_popup() . "\<CR>"
" <TAB>: completion.
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><C-h> neocomplcache#smart_close_popup()."\<C-h>"
inoremap <expr><BS> neocomplcache#smart_close_popup()."\<C-h>"
inoremap <expr><C-y> neocomplcache#close_popup()
inoremap <expr><C-e> neocomplcache#cancel_popup()
" AutoComplPop like behavior.
"let g:neocomplcache_enable_auto_select = 1
" Shell like behavior(not recommended).
"set completeopt+=longest
"let g:neocomplcache_enable_auto_select = 1
"let g:neocomplcache_disable_auto_complete = 1
"inoremap <expr><TAB> pumvisible() ? "\<Down>" : "\<TAB>"
"inoremap <expr><CR> neocomplcache#smart_close_popup() . "\<CR>"
" Enable omni completion. Not required if they are already set elsewhere in .vimrc
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags
" Enable heavy omni completion, which require computational power and may stall the vim.
if !exists('g:neocomplcache_omni_patterns')
let g:neocomplcache_omni_patterns = {}
endif
let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'
"autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete
let g:neocomplcache_omni_patterns.php = '[^. \t]->\h\w*\|\h\w*::'
let g:neocomplcache_omni_patterns.c = '\%(\.\|->\)\h\w*'
let g:neocomplcache_omni_patterns.cpp = '\h\w*\%(\.\|->\)\h\w*\|\h\w*::'
" -------------------------------------------------------------------------------
" <NeoSnippet>
" -------------------------------------------------------------------------------
" Plugin key-mappings.
imap <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)
xmap <C-k> <Plug>(neosnippet_expand_target)
" SuperTab like snippets behavior.
imap <expr><TAB> neosnippet#expandable_or_jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)"
\: pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)"
\: "\<TAB>"
" For snippet_complete marker.
if has('conceal')
set conceallevel=2 concealcursor=i
endif
" Enable snipMate compatibility feature.
let g:neosnippet#enable_snipmate_compatibility = 1
" Tell Neosnippet about the other snippets
let g:neosnippet#snippets_directory='~/.vim/bundle/vim-snippets/snippets, ~/.vim/snippets'
" Load rspec.snip when loading rspec files
function! s:RSpecSnippet()
NeoSnippetSource ~/.vim/snippets/ruby.serverspec.snip
endfunction
autocmd BufEnter *_spec.rb call s:RSpecSnippet()
" -------------------------------------------------------------------------------
" Quickrun
" -------------------------------------------------------------------------------
let g:quickrun_config = {}
let g:quickrun_config._ = {'runner' : 'vimproc'}
" -------------------------------------------------------------------------------
" <smarchr>
" -------------------------------------------------------------------------------
inoremap <buffer><expr> = smartchr#loop('=', ' = ', ' := ', ' => ', ' == ', " === ")
inoremap <buffer><expr> + smartchr#loop('+', ' + ', '++', ' += ')
inoremap <buffer><expr> - smartchr#loop('-', ' - ', '--', ' -= ')
inoremap <buffer><expr> / smartchr#loop('/', ' / ', '// ')
inoremap <buffer><expr> * smartchr#loop('*', ' * ')
inoremap <buffer><expr> < smartchr#loop('<', ' < ', ' << ', ' <= ')
inoremap <buffer><expr> > smartchr#loop('>', ' > ', ' >> ', ' >= ')
inoremap <buffer><expr> , smartchr#loop(', ', ',')
" -------------------------------------------------------------------------------
" <misc>
" -------------------------------------------------------------------------------
syntax on
filetype on
filetype indent on
filetype plugin on
:colorscheme murphy
set list
set listchars=trail:_,tab:>-
" <encoding>
set encoding=utf-8
" <basic>
let mapleader = "," " キーマップリーダー
set nobackup " バックアップ取らない
set hidden " 編集中でも他のファイルを開けるようにする
set formatoptions=lmoq " テキスト整形オプション,マルチバイト系を追加
set vb t_vb= " ビープをならさない
set backspace=indent,eol,start " バックスペースでなんでも消せるように
set autoread " 他で書き換えられたら自動で読み直す
set whichwrap=b,s,h,l,<,>,[,] " カーソルを行頭、行末で止まらないようにする
set scrolloff=5 " スクロール時の余白確保
"カーソルを表示行で移動する。物理行移動は<C-n>,<C-p>
:nnoremap j gj
:nnoremap k gk
:nnoremap <Down> gj
:nnoremap <Up> gk
" <display>
set showmatch " 括弧の対応をハイライト
set number " 行番号表示
" <statusline>
let g:gitCurrentBranch = ''
function! CurrentGitBranch()
let cwd = getcwd()
cd %:p:h
let branch = matchlist(system('/usr/bin/env git branch -a --no-color'), '\v\* ([0-9A-Za-z\/]*)\r?\n')
execute 'cd ' . cwd
if (len(branch))
let g:gitCurrentBranch = '[git:' . branch[1] . ']'
else
let g:gitCurrentBranch = ''
endif
return g:gitCurrentBranch
endfunction
autocmd BufEnter * :call CurrentGitBranch()
set laststatus=2
" ステータスラインの表示
set statusline=%< " 行が長すぎるときに切り詰める位置
set statusline+=[%n] " バッファ番号
set statusline+=%m " %m 修正フラグ
set statusline+=%r " %r 読み込み専用フラグ
set statusline+=%h " %h ヘルプバッファフラグ
set statusline+=%w " %w プレビューウィンドウフラグ
set statusline+=%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'} " fencとffを表示
set statusline+=%y " バッファ内のファイルのタイプ
set statusline+=\ " 空白スペース
if winwidth(0) >= 130
set statusline+=%F " バッファ内のファイルのフルパス
else
set statusline+=%t " ファイル名のみ
endif
set statusline+=%= " 左寄せ項目と右寄せ項目の区切り
set statusline+=%{g:gitCurrentBranch} " Gitのブランチ名を表示
set statusline+=\ \ " 空白スペース2個
set statusline+=%1l " 何行目にカーソルがあるか
set statusline+=/
set statusline+=%L " バッファ内の総行数
set statusline+=,
set statusline+=%c " 何列目にカーソルがあるか
set statusline+=%V " 画面上の何列目にカーソルがあるか
set statusline+=\ \ " 空白スペース2個
set statusline+=%P " ファイル内の何%の位置にあるか
" <indent>
set tabstop=2
set expandtab " tab をスペースに展開
set shiftwidth=2 " 自動インデントの幅
set softtabstop=2
autocmd FileType make setlocal noexpandtab
" Undo highlights of the search results, when push ESC + ESC
:nnoremap <Esc><Esc> :nohlsearch<CR>
" 横分割時は下へ、 縦分割時は右へ新しいウィンドウが開くようにする
set splitbelow
set splitright
" <functions>
" === 行末のスペースを削除 ===
" 保存時に行末の空白を除去する
autocmd BufWritePre * :%s/\s\+$//ge
" === カーソル行をハイライト ===
set cursorline
" カレントウィンドウにのみ罫線を引く
augroup cch
autocmd! cch
autocmd WinLeave * set nocursorline
autocmd WinEnter,BufRead * set cursorline
augroup END
:hi clear CursorLine
:hi CursorLine gui=underline
highlight CursorLine ctermbg=black guibg=black
" === Shebang がある時に実行権限を自動付与===
autocmd BufWritePost * :call AddExecmod()
function AddExecmod()
let line = getline(1)
if strpart(line, 0, 2) == "#!"
call system("chmod +x ". expand("%"))
endif
endfunction
" === change the current directory ===
augroup grlcd
autocmd!
autocmd BufEnter * lcd %:p:h
augroup END
" === template ===
augroup templateload
autocmd!
autocmd BufNewFile *.sh 0r ~/.vim/template/skelton.sh
autocmd BufNewFile *.pl 0r ~/.vim/template/skelton.pl
autocmd BufNewFile *.scm 0r ~/.vim/template/skelton.scm
autocmd BufNewFile test_*.rb 0r ~/.vim/template/skelton_test.rb
autocmd BufNewFile *.rb 0r ~/.vim/template/skelton.rb
augroup END
" === IME ===
" 挿入モード終了時に IME 状態を保存しない
inoremap <silent> <Esc> <Esc>
inoremap <silent> <C-[> <Esc>
" 「日本語入力固定モード」切り替えキー
inoremap <silent> <C-j> <C-^>
" === indent-guide ===
let g:indent_guides_auto_colors = 0
let g:indent_guides_guide_size = 1
let g:indent_guides_enable_on_vim_startup = 1
autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd guibg=LightBlue ctermbg=3
autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=darkgrey ctermbg=4
" === simple-javascript-indenter ===
" shiftwidthを1にしてインデントしてくれる
let g:SimpleJsIndenter_BriefMode = 1
" この設定入れるとswitchのインデントがいくらかマシに
let g:SimpleJsIndenter_CaseIndentLevel = -1
" === highlight the string under the cursol ===
highlight CurrentWord cterm=underline ctermbg=NONE ctermfg=DarkMagenta
function! s:EscapeText( text )
return substitute( escape(a:text, '\' . '^$.*[~'), "\n", '\\n', 'ge' )
endfunction
function! s:GetCurrentWord()
let l:cword = expand('<cword>')
if !empty(l:cword)
let l:regexp = s:EscapeText(l:cword)
if l:cword =~# '^\k\+$'
let l:regexp = '\<' . l:regexp . '\>'
endif
return l:regexp
else
return ''
endif
endfunction
function! s:HighlightCurrentWord()
let l:word = s:GetCurrentWord()
if !empty(l:word)
if exists("w:current_match")
call matchdelete(w:current_match)
endif
let w:current_match = matchadd('CurrentWord', l:word, 0)
endif
endfunction
augroup cwh
autocmd!
autocmd CursorMoved,CursorMovedI * call s:HighlightCurrentWord()
augroup END
let g:ale_sign_error = '!!'
let g:ale_sign_warning = '=='
let g:ale_sign_column_always = 1
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'

7
.zsh.d/.zshrc Normal file
View File

@ -0,0 +1,7 @@
if [ -d $ZDOTDIR -a -r $ZDOTDIR -a \
-x $ZDOTDIR ]; then
for i in $ZDOTDIR/*; do
[[ ${i##*/} = *.zsh ]] &&
[ \( -f $i -o -h $i \) -a -r $i ] && . $i
done
fi

25
.zsh.d/alias.zsh Normal file
View File

@ -0,0 +1,25 @@
: Aliases && {
alias ls="ls -h"
alias ll="ls -ahl"
alias cp="cp -p"
alias ld="ls -hl | grep ^d"
alias screen='screen -U -D -RR'
alias tmux="if tmux has; then tmux attach -d; else tmux new; fi"
# Settings depending on the OSes
case ${OSTYPE} in
darwin*)
# For Mac
alias eject='drutil eject'
# vim
alias vi='/usr/local/bin/vim'
;;
linux*)
# For Linux only
alias aptitude='sudo aptitude'
alias apt='sudo apt'
;;
esac
}

7
.zsh.d/direnv.zsh Normal file
View File

@ -0,0 +1,7 @@
which direnv > /dev/null
RC=$?
if [ $RC -eq 0 ]; then
export EDITOR=/usr/bin/vim
eval "$(direnv hook zsh)"
fi

7
.zsh.d/fzf.zsh Normal file
View File

@ -0,0 +1,7 @@
# Setup fzf
# ---------
if [[ ! "$PATH" == */home/kazu634/.fzf/bin* ]]; then
export PATH="${PATH:+${PATH}:}/home/kazu634/.fzf/bin"
export FZF_DEFAULT_OPTS='--color=fg+:11 --cycle --reverse --height=80% --exit-0 --bind=ctrl-j:accept --no-sort'
fi

62
.zsh.d/general.zsh Normal file
View File

@ -0,0 +1,62 @@
: Lang && {
export LANG=ja_JP.UTF-8
}
: Direcotry && {
setopt auto_pushd
setopt PUSHD_IGNORE_DUPS
}
: Key Bind && {
bindkey -e
}
: Color && {
autoload -U colors
colors
}
: General completion && {
autoload -U compinit
compinit
setopt correct
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
# 補完メニューをカーソルで選択可能にする。
zstyle ':completion:*:default' menu select=1
# カレントに候補が無い場合のみcdpath 上のディレクトリが候補となる
zstyle ':completion:*:cd:*' tag-order local-directories path-directories
# 補完でキャッシュを有効にする
zstyle ':completion:*' use-cache true
# 補完時のファイル名を黄色で表示
zstyle ':completion:*' list-colors di=33 fi=0
setopt list_packed # 補完候補をつめて表示する
setopt auto_menu # TAB で順に補完候補を切り替える
setopt auto_list # 複数の補完候補があったときに、そのリストを自動的に表示
setopt complete_in_word # 補完開始時にカーソルは単語の終端になくても良い。
setopt list_types # 種類を示すマーク表示をつける(ls -fと同じもの)
setopt auto_param_keys # カッコの対応などを自動的に補完
setopt auto_param_slash # ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える
}
: Prediction && {
autoload predict-on
predict-on
}
: History && {
HISTFILE=$HOME/.zhistory
HISTSIZE=100000
SAVEHIST=100000
setopt hist_no_store hist_ignore_dups hist_reduce_blanks hist_ignore_space
setopt incappendhistory sharehistory
setopt extended_history
setopt hist_ignore_all_dups extended_history
setopt hist_save_no_dups
function history-all { history -E 1 }
}

13
.zsh.d/git.zsh Normal file
View File

@ -0,0 +1,13 @@
: git-completion && {
autoload bashcompinit
bashcompinit
case ${OSTYPE} in
linux*)
# for Linux
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
fi
;;
esac
}

22
.zsh.d/goenv.zsh Normal file
View File

@ -0,0 +1,22 @@
# === go ===
case ${OSTYPE} in
darwin*)
# For Mac only
export GOPATH="$HOME/work/go"
export PATH="$GOPATH/bin:$PATH"
;;
linux*)
# for Linux Only
if [ -e ${HOME}/.goenv/bin/goenv ]; then
export GOENV_ROOT="$HOME/.goenv"
export GOPATH="$HOME/works/mnt/go"
export PATH="$GOENV_ROOT/bin:$GOPATH/bin:$PATH"
export GOENV_DISABLE_GOPATH=1
eval "$(goenv init -)"
export PATH="$GOROOT/bin:$PATH"
fi
esac

9
.zsh.d/node.zsh Normal file
View File

@ -0,0 +1,9 @@
# === nodebrew ===
case ${OSTYPE} in
*)
if [ -e /${HOME}/.nodebrew/nodebrew ]; then
PATH=${HOME}/.nodebrew/current/bin:${PATH}
export PATH
fi
;;
esac

11
.zsh.d/path.zsh Normal file
View File

@ -0,0 +1,11 @@
# === Path ===
case ${OSTYPE} in
darwin*)
# For Mac only
export PATH=/Users/kazu634/bin:$PATH
;;
linux*)
# For Linux only
export PATH=/home/kazu634/bin:$PATH
;;
esac

17
.zsh.d/plugin.zsh Normal file
View File

@ -0,0 +1,17 @@
source ~/.zplug/init.zsh
zplug "zsh-users/zsh-syntax-highlighting", defer:2
zplug "zsh-users/zsh-completions"
zplug "zsh-users/zsh-autosuggestions"
# Install plugins if there are plugins that have not been installed
if ! zplug check --verbose; then
printf "Install? [y/N]: "
if read -q; then
echo; zplug install
fi
fi
# Then, source plugins and add commands to $PATH
zplug load --verbose

7
.zsh.d/prompt.zsh Normal file
View File

@ -0,0 +1,7 @@
: Prompt && {
: Starshipを利用したpromptのカスタマイズ && {
if which starship > /dev/null ; then
eval "$(starship init zsh)"
fi
}
}

10
.zsh.d/rbenv.zsh Normal file
View File

@ -0,0 +1,10 @@
# === rbenv ===
case ${OSTYPE} in
*)
# for Linux Only
if [ -e ${HOME}/.rbenv/bin/rbenv ]; then
export PATH="${HOME}/.rbenv/bin:${PATH}"
eval "$(rbenv init - zsh)"
fi
;;
esac

116
.zsh.d/util.zsh Normal file
View File

@ -0,0 +1,116 @@
: chpwd内のlsでファイル数が多い場合に省略表示する
: http://qiita.com/yuyuchu3333/items/b10542db482c3ac8b059 && {
chpwd() {
ls_abbrev
}
ls_abbrev() {
# -a : Do not ignore entries starting with ..
# -C : Force multi-column output.
# -F : Append indicator (one of */=>@|) to entries.
local cmd_ls='ls'
local -a opt_ls
opt_ls=('-aCF' '--color=always')
case "${OSTYPE}" in
freebsd*|darwin*)
if type gls > /dev/null 2>&1; then
cmd_ls='gls'
else
# -G : Enable colorized output.
opt_ls=('-aCFG')
fi
;;
esac
local ls_result
ls_result=$(CLICOLOR_FORCE=1 COLUMNS=$COLUMNS command $cmd_ls ${opt_ls[@]} | sed $'/^\e\[[0-9;]*m$/d')
local ls_lines=$(echo "$ls_result" | wc -l | tr -d ' ')
if [ $ls_lines -gt 10 ]; then
echo "$ls_result" | head -n 5
echo '...'
echo "$ls_result" | tail -n 5
echo "$(command ls -1 -A | wc -l | tr -d ' ') files exist"
else
echo "$ls_result"
fi
}
}
: cdr + fzf setting && {
: 前提条件 && {
autoload -Uz add-zsh-hook
autoload -Uz chpwd_recent_dirs cdr
add-zsh-hook chpwd chpwd_recent_dirs
}
: cdr の設定 && {
zstyle ':completion:*' recent-dirs-insert both
zstyle ':chpwd:*' recent-dirs-max 500
zstyle ':chpwd:*' recent-dirs-default true
zstyle ':chpwd:*' recent-dirs-file "$HOME/.cache/chpwd-recent-dirs"
zstyle ':chpwd:*' recent-dirs-pushd true
}
: 関数の定義 && {
if which fzf > /dev/null; then
function fzf-cdr () {
my-compact-chpwd-recent-dirs
local selected_dir=$(cdr -l | awk '{ print $2 }' | fzf)
if [ -n "$selected_dir" ]; then
BUFFER="cd ${selected_dir}"
zle accept-line
fi
zle clear-screen
}
zle -N fzf-cdr
bindkey '^x' fzf-cdr
fi
}
: メンテナンス && {
# http://blog.n-z.jp/blog/2014-07-25-compact-chpwd-recent-dirs.html
function my-compact-chpwd-recent-dirs () {
emulate -L zsh
setopt extendedglob
local -aU reply
integer history_size
autoload -Uz chpwd_recent_filehandler
chpwd_recent_filehandler
history_size=$#reply
reply=(${^reply}(N))
(( $history_size == $#reply )) || chpwd_recent_filehandler $reply
}
}
}
: history + fzf function && {
# use `fzf` to see the history:
if which fzf > /dev/null; then
# statements
function fzf-select-history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
BUFFER=$(history -n 1 | \
eval $tac | \
awk '!a[$0]++' | \
fzf --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N fzf-select-history
bindkey '^r' fzf-select-history
fi
}

1
.zshenv Normal file
View File

@ -0,0 +1 @@
export ZDOTDIR=$HOME/.zsh.d

20
README.md Normal file
View File

@ -0,0 +1,20 @@
# ドットファイルの設定
各種設定ファイルをまとめました。
* .gitconfig
* .gitignore
* .screenrc
* .screenrc.swp
* .vimrc
* .zshenv
* .zshrc
* install.sh
## .gitconfig
Git用の設定ファイル。
* https://gist.github.com/4117588
* http://oli.jp/2012/git-powerup/
## .vimrc
vim用の設定ファイル。

27
install.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
# finding out the shell script directory
CURDIR=`dirname $0`
# finding out the OS type
OS=`uname`
if [ ${CURDIR} = "." ]; then
CURDIR=`pwd`
fi
# judging the OS type
if [ ${OS} = "Linux" ]; then # if linux
# copying the .files as a soft link
find ${CURDIR} -maxdepth 1 -type f -name ".*" ! -name ".*.swp" -print0 | xargs -0 -I % ln -f -s % ${HOME} 2>/dev/null
# copying the `.zsh.d` configuration file as a soft link
ln -f -s ${CURDIR}/.zsh.d ${HOME}
else # otherwise (meaning Darwin)
# copying the .files as a soft link
find ${CURDIR} -type f -name ".*" ! -name ".*.swp" -maxdepth 1 -print0 | xargs -0 -J % ln -f -s % ${HOME} 2>/dev/null
# copying the `.zsh.d` configuration file as a soft link
ln -f -s ${CURDIR}/.zsh.d ${HOME}
fi