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
0
55
1文字エイリアスのすゝめ
2024-08-24 Kyoto.なんか #6
https://kyoto-nanka.connpass.com/event/324686/
Takafumi ONAKA
PRO
August 24, 2024
Tweet
Share
More Decks by Takafumi ONAKA
See All by Takafumi ONAKA
強いチームと開発生産性
onk
PRO
40
17k
ADRを運用して3年経った僕らの現在地
onk
PRO
21
22k
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
0
870
オブザーバビリティの Primary Signals
onk
PRO
2
5.8k
Cache Stampede
onk
PRO
1
2.1k
ORM - Object-relational mapping
onk
PRO
2
3.7k
デュアルトラックアジャイルとの向き合い方
onk
PRO
5
12k
技術記事を書く&楽しむチームの作り方
onk
PRO
0
1.9k
熊とワルツを
onk
PRO
0
7
Other Decks in Technology
See All in Technology
Observability infrastructure behind the trillion-messages scale Kafka platform
lycorptech_jp
PRO
0
130
Uniadex__公開版_20250617-AIxIoTビジネス共創ラボ_ツナガルチカラ_.pdf
iotcomjpadmin
0
150
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
390
本当に使える?AutoUpgrade の新機能を実践検証してみた
oracle4engineer
PRO
1
120
LinkX_GitHubを基点にした_AI時代のプロジェクトマネジメント.pdf
iotcomjpadmin
0
160
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
29
9.5k
知識を整理して未来を作る 〜SKDとAI協業への助走〜
yosh1995
0
150
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
2
140
CSS、JSをHTMLテンプレートにまとめるフロントエンド戦略
d120145
0
230
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
2
390
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
290
AIにどこまで任せる?実務で使える(かもしれない)AIエージェント設計の考え方
har1101
3
1.3k
Featured
See All Featured
A Tale of Four Properties
chriscoyier
160
23k
Typedesign – Prime Four
hannesfritz
42
2.7k
Unsuck your backbone
ammeep
671
58k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Speed Design
sergeychernyshev
31
1k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Gamification - CAS2011
davidbonilla
81
5.3k
Designing for Performance
lara
609
69k
Building Applications with DynamoDB
mza
95
6.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
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