initial commit
This commit is contained in:
commit
3e903cf7aa
|
@ -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=
|
|
@ -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
|
|
@ -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/
|
|
@ -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
|
|
@ -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
|
|
@ -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%]'
|
|
@ -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
|
|
@ -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
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
which direnv > /dev/null
|
||||||
|
RC=$?
|
||||||
|
|
||||||
|
if [ $RC -eq 0 ]; then
|
||||||
|
export EDITOR=/usr/bin/vim
|
||||||
|
eval "$(direnv hook zsh)"
|
||||||
|
fi
|
|
@ -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
|
||||||
|
|
|
@ -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 }
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
# === nodebrew ===
|
||||||
|
case ${OSTYPE} in
|
||||||
|
*)
|
||||||
|
if [ -e /${HOME}/.nodebrew/nodebrew ]; then
|
||||||
|
PATH=${HOME}/.nodebrew/current/bin:${PATH}
|
||||||
|
export PATH
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1,7 @@
|
||||||
|
: Prompt && {
|
||||||
|
: Starshipを利用したpromptのカスタマイズ && {
|
||||||
|
if which starship > /dev/null ; then
|
||||||
|
eval "$(starship init zsh)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
|
@ -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
|
||||||
|
}
|
|
@ -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用の設定ファイル。
|
|
@ -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
|
Loading…
Reference in New Issue