マスタリングVim

· ·

🔗

Chapter2 memo 🔗

  • pluginインストールディレクトリ作成 : mkdir -p ~/.vim/pack/plugins/start
  • pluginインストール(初歩的なやり方)
1
2
3
4
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/pack/plugins/start/nerdtree
git clone https://github.com/tpope/vim-unimpaired.git ~/.vim/pack/plugins/start/vim-unimpaired
git clone https://github.com/ctrlpvim/ctrlp.vim.git ~/.vim/pack/plugins/start/ctrlp
git clone https://github.com/easymotion/vim-easymotion.git ~/.vim/pack/plugins/start/vim-easymotion
  • バッファリスト表示からバッファ表示 : :ls -> :b1
  • split : :split :vsplit
  • タブを開く : :tabnew
  • タブ移動 : gt gT
  • foldmethod = indent時の展開 : zo逆は zc
  • explorerを開く : :Ex
  • コピーしたテキストを確認するレジスタ一覧 : :reg

Chapter3 🔗

  • vim-plug download : curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.github.com/junegunn/vim-plug/master/plug.vim
  • Plug install : :PlugInstall
  • Plug update : :PlugUpdate
  • Plug clean : :PlugClean
  • Plug upgrade : :PlugUpgrade
  • .vimrc ファイルにPlugを追加した後の保存とインストール : :w | so $MYVIMRC | PlugInstll
  • プロファイリング : vim --startuptime startuptime.log

Chapter4 🔗

  • 特定のメソッドが定義されている場所を見つけ、それが呼ばれている場所を探す : gd

Chapter5 ビルドし、テストし、実行する 🔗

  • gitの使い方的な章
  • git init -> git add . -> git commit -m ""
  • git remote add origin <URL>
  • git push -u origin main
  • リモートの変更をローカルに取り込む場合 : git pull --rebase
  • git log
  • git checkout -b <ブランチ名>
  • git branch -a
  • file diff : vimdiff <file a> <file b>
  • diffでの差分を反映する : do , dp , :diffget , :diffput
  • diffのファイルを手動で変更した場合の手動アップデートdiffu
  • conflict発生時 : git mergetool
  • vimdiff / Git
1
2
3
git config --global merge.tool vimdiff
git config --global merge.conflictstyle diff3
git config --global mergetool.prompt false
  • :diffg R : REMOTEの変更を反映
  • :diffg B : BASEの変更を反映
  • :diffg L : LOCALの変更を反映
  • grep : :grep -r --include="*.py" animal .
  • grep(location list) : :lgrep -r --include="*.py" animal .
  • Quickfix list : :copen
  • Quickfix list close : :cclose

Chapter6 正規表現とマクロでリファクタんリングする 🔗

  • 置換 : :s/<置換対象>/<置換される文字>/<フラグ>
  • 行番号指定置換 : :12;/dog/s/animal/creature/g
  • ファイル全体置換 : :%s/find-this/replace-with-this/g``
  • 単語完全一致 : \< , \> で囲む
  • cat hunting mice -> mice hunting cat : :s/\(cat\) hunting \(mice\)/\2 hunting \1
  • vimで記述する際は基本的に記号はエスケープ記号が必要そうだし、変数は$マークじゃなさそう
  • :arg **/*.py , :argdo %s/\<[Ctrl+r,Ctrl+w]\>/Pitbull/gec|update

Chapter7 Vimを自分のものにする 🔗

  • .vimrcファイルのgit管理 : ~/.dotfilesディレクトリを作成し .vimrc ファイルを移動、$HOMEにシンボリックリンクを貼る
  • 参考 : https://qiita.com/okamos/items/7f5461814e8ed8916870
  • インストールされているcolorscheme一覧 : :colorscheme Ctrl + d

Chapter8 Vim scriptで平凡を超越する 🔗

  • Google VimScript Style Guide
  • (参考)Google Style Guide
  • vimのplugin構成
    • autoload/ : プラグインの一部を遅延読み込みするためのもの
    • colors/ : カラースキーム
    • compiler/ : 言語固有のコンパイラ関係機能
    • ftdetect/ : ファイルタイプ固有のファイルタイプ判別設定
    • tfplugin/ : ファイルタイプ固有のファイルタイプ②関連したコード
    • indent/ : ファイルタイプ固有のインデントに関連した設定
    • plugin/ : プラグインのコア機能
    • syntax/ : 言語固有のシンタックス定義
  • Learn Vimscript the Hard Way

Chapter9 Neovim 🔗

  • sudo apt-get install neovim -> python3 -m pip install neovim

  • neovimの設定をvimの設定へシンボリックリンク化

    • mkdir -p $HOME/.config
    • ln -s $HOME/.vim $HOME/.config/nvim
    • ln -s $HOME/.vimrc $HOME/.config/nvim/init.vim

    参考 🔗

  • vim-jp

vim
comments powered by Disqus