<commit_before>---
layout: post
title: "zsh"
date: 2021-02-06
excerpt: "zshのtips"
project: false
config: true
tag: ["zsh"]
comments: false
---

# zshのtips

## 必要に応じてbitbucketに`.zshrc`を更新して管理する
 - [link](https://bitbucket.org/nardtree/gimpei-dot-files/src/master/files/zshrc)

## 環境変数を適切に設定しているのに、`ls`コマンド等で文字化けが起きるとき
何らかの影響で`locales`パッケージが不整合を起こしていることがあった  

以下のコマンドで`ja_JP.UTF-8`に設定し直すことで治った事があった  

```console
$ sudo dpkg-reconfigure locales
```
 
## terminalにgitのbranchを表示する
`zsh`には`vcs_info`というモジュールが存在し、gitのbranchを取得できる  
`precmd関数`はコマンドを打つ前に自動で走るコマンドで、この中に記すことで、コマンド度に最新のbranch情報に更新できる

```shell
autoload -U colors && colors
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git svn
zstyle ':vcs_info:git*' formats "%b"
function precmd() {
  vcs_info
  PS1="%{$fg[cyan]%}%n@%m%{$reset_color%}:%1 %~ (${vcs_info_msg_0_})$ "
}
setopt prompt_subst
```

## terminalに`datetime`を表示する
`PS1`のフォーマットは以下のようになる
```shell
%D{%Y-%m-%d %M:%H:%S}
```<commit_msg>fix tag escape error of zsh<commit_after>---
layout: post
title: "zsh"
date: 2021-02-06
excerpt: "zshのtips"
project: false
config: true
tag: ["zsh"]
comments: false
---

# zshのtips

## 必要に応じてbitbucketに`.zshrc`を更新して管理する
 - [link](https://bitbucket.org/nardtree/gimpei-dot-files/src/master/files/zshrc)

## 環境変数を適切に設定しているのに、`ls`コマンド等で文字化けが起きるとき
何らかの影響で`locales`パッケージが不整合を起こしていることがあった  

以下のコマンドで`ja_JP.UTF-8`に設定し直すことで治った事があった  

```console
$ sudo dpkg-reconfigure locales
```
 
## terminalにgitのbranchを表示する
`zsh`には`vcs_info`というモジュールが存在し、gitのbranchを取得できる  
`precmd関数`はコマンドを打つ前に自動で走るコマンドで、この中に記すことで、コマンド度に最新のbranch情報に更新できる

```shell
autoload -U colors && colors
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git svn
zstyle ':vcs_info:git*' formats "%b"
function precmd() {
  vcs_info
  PS1="%{$fg[cyan]%}%n@%m%{$reset_color%}:%1 %~ (${vcs_info_msg_0_})$ "
}
setopt prompt_subst
```

## terminalに`datetime`を表示する
`PS1`のフォーマットは以下のようになる
```shell
%D{ %Y-%m-%d %M:%H:%S}
```
{'fraction_non_alphanumeric': 0.16675351745700887, 'fraction_numerical': 0.01354872329338197, 'mean_word_length': 6.649402390438247, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3605996', 'n_tokens_mistral': 1133, 'n_tokens_neox': 1049, 'n_words': 124}