tmux + Vimでペアプログラミング勉強会を開催した記録
概要¶
tmux と Vim を組み合わせて、複数人が同じ画面・同じカーソル位置を共有しながらペアプログラミングを行う勉強会の記録。リモートでもターミナルベースで高速・低遅延な共同編集ができる。Vim を実際に人に見せることで気づく操作の洗練ポイントもまとめ。
詳細¶
環境構築: tmux でセッション共有¶
# ホスト側: 新しいセッションを作成
tmux new-session -s pair
# ゲスト側: 同じセッションにアタッチ(読み取り専用)
tmux attach-session -t pair
# ゲスト側: 同じセッションに書き込み権限でアタッチ
tmux attach-session -t pair -r # -r は readonly の逆で共有書き込み
# または
tmux new-session -t pair # セッションをグループとして共有
勉強会で学んだ Vim キーバインド Tips¶
移動系¶
# 単語単位の移動
w / b 次/前の単語の先頭へ
e 次の単語の末尾へ
W / B 空白区切りで単語移動(より大きな単位)
# 行内の移動
f{char} 行内で {char} に forward ジャンプ
t{char} {char} の直前にジャンプ
; / , 同じ方向 / 逆方向に繰り返し
# 画面スクロール
Ctrl-d 半画面下
Ctrl-u 半画面上
zz カーソル行を画面中央に
編集系¶
ci" ダブルクォート内を変更(Change Inside)
ca( カッコごと変更(Change Around)
di{ 波括弧内を削除
yip 現在の段落をヤンク
# マルチライン操作
V ビジュアルライン選択
gq 選択範囲を整形(折り返し)
= 選択範囲のインデント自動整形
ペアプロで気づいた活用パターン¶
| シチュエーション | 使ったコマンド |
|---|---|
| 関数定義に飛ぶ | gd(ローカル定義)/ gD(グローバル) |
| 直前の変更箇所に戻る | g; |
| マークを使って行き来 | ma でマーク → 'a で戻る |
| 同じ変更を複数箇所に | .(ドット)コマンドで繰り返し |
| レジスタを確認する | :reg |
.vimrc の共有設定例¶
" ペアプロ向けに視認性を上げる設定
set number " 行番号表示
set cursorline " カーソル行をハイライト
set showcmd " 入力コマンドを右下に表示
set ruler " カーソル位置を表示
set scrolloff=8 " カーソル上下に8行のマージン
なぜ重要か / いつ使うか¶
- リモートペアプログラミングを低遅延で実現したいとき(VS Code Live Share より軽量)
- Vim を独学で使っているが、他人の操作を見て学びたいとき
- チームに Vim ユーザーを増やしたい・布教したいとき
- SSH 環境しか使えないサーバー作業で効率よく共同作業するとき