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
21
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
16k
ADRを運用して3年経った僕らの現在地
onk
PRO
21
20k
すこやかなサービス運営のための PWG (Performance Working Group)
onk
PRO
0
90
オブザーバビリティの Primary Signals
onk
PRO
2
4.7k
Cache Stampede
onk
PRO
1
2k
ORM - Object-relational mapping
onk
PRO
2
3.5k
デュアルトラックアジャイルとの向き合い方
onk
PRO
5
12k
技術記事を書く&楽しむチームの作り方
onk
PRO
0
1.6k
グルーミングしながら進めるプロダクト開発
onk
PRO
0
2k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure:2025年2月度サービス・アップデート
oracle4engineer
PRO
1
340
JEDAI Meetup! Databricks AI/BI概要
databricksjapan
0
280
30分でわかる『アジャイルデータモデリング』
hanon52_
10
2.9k
OpenID BizDay#17 KYC WG活動報告(法人) / 20250219-BizDay17-KYC-legalidentity
oidfj
0
380
N=1から解き明かすAWS ソリューションアーキテクトの魅力
kiiwami
0
140
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.7k
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
1.6k
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
2
850
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
240
ホワイトボードチャレンジ 説明&実行資料
ichimichi
0
130
全文検索+セマンティックランカー+LLMの自然文検索サ−ビスで得られた知見
segavvy
2
130
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
0
150
Featured
See All Featured
A Philosophy of Restraint
colly
203
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
4 Signs Your Business is Dying
shpigford
182
22k
Agile that works and the tools we love
rasmusluckow
328
21k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
560
Adopting Sorbet at Scale
ufuk
74
9.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
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