📑

fish, neovim, starshipあたりでめっかわ❤️ターミナルを用意する

2021/08/28に公開

デフォルトのシェルだと色があまりついていないし、可愛くもなくてつらい気持ちになったのでかわいくします。dotfilesの存在は知っていたが何から触ればいいのやらな人向け。

だいたい導入するもの

  • fish
    • bashとかzshの変わりに使う
    • historyをGUIで見ることができたり、シンタックスハイライトをデフォルトでしてくれたり、入力補完をデフォルトでしてくれたりする
    • なので設定めんどくさい人でも入れるだけでちょっとハッピー
  • tmux
    • ターミナルのペインとか良い感じに分割したりセッション保存してくれたり
  • neovim
    • vimのすごいやつ
    • いれなくても良い気はしたが、ターミナル上で開発しちゃう人に憧れたのでお試し導入
  • starship
    • ターミナルを可愛くするやつ

fishを入れる

この記事を参考に導入する。

プラグイン

  • fisher
    • そもそもfisher add プラグイン名でプラグイン管理してくれるので必須
  • z
    • ディレクトリジャンプ(スペースのあとでタブ補完)
    • z + -lでトラックしているディレクトリリスト表示、z + 文字列でディレクトリ候補表示
  • peco
    • fzfとほぼおなじっぽいのでいれなくていいかも
  • fzf
    • ファイル検索、実行コマンド検索をあいまい検索できる
    • ctrl+Rで実行履歴、ctrl+上下で上下に移動できる
  • ghq
    • gitのリポジトリの一元管理
    • ghq自体はbrewでインストールしておく
    • fzfでリポジトリ一覧をフィルタリングしてcdしたりできる
  • hub
    • brewでインストールする

ghq

ghq+fzfならconfig.fishに以下を追加

# ghq + fzf
function ghq_fzf_repo -d 'Repository search'
  ghq list --full-path | fzf --reverse --height=100% | read select
  [ -n "$select" ]; and cd "$select"
  echo " $select "
  commandline -f repaint
end

# fish key bindings
function fish_user_key_bindings
  bind \cg ghq_fzf_repo
end

git config --global ghq.root '~/src'で管理するディレクトリを設定したら、ghq listでリポジトリ一覧の表示をしたり。
ghq list | fzfみたいにパイプで繋げてつかう。

config.fish

ユーザーディレクトリ/.config/fish/config.fishに書いていく。ちなみにdotfilesを漁っているとユーザーディレクトリ/.config/fish/functions/に自分でコマンド追加している人も結構いた。
git alias系とかalias vim="nvim"だけ設定すれば最低限よさそう。

alias vi="nvim"
alias ga="git add"
alias gbd="git branch -d"
alias gb='git branch'
alias gcm='git commit -m'
alias gca="git commit --amend"
alias gc="git checkout"
alias gcb="git checkout -b"
alias gl="git log --date=iso --decorate"
alias glp="git log --date=iso --decorate --patch"
alias glg="git log --date=iso --graph --decorate --oneline --all"
alias gs="git status"
alias gf="git fetch"
alias gp="git pull"
alias gst="git stash"
alias gstl="git stash list"
alias gstp="git stash pop"
alias gstd="git stash drop"

くらいあればよい。

tmuxを入れる

この記事がわりとすべて。confもわりとこのまま使えばよさそう。

neovimを入れる

breq install neovimで入れることが可能。
neovimを良い感じにするにはZennのこの記事を参考にして、
neovimで開発する用途ならZennのこの記事を参考にするとよさそう。

とりあえず
curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.shsh ./installer.sh ~/.cache/deinでdeinをインストールする。

deinの設定

~/.vim/dein.toml にプラグインを書いていく。公式をみながら.vimrc(こっちはルートフォルダ直下に普通あるはず)に設定を書くだけでも使えはする。また、~/.vim/dein_lazy.toml にファイルタイプごとに都度読み込まれるプラグインも書いておくとよさそう。

プラグイン

  • coc.nvim:インテリセンス(IDEっぽい補助機能)
  • defx.nvim:ファイラ
  • denite.nvim:ファイル検索
    くらいいれておいて、あとは必要になったらいれたらいいかも。

starshipを入れる

設定はstarship.tomlにかく。適当に拾ったファイルを使った。
これでターミナルに時間が表示されたり絵文字が表示されたりかわいい感じになる。

ちなみに

慣れるまではtmuxのペイン分割とか、vimのキーバインドは壁に貼っておくとよいよ。あと、dotfilesに実体を置いてgit管理して、~/.configにシンボリックリンクをはるとよいかも。

上記をこなすと、良い感じに補完してくれたり良い感じに絵文字だらけのめっかわ❤️なターミナルになります。開発に疲れたときに改造しておくと作業効率も上がるし気分も上がるのでよさそう。

Discussion