1
0
hugo/content/blog/2020-01-25-dotfiles.md
2024-12-21 23:10:54 +09:00

100 lines
3.3 KiB
Markdown

+++
date = "2020-01-25"
tags = ["dotfiles"]
title = "開発環境を作り直してみる3"
slug = "dotfiles"
+++
開発環境をイチから作りなおしてみる企画やってます。
https://git.syui.ai/syui/dotfiles
### powerline.zsh
![](https://github.com/syui/mstdn.page/raw/master/img/mastodon/media_attachments/files/000/000/101/small/f1101b42f1027c5b.png)
https://github.com/syui/powerline.zsh
https://github.com/syui/ricomoon
zshのprompt(powerline.zsh)を調整しています。昔から不満のあったオリジナルアイコンの位置などを修正しました。昔からちょっと上にズレてたんですよね、気になってたんですが、放置してたのです。
icomoonで作ったやつは以下の調整でいけた。ただし、基本とするフォントにもよる。
```sh
#!/usr/bin/fontforge -script
Open("./font/icomoon.ttf")
SelectAll()
foreach
Scale(80, 80, 0, 0)
endloop
Generate("./font/i.ttf")
Close()
```
またgitlabやheroku(に似ている)アイコンをプラスしました。昔はfont-awesome(bland)に入ってなかった。ただ、省略したアイコンも多く、最初は必要なものにとどめました。
フォントに関しては、`SF Mono`が[いいらしい](https://qiita.com/delphinus/items/f472eb04ff91daf44274)。そのうち時間があれば見てみようかなと思っています。ただ、フォントやアイコン周りを久しぶりに触ることになりましたが、たいへん。`fontforge`なんもわからん。
`zstyle ':vcs_info:git:*' formats`とかで表示する情報にコミット数を追加してみたりした。
```sh
$ git --no-pager shortlog -sn |tr -d ' '|cut -f 1 | head -n 1
```
### zsh-notify
`zsh-notify`入れたら端末がおかしくなったような気がしたので、アンインストールした。
```sh:~/.zshrc
#zsh-notify
#commandを実行してもpromptが動かなくなることがある
zinit light marzocchi/zsh-notify
zstyle ':notify:*' error-title "Command failed"
zstyle ':notify:*' success-title "Command finished"
export SYS_NOTIFIER=`which terminal-notifier`
zstyle ':notify:*' command-complete-timeout 15
```
一応、上記の構成で機能はする。
### git add + git diff
`git add`するときにdiffを`fzf --preview`で確認する`^g`
`unbuffer`を使うので、ない場合は、`$ brew install expect`で入ります。
念の為に`bindkey -s`扱いにした。
```sh:~/.zshrc
# git addするときにdiff
function gadd() {
selected=$(unbuffer git status -s | fzf -m --ansi --preview="echo {} | awk '{print \$2}' | xargs git diff --color" | awk '{print $2}')
if [ -n "$selected" ]; then
BUFFER="git add $selected"
CURSOR=$#BUFFER
fi
}
zle -N gadd
bindkey '^g' gadd
```
### vimで直前のカーソル位置からファイルを開く
この設定は必須。
```vim:~/.vimrc
" 直前のカーソル位置で開く
augroup vimrcEx
au BufRead * if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal g`\"" | endif
augroup END
```
### 今後の予定と方向性
今後は、気になる箇所を修正しながら、linux対応とansible化やvagrant化していこうかなと考えています。
必要性はありませんが、やってみることで新たな知見を得られたりもするものなので、やっていきたいなあ。