bash/zsh
,tmux
,vim
,git
,Docker
の設定が中心- 主なツール:
peco
,ghq
,gh
,ag
,ctags
- 主な自作ツール:
dirmarks
,shell-stash
Homebrew
,iTerm2
,karabiner
ディレクトリ | パス | 移動エイリアス |
---|---|---|
dotfiles | ${HOME}/dotfiles |
DOT |
リポジトリ | ${HOME}/dev |
rr |
ワークスペース | ${HOME}/WORKSPACE |
ww |
クイックメモ | ${HOME}/WORKSPACE/Dropbox/Documents/memo |
qm |
メモ | ${HOME}/WORKSPACE/Dropbox/Documents/memo |
memo |
.
${HOME}/dotfiles/bin
fullprompt
で[user@comp (xx:xx) dir (git)]$
prompt
で[xx:xx dir (git)]$
noprompt
で$
la
でclear && ls -laG
lla
またはlaa
で サブディレクトリ 一覧を表示/選択してla
実行(peco)dirsize
でディレクトリのサイズ表示(対象ディレクトリ指定ない場合はカレント)
cd
すると自動的にla
(cd
はpushd
のエイリアス)b
で一つ前の場所へ戻る (popd
).
でpwd
..
で一つ上の階層へ...
で二つ上の階層へ....
で三つ上の階層へ
h
で~
へdot
で~/dotfiles
へw
で~/workspace
へ移動
CMD e
で cdr pecomemo
で memo (.md) から検索remote
で SSH 接続 (~/.ssh/config)
mm
でカレントディレクトリを記憶しm
で記憶したディレクトリへ移動nn
でカレントディレクトリを記憶しn
で記憶したディレクトリへ移動ii
でカレントディレクトリを記憶しi
で記憶したディレクトリへ移動oo
でカレントディレクトリを記憶しo
で記憶したディレクトリへ移動
ss
で Stash 一覧表示ss [ファイル/ディレクトリ]
で Stash へ移動(mv
)ss -c [ファイル/ディレクトリ]
で Stash へコピー(cp
)ss pop
でpeco
表示/選択してカレントディレクトリへ取り出す(mv
)ss -c pop
でpeco
表示/選択してカレントディレクトリへ取り出す(mv
)ss empty
で Stash を空にする(空にすると元には戻せない)
ww
で~/WORKSPACE
内のディレクトリをpeco
で表示/選択してディレクトリ移動rr
でリポジトリ(${HOME}/dev
) をpeco
で表示/選択して移動- リポジトリ内で
G
で Git ローカルリポジトリルートへ移動
cdd
でカレントディレクトリ内のサブディレクトリをpeco
表示/選択してディレクトリ移動cdh
でディレクトリの訪問履歴をpeco
で表示/選択してディレクトリ移動cdm
でディレクトリマーク一覧をpeco
で表示/選択してディレクトリ移動
vpn
で SSH接続一覧 (${HOME}/.ssh/config
) をpeco
で表示/選択してディレクトリ移動google [検索ワード]
またはg [検索ワード]
で Google 検索stock
でpeco
で上場銘柄一覧を表示/選択してブラウザで表示
rr
でghq
管理のレポジトリ一覧をpeco
で表示/選択してディレクトリ移動G
でレポジトリルートへ移動
github
でカレントディレクトリの GitHub をブラウザで開く
DOT
で${HOME}/dotfiles
へ移動
- shell stash 使うと便利(
ss
コマンドとssp
コマンド) ss
で shell stash に保存されているファイル/ディレクトリの一覧を表示
ss [ファイル/ディレクトリ]
で shell stash へ移動(mv)ss -c [ファイル/ディレクトリ]
で shell stash へコピーを移動(cp)
-
取り出し先は
ssp
コマンドを実行したディレクトリ -
ssp [ファイル/ディレクトリ]
で shell stash から取り出す(mv) -
ssp -c [ファイル/ディレクトリ]
で shell stash からコピーを取り出す(cp) -
ssp
で shell stash にあるファイル/ディレクトリ一覧をpeco
で表示/選択して取り出す(mv) -
ssp -c
で shell stash にあるファイル/ディレクトリ一覧をpeco
で表示/選択して取り出す(cp)
ff
でカレントディレクトリ以下のファイル検索 (find . -type f
)fd
でカレントディレクトリ以下のディレクトリ検索 (find . -type d
)fd --empty
でカレントディレクトリ 以下の空のディレクトリ検索ffi
でカレントディレクトリ以下の画像ファイル検索ffic
でカレントディレクトリ以下の画像ファイル数カウントff
,fd
はディレクトリ指定可能ff
,fd
にオプション(--empty
など)を指定する場合は検索対象ディレクトリを指定する
vp
で.bash_profile
をvim
で開く (bash のみ)sp
で.bash_profile
を再読み込み (bash のみ)
p <メモの内容>
で PromptMemo 追加(p
のみでプロンプトメモ消去)qm
で QuickMemo ファイル開く(~/WORKSPACE/Dropbox/Documents/quick_note.md
)quick_note.md
開いた日時が先頭行に自動追加
memo
で Note 一覧をpeco
で表示/選択して${MARKDOWN_EDITOR}
で開くyubin
でpeco
で郵便番号一覧を表示して検索
-
bk <対象ファイル or ディレクトリ>
で、同じディレクトリにバックアップ作成(*.tag.gz) -
kb <対象ファイル or ディレクトリ>
で、バックアップ復元(*.tag.gz) -
clock
でタイムゾーン一覧がpeco
で表示/選択して日時を表示する$ clock America/New_York: Wed Sep 30 06:09:47 EDT 2020
-
wareki <数値>
で和暦/西暦 対応を表示$ wareki 2020 令和2年 2020
-
holiday
で日本の祝日・休日一覧を表示 -
256cpalet
で 256色カラーコード一覧を表示
- 設定は
~/.tmux.conf
- プレフィックスキーは
Ctrl
+b
(デフォルト) prefix
+?
で設定済みのキーバインド確認prefix
+z
でアクティブペイン拡大prefix
+:
でコマンド入力モードへprefix
+r
で設定ファイル再読み込み
prefix
+s
でセッション一覧を開くj
又はk
でセッション選択- 必要に応じて
prefix
+$
でセッション名の変更 exit
でセッション終了
prefix
+s
でセッション一覧 & セッション移動prefix
+a
でアタッチprefix
+d
でデタッチexit
でセッション終了 → tmux を続ける場合は、- *既存セッションに接続する場合:
tmux a
(又はtmux a -t [セッション名]
) - 新規セッションを作成する場合:
tamux
prefix
+c
で新規ウインドウ作成- 必要に応じて
prefix
+,
でウインドウ名の変更 prefix
+n
又はprefix
+p
でウインドウ間の移動prefix
+&
でウインドウ閉じる
prefix
+w
でウインドウ一覧 & ウインドウ移動prefix
+c
で新規ウインドウ作成prefix
+n
で次のウインドウへ移動prefix
+1
でウインドウ番号へ移動prefix
+,
でウインドウ名の変更prefix
+.
でウインドウ番号の変更
prefix
+q
でペイン番号表示Prefix
+-
でペインを横分割Prefix
+\
でペインを縦分割prefix
+z
でペインの最大化Prefix
+o
でペインをローテーションしながら移動prefix
+j
でペインの境界を下へ移動prefix
+k
でペインの境界を上へ移動prefix
+h
でペインの境界を左へ移動prefix
+l
でペインの境界を右へ移動
prefix
+t
で時刻表示prefix
+z
でカレントペインを最大化
- 基本設定は、
dotfiles/.vimrc
- 設定されているキーバインド一覧を表示
:map
- 設定されているキーバインド一覧を表示(normal モードのみ)
:noremap
- 起動時にロードするプラグイン(NeoBundle の設定)は
dotfiles/.vim/vimrc_includes/plugins.vim
- プラグイン自身の設定は、
dotfiles/.vim/vimrc_includes/xxx
- これらは
.vimrc
から読み込まれる
jj
で挿入モードを抜けて、IME OFF (Karabiner 連動)<Leader>
は、デフォルト(\
)のまま- モーションプレフィックスは
スペースバー
00
で空行挿入0i
で空行挿入して下に1行開ける(自動的に挿入モードへ)Ctl
+ss
で:set filetype=bash
Ctl
+nn
で行番号の表示/非表示切り替え- [Disabled]インサートモードで、
<C-h>
でカーソルを左へ移動 - [Disabled]インサートモードで、
<C-l>
でカーソルを右へ移動 - ファイルをまたぐ(複数ファイルを扱う)操作は、基本的に
,
に統一 NERDTree
の開閉は、,e
- [Disabled]
Tagbar
の開閉は、,t
- [Disabled]
SrcExpl
の開閉は、,s
grep
は、:Ag
Unite
の開閉のみは、,fr
(最近開いたファイル),ff
(カレントディレクトリ)など- [Disabled]
,c
で Google Chrome 起動 - [Disabled]
,s
で Safari 起動
:pwd
でカレントディレクトリを確認,cd
で カレントディレクトリをカレントバッファのディレクトリへ変更<Leader>ww
で~/WORKSPACE
へカレントディレクトリを変更:e%%
に続けて新規作成するファイル名でカレントディレクトリにファイル作成- または、
,e
で NERDTree 開いて、ma
:new
で新規バッファ作成
,ft
でカレントバッファのファイルタイプを表示c-s
c-s
で filetype をbash
へ変更
- 拡張子が
.vue
のファイルを作成すると自動的に vue 専用のテンプレートで開く - 拡張子が
.sh
のファイルを作成すると自動的に sh 専用のテンプレートで開く - テンプレートの置き場所は
dotfiles/.vim/templates/
:e%%[new file]
で作成した時のみテンプレートが読み込まれる
,ft
でカレントバッファのファイルタイプを表示,fp
でカレントバッファのパスを表示,enc
でカレントバッファの文字コードを表示,cd
でカレントディレクトリをカレントバッファのディレクトリへ変更
--
で水平分割 (<C-k>
でも水平分割)\\
で垂直分割Ctrl + w + c
でカレントウインドウを閉じるCtrl + w + h
で左のウインドウへ移動(vim デフォルト)Ctrl + w + j
で下のウインドウへ移動(vim デフォルト)Ctrl + w + k
で上のウインドウへ移動(vim デフォルト)Ctrl + w + l
で右のウインドウへ移動(vim デフォルト)Ctrl + ww
でウインドウ間ローテーション
bl
でバッファ一覧表示:bd
でカレントバッファを閉じるb[
で前のバッファへb]
で次のバッファへ- [Disabled]
B[
で最初のバッファへ - [Disabled]
B]
で最後のバッファへ :new
で新規バッファ作成(vim デフォルト)
tn
で新規タブ作成Ctrl-w
+T
で、分割されたバッファを新規タブで開く(デフォルト)<tab>
で次のタブへ移動<Shift> + <tab>
で次のタブへ移動t]
でタブを右へ移動t[
でタブを左へ移動[タブNo]gt
で指定したタブへ移動(デフォルト):tabo
で現在のタブ以外を全て閉じる(デフォルト)
-
ジャンプ(大移動)は、
<Space>
に統一<Space>o
で、ジャンプリスト戻る<Space>]
又は<Space>[
で、対になるカッコへ<Space>i
で、ジャンプリスト進む<Space>.
で、直近の編集場所へ
-
ジャンプ(中移動)は、
Shift
に統一<Shift>k
で、画面最上段へ<Shift>m
で、画面中央へ<Shift>j
で、画面最下段へ ← デフォルトの下段行と連結と被るので設定なし<shift>[
で、上のパラグラフへ<shift>]
で、下のパラグラフへ<Shift>h
で、行頭へ<Shift>l
で、行末へ
<C-k>
でカーソル範囲の折りたたみ
- 検索方法は 3つ
/[検索ワード]
で検索:vim [検索ワード] %
でカレントバッファを grep 検索:Ag [検索ワード] %
でカレントバッファを grep 検索(ag.vim プラグイン )
:vim [検索ワード] %
でカレントバッファを検索して検索結果を QuickFix で開く:vim [検索ワード] ./src'' で
./src`` ディレクトリのファイル内を検索
ag
の方が高速
-
検索方法は
:Ag [検索ワード] [検索対象]
-
%
はカレントバッファ -
なので
:Ag [検索ワード] %
でカレントバッファ内を検索 -
検索対象を指定しないとカレントディレクトリ 配下全体を grep
-
検索結果は Quickfix ウインドウで一覧表示
キー | 挙動 |
---|---|
e | ファイルを開く(Quickfixを閉じる) |
o | ファイルを開く(Quickfixは閉じない) |
go | ファイルを開くが、フォーカスはQuickfix |
t | ファイルを新しいタブで開く |
T | ファイルを新しいタブで開くが、フォーカスはQuickfix |
h | ファイルを水平分割して開く |
H | ファイルを水平分割して開くが、フォーカスはQuickfix |
v | ファイルを垂直分割して開く |
gv | ファイルを垂直分割して開くが、フォーカスはQuickfix |
q | Quickfixを閉じる |
- 範囲を選択して
=
でインデント整形(vim デフォルト) - 右インデントは
<Shift>>>
(vim デフォルト) - 左インデントは
<Shift><<
(vim デフォルト)
- とりあえず、
<C-p>
(最近開いたファイル一覧) だけで十分便利 <esc><esc>
,jj
または,,
で Unite を抜ける- [Disabled]
,,
で、Unite ウインドウを前回閉じた状態で開く(:UniteResume) - [Disabled]
,g
でカレントディレクトリ以下を grep 検索(Unite grep:) - [Disabled]
,cg
でカーソル位置の単語を grep 検索(Unite grep:)
コマンド | 内容 |
---|---|
<C-e> または,fr |
最近開いたファイル一覧(file_mru) |
<C-p> または,ff |
カレントディレクトリ以下のファイル一覧(file_rec) |
,fg |
カレントディレクトリ以下を grep |
- 新規ディレクトリ作成(
,fd
)と新規ファイル作成(,fn
)は NERDTree で行った方がわかりやすい。
- ツリーのルートを変更すると自動的にカレントディレクトリも変更する
- ファイルを開くと自動的にツリーを閉じる
- NERDTree ウインドウ内での操作(キーバインド)はデフォルトのまま
コマンド | 内容 |
---|---|
,e |
ツリーの開閉 |
? |
ヘルプ表示/非表示切り替え |
k |
カーソルを上へ移動 |
j |
カーソルを下へ移動 |
o |
ファイル開く |
i |
横分割してファイル開く |
s |
ウインドウを横に分割してファイルを開く |
ma |
新規ファイル/ディレクトリ作成(ファイル名の最後に / を付けるとディレクトリ作成) |
mc |
ファイルコピー |
md |
ファイル/ディレクトリ削除 |
I |
隠しファイルの表示/非表示切りかえ |
ysiw(
でsample
を( sample )
へysiw)
でsample
を(sample)
へyes)
でhello world
を(hello world)
へ(行全体を囲む)
- 括弧で括りたい部分をビジュアルモードで選択して
S
に続けて(
{
<
などをタイプ - なので
viwS{
でsample
が{ sample }
へ - 上記
sample
の両端にスペースが入らないようにするためにはviwSB
- 括弧は
b
で)
、B
で}
、r
で]
、a
で>
と同等(例:viwSb
でsample
が(sample)
へ)
- 括弧の開き側(
(
,{
,<
など)を使うと括ったときにスペースが入る - 括弧の閉じ側(
)
,}
,>
など)を使うと括ったときにスペースが入らない - 括弧は
b
で)
、B
で}
、r
で]
、a
で>
と同等(例:viwSb
でsample
が(sample)
へ)
t
または<
で任意のタグが囲める(例:viwStli>
でsample
が<li>sample</li>
へ)
V
(大文字)で${}
で囲む。なので、viwSV
でsample
が${sample}
へv
(小文字)で$()
で囲む 。なので、viwSv
でsample
が$(sample)
へ
dt(
で、囲んでいる()
を削除dt"
で、囲んでいる""
を削除
cs(}
で(sample)
が{sample}
へcs"(
で"sample"
が( sample )
へ
TAB
で入力補完- スニペット展開可能であればスニペット展開 (SnipMate) が優先
<emmet-leader>
は<C-y>
(デフォルトのまま)div.hoge
と入力して、<emmet-leader>,
で<div class="hoge"></div>
に展開div.hoge.foo[style="display: flex;"]
で<div class="hoge foo" style="display: flex;">
に展開- Emmit 公式チートシート
TAB
でスニペット補完- スニペット展開できなければ入力補完 (SuperTab)
<Leader>es
で:~/.vim/snippets/
が入力されるので、php<TAB>
で PHP 用のスニペット登録用ファイルを開く )- スニペット登録ファイルの場所は
~/.vim/snippets/
- スニペット登録ファイルは
ファイルタイプ.snippets
- なので PHP ファイル (xxx.php) に適用するには
~/.vim/snippets/php.snippets
- 補完候補元は
tags
と PHP 辞書 tags
ファイル作成はctags --languages=php -f tags $(pwd)
- PHP 辞書作成は
php -r '$f=get_defined_functions();echo join("\n",$f["internal"]);'|sort > ~/.vim/dict/php.dict
:dicphp
で PHP マニュアル検索(w/Unite):dicfen <検索語句>
で英語辞書で単語検索- PHP 語句の上で
Shift + k
で PHP マニュアル検索 - 設定は
.vim/vimdc_includs/vim-ref.vim
,=
でインデント整形
- ファイル保存時に自動的に
php -l
実行して結果を quickfix で開く - class 名の上で
<Leader>n
でuse
文自動挿入 - class 名の上で
<Leader>nf
で class フルパス表示 - 上記
<Leader>n
と<Leader>nf
は vim の カレントディレクトリにtags
必要 use
文全体を選択して<Leader>su
で短いもの順にソート
- 変数宣言の行で
<Leader>g
で getter を自動挿入 - 変数宣言の行で
<Leader>s
で setter を自動挿入 - 変数宣言の行で
<Leader>b
で setter/getter を自動挿入 - 変数宣言の行で
<Leader>p
で setter/getter/both の自動挿入プロンプト表示
- クラス/関数宣言の行で
<Leader>d
でドキュメントコメントを自動生成
-
<Leader>psr
で psr-2 フォーマットへ整形 -
ghq get https://github.com/[ベンダー名]/[レポジトリ名]
でレポジトリ取得 -
レポジトリ保存場所は、
~/.gitconfig
で設定(~/dev/src
指定済み)
ghq
で管理- なのでレポジトリ追加は
ghq get xxx/xxx
GGignore
で.gitignore
を Git から取得 (fromhttps://raw.githubusercontent.com/github/gitignore/master/Global/macOS.gitignore
)GGhooks
で、hook ファイルを取得 (fromdot files/.git_template/hooks
)
GGG
またはGGl
で git log 確認GGs
,GGd
で変更箇所の確認GGa
でステージングgit commit
でコミット
GGG
=git graph
GGs
=git status
GGd
=git diff
GGa
=git add
GGc
=git checkout
GGb
= ``git branch`git commit
はエイリアスなし
graph
=log --graph --date-order --all --pretty=format:'%h %Cred%d %Cgreen%ad %Cblue%cn %Creset%s' --date=short
(1) ~/.bash_profile
で定義
v
=vagrant ssh
vu
=vagrant up
vh
=vagrant halt
vd
=vagrant destroy
(2) ~/.bash_profile
で定義(sandbox プラグイン用)
von
=vagrant sandbox on
voff
=vagrant sandbox off
vrb
=vagrant sandbox rollback
vc
=vagrant sandbox commit
docker がインストールされている場合、nutsllc/docker-dd
がインストールされる
dd
=docker-compose ${@}
ddu
=docker-compose up
ddd
=docker-compose down
dde
=docker-compose exec ${@}
ddv
=vim docker-compose.yml
# dotfiles のインストール
$ git clone -b bk https://github.com/ontheroadjp/dotfiles.git ~/
$ sh ~/dotfiles/install.sh
$ source ~/.bash_profile
$ sudo yum install -y lua lua-devel
$ git clone https://github.com/vim/vim.git /usr/local/src
$ cd /usr/local/src
$ ./configure \
--with-features=huge \
--enable-multibyte \
--enable-luainterp=dynamic \
--enable-gpm \
--enable-cscope \
--enable-fontset
$ make -j4
$ make install
install.sh
実行時に実行される
mkdir -p ~/.vim/bundle
git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
$ vim
:NeoBundleInstall
$ sh ~/dotfiles/bin/install_peco.sh
- 設定ファイル
~/.config/peco/config.json
$ brew install tmux
mkdir -p ${HOME}/.vim/ref
wget -O ${HOME}/.vim/ref/php-manual.tar.gz http://jp2.php.net/get/php_manual_ja.tar.gz/from/this/mirror
tar xzf ${HOME}/.vim/ref/php-manual.tar.gz -C ${HOME}/.vim/ref
php -r '$f=get_defined_functions();echo join("\n",$f["internal"]);'|sort > ~/.vim/dict/php.dict
ctags --languages=php -f tags `pwd`
brew install ag
composer global require fabpot/php-cs-fixer
PATH=$PATH:${HOME}/.composer/bin
youtube-dl <DLする動画ページの URL>
mplayer <再生する動画/音楽ファイル>
- [Update] peco のバージョン変更
- [New] ディレクトリを保存できる mm コマンド nn コマンドを追加
- [New] vagrant-completion の追加
- [FIX] NeoBundle がインストール済みの場合には、再度インストールしないように変更
- [New] git-prompt の追加
- [New] git-completion の追加
- [Modified] vim で、
BS
キーで改行を削除できるようにした - [Fix] 軽微な Bugfix
###1.0.0
- 最初のリリース