+++ date = "2020-01-25JST" tags = ["dotfiles"] title = "開発環境を作り直してみる3" slug = "dotfiles" +++ 開発環境をイチから作りなおしてみる企画やってます。 https://git.syui.cf/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化していこうかなと考えています。 必要性はありませんが、やってみることで新たな知見を得られたりもするものなので、やっていきたいなあ。