Ubuntuを開発環境にするにあたり、ターミナル環境の整備を行っている。
ググりながら良さげな設定をチョイス中。
知識不足でなかなか情報どおりの設定ができなかったりするが、少しずつ理解しながら設定していく。
zshインストール
zshをインストール
sudo apt install zsh
ログインシェルをzshにする 参考(ログインシェルをzshに変える - Qiita
zshrcなどの設定ファイルは「zshの本」に記載されていたものをそのまま記載した。
(内容はまだ理解できていない。あとで一旦デフォルトに戻すかもしれない)
下記からコピペできた。
http://www.gentei.org/~yuuji/support/zsh/
peco関連の設定
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番号]