前回はプラグイン管理まで書き、今回はStatusLineのColorScheme設定あたりをやろうかなと思ったのですが・・・
やっぱ設定ファイルゴリゴリいじってるとGit管理が欲しくなりますw
というわけで、自分でやったときとは順番前後しますがさきにGit対応します。
Gitで管理したいもの
ファイル名 | 用途 |
---|---|
init.vim | NeoVimの設定 |
dein.toml | Vim起動時読み込みのPluginファイル |
lazy.toml | 実行時読み込みのPluginファイル |
保管場所はすべて~/.config/nvim
の直下
Vim上で画面分割
今回PluginでGit操作を行いますが、画面分割が発生します。
そのため分割された画面を移動するためのキーバインドを設定しておきます。
" ------------------------------------------------------------
" key bind
" ------------------------------------------------------------
" Normal Mode
cnoremap init :<C-u>edit $MYVIMRC<CR> " init.vim呼び出し
noremap <Space>s :source $MYVIMRC<CR> " init.vim読み込み
noremap <Space>w :<C-u>w<CR> " ファイル保存
" <追加>分割画面移動
noremap <silent><C-h> <C-w>h
noremap <silent><C-j> <C-w>j
noremap <silent><C-k> <C-w>k
noremap <silent><C-l> <C-w>l
" Insert Mode
inoremap <silent> jj <ESC>:<C-u>w<CR> " InsertMode抜けて保存
" Insert mode movekey bind
inoremap <C-d> <BS>
inoremap <C-h> <Left>
inoremap <C-l> <Right>
inoremap <C-k> <Up>
inoremap <C-j> <Down>
PlugInでVim操作
今回はfugitive.vim
というPlugInを追加します。
# ------------------------------------
# Git vim-fugitive
# ------------------------------------
[[plugins]]
repo = 'tpope/vim-fugitive'
hook_add = '''
nnoremap <silent> gs :Gstatus<CR><C-w>T
nnoremap <silent> gps :Gpush<CR>
nnoremap <silent> gpl :Gpull<CR>
'''
なのでキーバインドはお好みで。
よく使うGstatusとpush、pullだけはバインドしました。
push、pullはGstatus画面のキーマップに無いので・・・
他にもよく使う機能はおいおいバインドすればいいかな。
あとは:G
のあとにgitのコマンド打てば、gitで出来ることは何でも出来ます。
Git管理開始
GithubでのリモートRepositoryはすでに作ってあること前提ですすめます。
管理したいファイルを開いてる状態で以下のコマンドを打つと、同じディレクトリ内に.git
ができます。
:G init
:G remote add origin git@github.com:mori-hisayuki/neovim.git
:Gstatus
で画面を開きます。
Gstatus画面が結構優秀で各種キーマップが揃ってる。
詳しくはここで
この位置で-
キーを押すと全部Staged
になります。
さらにStaged状態でc
を2回押すと、commitメッセージ画面が表示されます。
なのでInsertModeでメッセージを入力して:wq
でcommit完了です。
pushはキーバインドしてますが、最初だけオプションつけないといけないので以下の方法で入力
:Gpush -u origin master
これでとりあえずGithubで管理ができるようになりました。
2019/08/01 追加
branch作成・切り替え
branchの作成
Gstatus画面にてcb<sapace>
で:G branch
とコマンドラインに表示されるので、:G branch <branch名>
のように入力
branchの切り替え
Gstatus画面にてco<sapace>
で:G checkout
とコマンドラインに表示されるので、:G checkout <branch名>
のように入力
Git-flowの開始
Git-flowはすでに入ってること前提で以下のコマンドで開始
:G flow init
まとめ
Gstatus画面がかなり優秀。
diffも取れるし、対象ファイルも開けるし、ほとんどやりたいことはGstatus画面で事足ります。
できないこともpushのようにコマンド化されてたり、それでもできなければG:
のあとにコマンド打てばいいので、ターミナルを開ける必要がなくなりました!
これでとりあえず動作する状態の設定からブランチ切ってイジれるようになったので助かりました・・・w