terminalから出たくない頑固な男の戦い
by
uho-wq
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
terminal から出たくない頑固な男の戦い uho-wq
Slide 2
Slide 2 text
自己紹介 名前:uho-wq 🦍 25 卒 アプリ会社でtoC 向けの機能開発をしています バックエンドエンジニア (Go) AI Agent も開発してます (Python) 北区在住 ( 歩いて帰れる) 北区の私の推し 🧖 COCOFURO ☕ apollon 🚃 東京さくらトラム
Slide 3
Slide 3 text
早速ですが
Slide 4
Slide 4 text
できるだけTerminal から出たくない
Slide 5
Slide 5 text
言い換えると = コンテキストスイッチを最小にしたい
Slide 6
Slide 6 text
コンテキストスイッチとは 作業や思考の流れ(コンテキスト)から別の作業に切り替えることを指す
Slide 7
Slide 7 text
コンテキストスイッチを最小化するために どういう環境を構成すればいいか 今日はそういう話をします
Slide 8
Slide 8 text
なんで最小にしたいの? ChatGPT → Cursor で開発生産性が圧倒的に向上した なぜ? → コンテキストスイッチが減ったから ブラウザでAI に聞く → エディタに戻ってコード書く、のループがなくなった エディタの中でAI と対話できる = 思考が途切れない 💡 この体験をもっと突き詰めて生産性を最大化したい アプリの切り替え自体を最小にすればいいのでは?
Slide 9
Slide 9 text
先に結論 WezTerm と Chrome 開発全般 それ以外 結論、基本はこれしか開かないで良くなりました
Slide 10
Slide 10 text
他のアプリどこいった? Slack, Discord, Asana … → 全部 Chrome のタブで開く いちいちブックマーク開くの? Spotlight に変わるLaunchar ツール Raycast Quiclink に URL を登録 Raycast Extensions でマッピング ctrl + 0 → Slack ctrl + 9 → Asana
Slide 11
Slide 11 text
なぜ WezTerm ? WezTerm はターミナルエミュレータ Lua で設定を宣言的に管理 できる タブ消したり、透過率も調整できるのが嬉しい 休日は透過率を上げて裏でアニメ流したりする wezterem の機能自体はまだ使いこなせてない local wezterm = require 'wezterm' local config = wezterm.config_builder() config.font_size = 12.0 config.automatically_reload_config = true config.window_background_opacity = 0.85 config.macos_window_background_blur = 15 config.color_scheme = 'Tokyo Night' config.enable_tab_bar = false
Slide 12
Slide 12 text
これ以上アプリを増やさないためには Terminal を最強にするしかない
Slide 13
Slide 13 text
エディタ: Neovim IDE 批判とかはしないので安心してください
Slide 14
Slide 14 text
AI Agent: Claude Code tmux でpane 分割して Neovim と Claude Code を並べる tmux: ターミナル内で複数の仮想端末を管理するマルチプレクサ
Slide 15
Slide 15 text
claudecode.nvim CC をリバースエンジニアリングしたプラグイン CC が Neovim をエディタとして認識 してくれる エディタで選択した箇所を コンテキストとして送信
Slide 16
Slide 16 text
tmux load-buffer (vibe plugin) 1. 一時ファイル作成: vim.fn.tempname() で一時ファイルパスを取得 2. 内容を書き込み: vim.fn.writefile() で送りたいメッセージを一時ファイルに保存(複数行対応) 3. tmux load-buffer で一時ファイルの内容をtmux のバッファに読み込み
Slide 17
Slide 17 text
tmux レイアウト管理 tmux でpane のレイアウトを毎回再現するのは 面倒 → 💡 vde-layout で解決 YML ファイルで宣言的に管理 コマンド1 発で環境を再現 ## vde-layout.yml layout: - name: dev panes: - command: nvim size: 60% - command: claude size: 40% $ vde-layout web-dev
Slide 18
Slide 18 text
現時点こんな感じ
Slide 19
Slide 19 text
画面がせまくなってきたら tmux popup 必要なときだけ フローティングウィンドウ を表示 一時的な操作に最適
Slide 20
Slide 20 text
シェルの便利ツール群 「シェルってコマンド打つのとか、ディレクトリ移動めんどい」 zoxide - cd の代替 fzf - ファジーファインダー ghq + fzf - リポジトリ移動 yazi - ターミナルファイラー
Slide 21
Slide 21 text
Git 操作 lazygit リッチな TUI で git 操作 個人的にはcherry-pick が操作しやすい gh dash Issue / PR を ダッシュボード形式 で一覧表 示 GitHub CLI Issue や PR を作成・編集 → Git 操作もほぼTerminal 完結
Slide 22
Slide 22 text
Cursor Tab に勝るもの これは未だに見つかってない。 。 Cursor Tab は強い。 現状の選択肢 ツール 特徴 Supermaven 高速で便利な補完、Copilot の高速版、すこしおバカ sidekick.nvim Copilot の NES が使えるが レイテンシが気になる、Cursor Tab ほど柔軟ではない 🙏 いいのあれば教えてください
Slide 23
Slide 23 text
ここまできたらマウスも最小限にしたい ホームポジションから手を離したくない トラックパッドは親指で操作するとして、 基本操作をキーボード完結 ( かつホームポジションからできるだけ離れないよう) にしたい
Slide 24
Slide 24 text
代替ツール yabai + skhd yabai: タイリングウィンドウマネージャ skhd: ホットキーデーモン アプリ間移動をキーボードだけで Homerow 画面上の要素に ヒントキー を表示 クリック・スクロールをキーボードで Raycast アプリのキーマッピング Spotlight の代替 メモ / ショートカット / ポモドーロ / ウィン ドウ管理
Slide 25
Slide 25 text
環境差分問題 25 卒で新卒入社 → 社用 PC が配られた 困ること 私用 PC と社用 PC で 環境差分 が起こる どっちかしか使わなくなる やだ 最適解 → Nix Nix: 再現可能なビルドとパッケージ管理を実現する純粋関数型パッケージマネージャ
Slide 26
Slide 26 text
Nix nix-darwin — Mac の設定も宣言的に Mac のシステム設定を Nix で宣言 新しい PC でも darwin-rebuild switch で一発再現 ## CapsLock を Ctrl に system.keyboard.remapCapsLockControl = true; ## Dock を使用中のアプリに限定 system.defaults.dock.static-only = true;
Slide 27
Slide 27 text
devshell + nix-direnv プロジェクトごとの開発環境を自動切替 direnv allow したディレクトリに入った瞬間に devShell が作成 グローバルのツールは引き継がれるので Docker より快適 プロジェクト間の依存関係の衝突なし devShell: プロジェクトごとの開発環境を定義する Nix ツール direnv: ディレクトリに入ると自動で環境変数をロード ## flake.nix devShells = { go = pkgs.mkShell { packages = with pkgs; [ go gopls golangci-lint ]; }; };
Slide 28
Slide 28 text
dotfiles 管理 Homebrew → nixpkgs へ移行 パッケージ管理も Nix に統一 ( 完全移行はまだ道半ば) home-manager で dotfiles も宣言的に 設定ファイルを Nix で管理 or symlink dotfiles を Git で管理 → どの PC でも同じ環境 OS 設定 + パッケージ + dotfiles = すべて Nix で宣言的管理
Slide 29
Slide 29 text
まとめ 使用アプリを最小化して開発生産性を最大化する ❓️ 最大化されたのか わからん。ただ楽しい Nix まだ始めたばっかりなので 詳しい人 おしえてください 🙏 便利なプラグインとかアプリとかも教えて下さい🙏
Slide 30
Slide 30 text
ありがとうございました 🦍 uho-wq