2020-01-25 / @syui

dotfiles

開発環境を作り直してみる3

開発環境をイチから作りなおしてみる企画やってます。

https://git.syui.cf/syui/dotfiles

powerline.zsh

https://github.com/syui/powerline.zsh

https://github.com/syui/ricomoon

zshのprompt(powerline.zsh)を調整しています。昔から不満のあったオリジナルアイコンの位置などを修正しました。昔からちょっと上にズレてたんですよね、気になってたんですが、放置してたのです。

icomoonで作ったやつは以下の調整でいけた。ただし、基本とするフォントにもよる。

#!/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いいらしい。そのうち時間があれば見てみようかなと思っています。ただ、フォントやアイコン周りを久しぶりに触ることになりましたが、たいへん。fontforgeなんもわからん。

zstyle ':vcs_info:git:*' formatsとかで表示する情報にコミット数を追加してみたりした。

$ git --no-pager shortlog -sn |tr -d ' '|cut -f 1 | head -n 1

zsh-notify

zsh-notify入れたら端末がおかしくなったような気がしたので、アンインストールした。

#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扱いにした。

# 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で直前のカーソル位置からファイルを開く

この設定は必須。

" 直前のカーソル位置で開く
augroup vimrcEx
  au BufRead * if line("'\"") > 0 && line("'\"") <= line("$") |
  \ exe "normal g`\"" | endif
augroup END

今後の予定と方向性

今後は、気になる箇所を修正しながら、linux対応とansible化やvagrant化していこうかなと考えています。

必要性はありませんが、やってみることで新たな知見を得られたりもするものなので、やっていきたいなあ。