やる気がストロングZERO

やる気のストロングスタイル

ターミナル環境(zsh)の設定メモ

Ubuntuを開発環境にするにあたり、ターミナル環境の整備を行っている。
ググりながら良さげな設定をチョイス中。
知識不足でなかなか情報どおりの設定ができなかったりするが、少しずつ理解しながら設定していく。

zshインストール

zshをインストール

sudo apt install zsh

ログインシェルをzshにする 参考(ログインシェルをzshに変える - Qiita

zshrcなどの設定ファイルは「zshの本」に記載されていたものをそのまま記載した。 (内容はまだ理解できていない。あとで一旦デフォルトに戻すかもしれない)
下記からコピペできた。
http://www.gentei.org/~yuuji/support/zsh/

peco関連の設定

参考)pecoる - Qiita

PECOのインストール

バイナリをダウンロードしてパスが通っている場所に配置した。 参考)ubuntuでのpecoのインストール - Qiita

コマンド履歴設定

.zshrcに追記

function peco-select-history() {
    # historyを番号なし、逆順、最初から表示。
    # 順番を保持して重複を削除。
    # カーソルの左側の文字列をクエリにしてpecoを起動
    # \nを改行に変換
    BUFFER="$(history -nr 1 | awk '!a[$0]++' | peco --query "$LBUFFER" | sed 's/\\n/\n/')"
    CURSOR=$#BUFFER             # カーソルを文末に移動
    zle -R -c                   # refresh
}
zle -N peco-select-history
bindkey '^R' peco-select-history

これで、
ctrl r でコマンド履歴が扱いやすくなった。

ghq設定

goをインストール

sudo apt install golang  

goのパス設定
.zshrcに追記

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

ghqのインストール

go get github.com/motemen/ghq

githubにあった補完ファイル「_ghq」をfpathの通っているところに置く(補完が聞くようになる。)とりあえず一番先頭のところに置いた これでghq コマンドでgithubリポジトリを管理できるようになった。

cdr設定

.zshrcに下記追記

if [[ -n $(echo ${^fpath}/chpwd_recent_dirs(N)) && -n $(echo ${^fpath}/cdr(N)) ]]; then
    autoload -Uz chpwd_recent_dirs cdr add-zsh-hook
    add-zsh-hook chpwd chpwd_recent_dirs
    zstyle ':completion:*' recent-dirs-insert both
    zstyle ':chpwd:*' recent-dirs-default true
    zstyle ':chpwd:*' recent-dirs-max 1000
    zstyle ':chpwd:*' recent-dirs-file "$HOME/.cache/chpwd-recent-dirs"
fi

function peco-cdr () {
    local selected_dir="$(cdr -l | sed 's/^[0-9]\+ \+//' | peco --prompt="cdr >" --query "$LBUFFER")"
    if [ -n "$selected_dir" ]; then
        BUFFER="cd ${selected_dir}"
        zle accept-line
    fi
}
zle -N peco-cdr
bindkey '^[r' peco-cdr

ctrl [ rでディレクトリ履歴操作できるようになった。

tigのインストール

gitツリーなどを見るためにtigをインストールした。
Git GUIクライアントツールからの脱却検討 - やる気がストロングZERO

tmux設定

便利そうなのでtmuxを入れた。

sudo apt install tmux

とりあえずほぼデフォルトだが、コピーモードでviの操作でキー操作できるようにして、ペインを開くときにカレントディレクトリを維持するようにした。 ~/.tmux.conf

set-window-option -g mode-keys vi
bind c new-window -c '#{pane_current_path}'
bind '"' split-window -c '#{pane_current_path}'
bind % split-window -h -c '#{pane_current_path}'

tmuxでよく使う操作

画面分割横
ctrl b + %

画面分割縦
ctrl b + "

ペイン移動
ctrl b + o

現在のペインの最大化(もう一度実行でもどる)
ctrl b + z

ウィンドウ追加
ctrl b + c

ウィンドウ一覧から選択
ctrl b + w

デタッチ
ctrl [ + d

セッション一覧
tmux ls

セッション指定でアタッチ
tmux attach -t [session番号]