dorapon2000’s diary

忘備録的な。セキュリティとかネットワークすきです。

自分の zsh + powerline10k + peco の設定例

Windows 11 の Ubuntuzsh に prezto と powerline10k と peco の設定した記録を残します。完全に自分用の忘備録です。

前提

この記事でできるようになること

  • prezto で zsh でのコマンドのサジェストとコマンドのシンタックスハイライトが作るようになる
  • powerline10k でポチポチしてるだけで自分好みのプロンプトテーマになる
  • peco でコマンドヒストリを一覧表示できるようになる

各種設定

zsh の確認

現在のシェルが zsh になっていることを確認。

% echo $SHELL
/usr/bin/zsh

なっていなければ、zsh のパスに変更。

chsh -s /usr/zsh
# chsh -s /usr/bin/zsh でもよい

exec zsh -l

Prezto のインストール

Prezto は zsh の設定をするためのツール。このあとの Powerlevel10k の設定とサジェストとシンタックスハイライトのためにインストールする。

https://github.com/sorin-ionescu/prezto?tab=readme-ov-file#installation

git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

# 念のため zsh 関連ファイルをバックアップ
cp ~/.zshrc ~/.zlogin ~/.zlogout ~/.zpreztorc ~/.zprofile ~/.zshenv /tmp

# 実行前に関連ファイルは削除しないとエラーが出る
rm ~/.zshrc ~/.zlogin ~/.zlogout ~/.zpreztorc ~/.zprofile ~/.zshenv

# github の手順からコピペと実行
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

exec $SHELL -l

カラフルなシェルが表示されればインストール成功。

Powerlevel10k のインストール

Powerlevel10k は Prezto で扱えるプロンプトテーマ設定ツール。

https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#getting-started

最初はフォントのダウンロード。公式も推奨している。

https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#manual-font-installation

4つのフォントをクリックするとダウンロードされるので、それぞれ実行して、インストールボタンを押す。

Ubuntu の設定を開き、既定値 > 外観 > フォントフェイス から先ほどインストールした「MesloLGS NF」を設定→保存する。

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

exec $SHELL -l

シェルを再起動すると Powerlevel10k のプロンプト設定が開くので、適当に設定する。

自分はこんな感じの見た目になった。シンプルなのが好き。

Prezto で自動保管とシンタックスハイライトを有効化する

Prezto を使っていると設定ファイルにすでにいい感じの設定例がコメントアウトされている。

vim ~/.zpreztorc

~/.zpreztorc を編集。

# Set the Prezto modules to load (browse modules).
# The order matters.
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'history-substring-search' \
  'prompt' \
  'autosuggestions' \ # <-- 追加
  'syntax-highlighting' # <-- 追加#
# Syntax Highlighting
#

# Set syntax highlighters.
# By default, only the main highlighter is enabled.
zstyle ':prezto:module:syntax-highlighting' highlighters \  # コメントアウトを外す
  'main' \
  'brackets' \
  'pattern' \
  'line' \
  'cursor' \
  'root'

# Set syntax highlighting styles.
# zstyle ':prezto:module:syntax-highlighting' styles \
#   'builtin' 'bg=blue' \
#   'command' 'bg=blue' \
#   'function' 'bg=blue'

# Set syntax pattern styles.
zstyle ':prezto:module:syntax-highlighting' pattern \  # コメントアウトを外す
  'rm*-rf*' 'fg=white,bold,bg=red'
exec $SHELL -l

コマンドに色がついてサジェストも出るようになった。

peco のインストール

peco を使ってコマンドヒストリを一覧・フィルタリングできるようにする。

https://github.com/peco/peco?tab=readme-ov-file#installation

sudo apt install peco
vim ~/.zshrc

.zshrc の末尾に以下を追加。

# C-R: peco-history-selection
function peco-history-selection() {
    BUFFER=$(\history -nr 1 | peco --layout=bottom-up)
    CURSOR=${#BUFFER}
    zle reset-prompt
}

zle -N peco-history-selection
bindkey '^R' peco-history-selection
source ~/.zshrc

Ctrl-R で過去のヒストリを一覧表示できるようになった。

emacs の設定

正直記事の趣旨からすると蛇足だが、自分は emacs を簡単なファイル編集で使うので、設定する。

sudo apt install emacs
vim ~/.emacs

emacs の設定ファイルは .emacs.emacs.d フォルダ。

;; *.~ とかのバックアップファイルを作らない
(setq make-backup-files nil)
;; .#* とかのバックアップファイルを作らない
(setq auto-save-default nil)
;; スクロールを1行ずつ
(setq scroll-step 1)
;; 行番号・桁番号をモードラインに表示する
(line-number-mode t)
(column-number-mode t)
;; スタートアップメッセージを非表示
(setq inhibit-startup-message t)
vim ~/.zshrc

Ubuntu 上では emacsGUI ではなくターミナル上で起動させたいので、emacs と打つだけでそうなるように alias を張る。

alias emacs='emacs -nw'
source ~/.zshrc

参考