Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
1文字エイリアスのすゝめ
Search
Takafumi ONAKA
PRO
August 24, 2024
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
1文字エイリアスのすゝめ
2024-08-24 Kyoto.なんか #6
https://kyoto-nanka.connpass.com/event/324686/
Takafumi ONAKA
PRO
August 24, 2024
More Decks by Takafumi ONAKA
See All by Takafumi ONAKA
気づけばこうなる運用 ~運用現場の現実と理想~
onk
PRO
0
75
プラットフォームを作る、プラットフォームを変える
onk
PRO
0
59
強いチームと開発生産性
onk
PRO
44
18k
ADRを運用して3年経った僕らの現在地
onk
PRO
22
25k
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
1
1.3k
オブザーバビリティの Primary Signals
onk
PRO
2
6.6k
Cache Stampede
onk
PRO
1
2.4k
ORM - Object-relational mapping
onk
PRO
3
4.2k
デュアルトラックアジャイルとの向き合い方
onk
PRO
5
13k
Other Decks in Technology
See All in Technology
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.3k
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
170
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
630
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
250
200個のGitHubリポジトリを横断調査したかった
icck
0
120
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
Chainlitで作るお手軽チャットUI
ynt0485
0
230
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
150
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
640
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
280
Claude Code×Terraform IaC テンプレート駆動開発
itouhi
1
520
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
150
Featured
See All Featured
Believing is Seeing
oripsolob
1
140
Speed Design
sergeychernyshev
33
1.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Building Adaptive Systems
keathley
44
3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
160
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
Transcript
1文字エイリアスのすゝめ id:onk 2024-08-24 Kyoto.なんか 1
• 大仲 能史 a.k.a. id:onk • 芸歴20年目 • 株式会社はてな ◦
チーフエンジニア ◦ Mackerel 開発チーム 自己紹介 2
3 今日の話
4 1文字エイリアス 使っている人 ノシ
1文字エイリアス • alias s="git status -sb" • 13文字 -> 1文字
◦ 13倍の生産性!!! 5
1文字エイリアス • Q: 実際はEnterも押すから7倍では? ◦ Enterを押すだけで動くようにしてある(デモ • Enter で ls
と git status を表示すると便利 6
historyを集計する • zshにはhistory機能がある • head ~/.zsh_history 7
head ~/.zsh_history 8 : 1522742171:0;brew update : 1522742190:0;brew upgrade :
1522742201:0;brew search ghq : 1522742205:0;brew install ghq : 1522742215:0;ls -apl : 1522742221:0;byobu : 1522742271:0;byobu : 1522742277:0;exit : 1522742279:0;cd dotfiles : 1522742283:0;exit
head ~/.zsh_history 9 : 1522742171:0;brew update : 1522742190:0;brew upgrade :
1522742201:0;brew search ghq : 1522742205:0;brew install ghq : 1522742215:0;ls -apl : 1522742221:0;byobu : 1522742271:0;byobu : 1522742277:0;exit : 1522742279:0;cd dotfiles : 1522742283:0;exit Time.at 1522742171 => 2018-04-03 16:56:11 +0900
history 10 $ history | tail -n 3 624392 cd
memo 624393 s 624394 v
historyを集計する 11 $ history 1 | awk '{ print $2
}' | sort | uniq -c | sort -nr | head
historyを集計する 12 141945 g 136083 s 67635 v 41072 cd
28606 rg 26105 tig 16898 t 12128 plenv 9685 :q 7998 ll
ちなみに以下の略 • g=git • s=git status -sb • function v()
{vi -p ${${=*/:/ +}/:*}} • t=tig • :q=exit • ll=ls -lFG 13
ちなみに以下の略 14 • function v() {vi -p ${${=*/:/ +}/:*}} ◦
vi -p で全部タブで開く ▪ bufferよりタブ派 ◦ s/:/ +/ みたいなヤツ ▪ v README.md:100 で100行目を開きたい ▪ vim README.md +100 ▪ grep -n で出てくる形式に合わせて、コピペで該当行に飛べ るように
ちなみに以下の略 15 • :q=exit ◦ vim派なので使っていたが ◦ 最近は Ctrl+D で閉じるようになったので使ってない
• ll=ls -lFG ◦ -l はいつもの ◦ -F はディレクトリだとスラッシュが付くとか ◦
-G は色付け ◦ 今は l 1文字にエイリアスしている ちなみに以下の略 16
17 g=git
18 gitって サブコマンドあるよね
historyを集計する 19 $ history 1 | awk '{ print $2,$3
}' | grep "^g " | sort | uniq -c | sort -nr | head
historyを集計する 20 24054 g a 16190 g ci 12911 g
ds 12303 g co 9046 g f 6665 g ap 5904 g switch 5844 g fix 5311 g b 5180 g r
• g a=git add • 2万回も叩いているなら1文字エイリアスに昇 格すると良いのでは??? ◦ alias a="git
add" まだまだ最適化できる 21
• g ds=git diff --staged -b • 1万回も叩いているなら1文字エイリアスに昇 格すると良いのでは?? ◦
alias d="git diff --staged -b" ◦ もともとalias d=dockerだったけど、より回数が多い 方を優先したいので徴収 まだまだ最適化できる 22
• git switch -d remotes/origin/HEAD ◦ remotes/origin ▪ ローカルでmainブランチは不要なのでremotesを直接見る ◦
main/masterが面倒ですよね ▪ git symbolic-ref refs/remotes/origin/HEAD ▪ デフォルトブランチが取れる! • をmに割り当てている gitのオススメ 23
というわけでやっていくぞ • 俺たちの手癖はまだまだ最適化できる • 使用頻度に合わせて最適化するのがオススメ ◦ 単純に生産性が上がる ◦ 文字数が少ないのは正義 •
ハフマン符号化 24
想定質問 • 他人のPCで困らない? ◦ 手癖がオプションを覚えてないので多少は困る ◦ aliasを作るときにしっかりオプション調べるので、 存在は覚えている=1回help見たら分かるので大丈夫 25
想定質問 • fishのabbrの方が ◦ 履歴を取って、最適化ループを回したい ◦ abbrはhistoryに「どう入力したか」は残らない 26