zsh

  • zsh เป็น shell เหมือน bash
  • zsh จะ autocomplete HOST ใน .ssh/config ให้ (ตอนนี้, oh my zsh กำลังทำให้ #4345)
  • oh my zsh เป็น Framework สำหรับจัดการคอนฟิกูเรชันของ zsh
  • oh my zsh มีธีมและมีปลั๊กอินให้ใช้ เช่น git, vi-mode

Install zsh + oh my zsh

  1. Installing-ZSH
  2. robbyrussell/oh-my-zsh#basic-installation

แก้ ssh completion

ใน .zshrc เพิ่ม

zstyle -s ':completion:*:hosts' hosts _ssh_config
[[ -r ~/.ssh/config ]] && _ssh_config+=($(cat ~/.ssh/config | sed -ne 's/Host[=\t ]//p'))
zstyle ':completion:*:hosts' hosts $_ssh_config

จาก How to append / extend zshell completions?

หรือ

ใช้ mosh แทน ssh แต่ต้องเพิ่ม mosh ไปใน plugins=(... mosh) ใน .zshrc

vi-mode

ใน .zshrc เพิ่ม

export EDITOR='vim'

กด ESC หรือ CTRL+[ เพื่อเข้า NORMAL mode
กด i เพื่อเข้า INSERT mode
กด v ใน NORMAL mode เพื่อจะแก้คำสั่งใน $EDITOR แก้เสร็จ :wq

ใน .zshrc ถ้าใช้ธีม Powerlevel9k เพิ่ม

POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(vi_mode status root_indicator background_jobs history)

เพื่อบอก mode ปัจจุบันของ vi-mode

zshpowerlevelmode