nyarn.tech

にゃーん

今すぐってほどじゃないけどalias登録しているワンライナー

この記事は 「今すぐalias登録すべきワンライナー by ゆめみ①-2」の 23 24日目の記事です(1日勘違いしていました、、、すみません)

qiita.com

実行環境

Macで開発をしているのでMacでのみの動作を確認しています。

開発が便利になる系

今いるgitリポジトリのブランチ名を表示する

alias current-branch='git status | head -1 | sed -e "s/On branch //"'

ローカルからブランチ名を指定して各種環境にデプロイするコマンドがあるのですが、
それの指定をするときに使っています。

一括置換できるかわからないときに一つ一つファイルを開きながら編集する

vim `grep -rn "探す文字列" <ディレクトリ> | grep -o '^[^ ]*' | head -1 | sed -e 's/:$//g' | sed -e 's/:/ \+/g'`

最後の sed -e 's/:/ \+/g' はvim出ない場合は不要です(vimでファイルを行を指定して開くときは +行数 の形で開くことができます。

他のエディタで開きたい場合は

code `grep -rn "探す文字列" <ディレクトリ> | grep -o '^[^ ]*' | head -1 | sed -e 's/:$//g'`

でひらけます。

例えば app/views ディレクトリにある users_pathcostomers_path に変えたいけれども全部一括で変えられなくて、
ファイルを確認しながら編集する必要があるときは

vim `grep -rn "users_path" app/views | grep -o '^[^ ]*' | head -1 | sed -e 's/:$//g' | sed -e 's/:/ \+/g'`

を叩くことでファイルを開いていけます。編集しないファイルが出てきたときは head -2 | tail -1 みたいに変えて実行します

(vimgrep使えばいいんですが、vimじゃなくてRubyMineで開きたかったりするときもあるんですよね。あとgrepの方が速い気がするというだけです。。。)
(RubyMineなら一括置換の候補見ながら同じことできる、ということを最近知りました)

暮らしが便利になる系

みんなだいすき東京アメッシュ!

です https://github.com/otiai10/amesh

alias amesh='docker run -e TERM_PROGRAM --rm otiai10/amesh'

ランチでオフィスを出たら雨が降っていてまたエレベータに戻る生活から脱出しましょう。

コマンドラインからスクリーンセーバーを起動する(High Sierra)

alias kabe='open /System/Library/CoreServices/ScreenSaverEngine.app'

High Sierra以前のmacOSの場合は

open /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app

で起動できます。

(enpassユーザ限定)
enpassというのはパスワード管理ソフトです。有志によるcliが公開されており、これとfzfを組み合わせて使っています。
https://github.com/HazCod/enpass-cli

ユーザ名がほしい

alias enpassget="pass get -w $ENPASS_WALLET_FILE_SOURCE `pass -w $ENPASS_WALLET_FILE_SOURCE list '*' | sed -e 's/^  .*//g' | sed -e 's/\-*//g' | sed '/^\s*$/d' | fzf`"

パスワードをコピーしたい

alias enpasscopy="pass copy -w $ENPASS_WALLET_FILE_SOURCE `pass -w $ENPASS_WALLET_FILE_SOURCE list '*' | sed -e 's/^  .*//g' | sed -e 's/\-*//g' | sed '/^\s*$/d' | fzf`"

これでfzfによる絞り込みの後にユーザ名を表示したり、パスワードをコピーしたりが可能になります。

ワンライナーじゃないけど便利

よくあるfzfでghq管理しているリポジトリを絞り込んで移動、なのですがfzfの絞り込み画面にいってからやっぱりやめた
みたいになることがたまにあって、その場合 ghq root に移動してあはーんってなることがあったのでfunctionを定義してます。

function g () {
  selected=$(ghq list | fzf)
  [ -z $selected ] && change_to=$(pwd) || change_to=$(ghq root)/$selected
  cd $change_to
}