why
作業効率を上げるため。
https://dev.to/kaede_io/vim-vimrc-wo-1-karashu-ku-3j20
Vim の基礎設定も合わせて行うと効果的。
導入方法
Ubuntu では ~/.bashrc
M1 Mac では ~/.zshrc
WSL では ~/.bash_aliase
にエイリアスを書いて、シェルを再読込すると
使えるようになる。
複数シェルを開いている場合は
全てのシェルで再読込が必要。
alias re='source ~/.zshrc'
ソースコマンドでシェル設定を走らせる。
毎回打つのは面倒なので re にエイリアスしておく。
拡張シェル関数
既存のコマンドを組み合わせて、新しいコマンドを作って手間を減らす。
下記の 3 つを作る
- cdls
- mkcd
- safe_rm
1. cdls
https://unix.stackexchange.com/a/20413
cd 実行後に ls も実行する
# cdls
function cd {
builtin cd "$@" && ls -F
}
2. mkcd
https://unix.stackexchange.com/a/9124
mkdir 実行後に作成したフォルダに cd を実行する
mkcd () {
mkdir "$1"
cd "$1"
}
$1 は 引数1 の意味。
普通に mkdir 引数1 して
その後 cd 引数1 する
❯ mkcd ~/Downloads/mktest
~/Downloads/mktest
このように、作ったディレクトリに即時に移動できる
3. safe_rm
chatGPT4 に依頼
rm -rf をしたときに対象のファイルを構造化して表示する。
その後に本当に削除するか確認できる。
function rm {
local rf_option=false
local target_dir=""
for arg in "$@"; do
if [ "$arg" = "-rf" ]; then
rf_option=true
else
target_dir="$arg"
fi
done
if [ "$rf_option" = true ] && [ -d "$target_dir" ]; then
echo "The following files and directories will be removed:"
echo "----------------------------------------"
tree "$target_dir"
echo "----------------------------------------"
printf "Are you sure you want to delete the above files and directories? [y/N] "
read confirmation
if [ "$confirmation" = "y" ] || [ "$confirmation" = "Y" ]; then
command rm -rf "$target_dir"
echo "Deleted: $target_dir"
else
echo "Deletion canceled"
fi
else
command rm "$@"
fi
}
拒否の場合
rm -rf hoge
The following files and directories will be removed:
----------------------------------------
hoge
├── 2
├── 2.1
├── 3
├── 3.1
├── 3.2
└── bar
├── aaa
├── bbb
└── ccc
2 directories, 8 files
----------------------------------------
Are you sure you want to delete the above files and directories? [y/N] h
Deletion canceled
承認の場合
...
2 directories, 8 files
----------------------------------------
Are you sure you want to delete the above files and directories? [y/N] Y
Deleted: hoge
既存コマンドのエイリアス
cd
https://qiita.com/reireias/items/d906ab086c3bc4c22147#cd%E7%B3%BB
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
ls
ファイル一覧を表示するときの最適化。
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
Ubuntu ではこれがデフォルトで適用されている。
git コマンドのエイリアス
ステージング、コミット関係
# git staging/commit
alias gs='git status'
alias ga='git add'
alias gcv='git commit -v'
alias gcm='git commit -m'
# git diff
alias gd='git diff'
alias gdc='git diff --cached'
# git push/pull
alias gps='git push'
alias gpsoh='git push origin head'
alias gpl='git pull'
alias gplrau='git pull -r --au'
スキーマファイルを git status で非表示にする
grep をかませると色が消えるので、オプションが必要
## git status without schema files with colored
alias gs='git -c color.status=always status | grep -v 'schema\.rb' --color=always | cat'
ブランチ関係
# git branch/checkout
alias gb='git branch'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcm='git checkout master'
alias gcd='git checkout dev'
ブランチの表示や切り替え、作成などのコマンドも短くする
gs
fatal: not a git repository (or any of the parent directories): .git
sh の再起動後、コマンドをたたいてこうなれば読まれている。
コマンドの一文字エイリアス
g や k を打ったら git や kubectl に決まっている。
なので 一文字でコマンドになるようにした。
## tool shorten alias
alias g='git'
alias dc='docker-compose'
alias k='kubectl'
alias skf='skaffold'
docker-compose などを短くする
外部シェルコマンド
brew などで新しく入れる便利コマンド。
jump の他にも fzf, htop, jq などがある
jump
移動を楽にするコマンド
https://github.com/gsamokovarov/jump
Mac は brew install jump
Ubuntu は
wget https://github.com/gsamokovarov/jump/releases/download/v0.51.0/jump_0.51.0_amd64.deb && sudo dpkg -i jump_0.51.0_amd64.deb
インストールした後は
eval "$(jump shell zsh)"
これを .zshrc に入れるように指示される。
これを入れて zsh をリフレッシュすると使えるようになる。
普段 ~/source/projectName/kotlin/com/domain/post.kt
とかをよく使う場合、 j post だけで移動できる。
j domain まで打っても
j domain/post.kt のように補完が出たりはしない。
Top comments (0)