こんばんは。ナナオです。
Windowsに切り替えてから半年近く経ちますが、まだwslのセットアップが全然できていませんでした。
普段仕事ではMacを使っているのでこちらもzshを使おうと思っていたんですが、せっかくなら新しいものを使いたいなと思って調べてみたら、プラグイン管理にznapというツールが使用できることを知ったのでzshと一緒に導入してみようと思います。
ZSHの導入
私のWSLはUbuntuを使用しているため、その設定でやります。
まずは以下のコマンドでzshをインストールします。
sudo apt install zsh
次にchshで起動するシェルをZSHに変更します。
chsh -s /bin/zsh
はい、これで導入終わりです。
ホームディレクトリに空の.zshrc
を配置したら設定はこれで終わりです。
Znapの導入
続けてznapの導入です。
リポジトリをクローンします。
git clone -depth 1 -- https://github.com/marlonrichert/zsh-snap.git ~/.znap
そしたらznapを読み込む設定を.zshrcに追加します。
# .zshrc
source ~/.znap/znap.zsh
はい、これで終わりです。
とりあえずhelpコマンドを表示してみましょう。
% znap --help
Usage: znap <command> [ <argument> ... ]
Commands:
clean remove outdated .zwc binaries
clone download repos in parallel
compile compile zsh scripts and functions
eval cache & eval output of command
fpath install command output as a function
function create a set of lazy-loading functions
help print help text for command
ignore add local exclude patterns to repo
install install executables & completion functions
multi run tasks in parallel
prompt instant prompt from repo
pull update repos in parallel
restart (DEPRECATED) validate dotfiles & safely restart Zsh
source load plugins
status fetch updates & show git status
uninstall remove executables & completion functions
For more info on a command, type `znap help <command>`.
ちゃんとznapコマンドが使えていますね。
まずはznapが管理するリポジトリのディレクトリパスを指定してあげる設定を.zshrcに追記してあげます。
これをしないと、この後znapで追加するプラグインなどがホームディレクトリ上にどんどん追加されていって非常に見栄えが良くなくなってしまいます。
zstyle ':znap:*' repos-dir ~/.znap/repos
じゃあ次にohmyzshを使えるようにしていきましょう。
znap source ohmyzsh/ohmyzsh
znap source ohmyzsh/ohmyzsh lib/{git,theme-and-appearance}
znap source ohmyzsh/ohmyzsh plugins/git
これでgitプラグインが使用可能になりました。(gitコマンドがgで使えるようになる)
エイリアスが通っているか確認しましょう。
> g --help
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[--super-prefix=<path>] [--config-env=<name>=<envvar>]
<command> [<args>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
clone Clone a repository into a new directory
init Create an empty Git repository or reinitialize an existing one
work on the current change (see also: git help everyday)
add Add file contents to the index
mv Move or rename a file, a directory, or a symlink
restore Restore working tree files
rm Remove files from the working tree and from the index
examine the history and state (see also: git help revisions)
bisect Use binary search to find the commit that introduced a bug
diff Show changes between commits, commit and working tree, etc
grep Print lines matching a pattern
log Show commit logs
show Show various types of objects
status Show the working tree status
grow, mark and tweak your common history
branch List, create, or delete branches
commit Record changes to the repository
merge Join two or more development histories together
rebase Reapply commits on top of another base tip
reset Reset current HEAD to the specified state
switch Switch branches
tag Create, list, delete or verify a tag object signed with GPG
collaborate (see also: git help workflows)
fetch Download objects and refs from another repository
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.
ちゃんと使えているようです。
プロンプトも変えてみます。
pureというプロンプトがかなりシンプルで早くていい感じらしいので入れてみます。
znap prompt sindresorhus/pure
これでターミナルを再起動すると、プロンプトが適用されます!
あとは使いたいプラグインをこんな感じで適当に.zshrc
に追加していけば…
znap source marlonrichert/zsh-autocomplete
znap source zsh-users/zsh-autosuggestions
znap source zsh-users/zsh-syntax-highlighting
znap source zsh-users/zsh-completions
znap source hlissner/zsh-autopair
大体いい感じになりました!
まとめ
少ない労力でzshがいい感じに動くようになりました。
ではまた。