8tako8tako8’s blog

ソフトウェアエンジニア

覚えておきたいvimとtmux操作

概要

VSCode等を使用しているとvimtmuxについては使用する機会は少ないが、vimはサーバー内での設定ファイルの変更で、tmuxはサーバーのログ監視で活躍しそうなイメージがあるので、基本操作について整理しておく。

vim

たくさんあるvimキーバインドやコマンドで絶対に覚えておきたいものをまとめてみました。 :set number:set listは結構使っています。 visual blockモードは覚えてもすぐ使い方を忘れるので今回はリストから外しました。

キーバインドorコマンド 説明
esc Normalモード
i Insertモード
:wq 保存して終了
:q! 保存せず終了
dd 1行削除
{数値}dd {数値}行削除
yy 1行コピー
{数値}yy {数値}行コピー
P ddやyyで保持した行をペースト
:set number 行番号を表示
:set list 制御文字を表示
gg ファイルの先頭に移動
G ファイルの最後に移動
{数値}gg {数値}行目に移動
gg ファイルの先頭に移動
/{検索したい文字列} 文字列を検索
n 次の検索結果に移動
N 前の検索結果に移動

tmux

tmuxは使い慣れていないので、これぐらいなら覚えられるだろうとまとめてみました。

コマンド 説明
tmux tmuxを起動
tmux ls セッション一覧を表示
tmux a -t {セッション名} 指定のセッションにアタッチ
Control + b d デタッチ
tmux kill-server tmuxのシャットダウン
Control + b % 左右に分割
Control + b " 上下に分割
exit ペイン破棄
Control + b ↑↓←→ ペインを移動
Control + b { ペインの順序を前方向に入替
Control + b } ペインの順序を前方向に入替

tmuxの使用例として2つのログ監視で使用するデモを行いました。ターミナル複数並べるより見やすいです!

下記がログ出力用のシェルスクリプトです。

#!/bin/bash

logfile="test.log"

while true; do
  random_number=$((RANDOM % 3 + 1))

  case $random_number in
    1)
      message="testlog A"
      ;;
    2)
      message="testlog B"
      ;;
    3)
      message="testlog C"
      ;;
  esac

  echo "$(date) - $message" >> $logfile

  sleep 2
done

まとめ

これぐらいは覚えておいた方がいいと思ったものをまとめてみました! とは言っても使ってないと忘れるので、たまにはvimでコーディングしてみるのもアリかなって思ってます(笑)

参考

現役シリコンバレーエンジニアが教える NeoVim(VIM) + Tmux + Zsh 入門