Ubuntuを開発環境にするにあたり、ターミナル環境の整備を行っている。
ググりながら良さげな設定をチョイス中。
知識不足でなかなか情報どおりの設定ができなかったりするが、少しずつ理解しながら設定していく。
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 でコマンド履歴が扱いやすくなった。
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番号]