cheat sheet vim

July 25, 2021

前ひらいたバッファに戻る

<C-^> ( 数字の6のやつ )

『綺麗なコードを残す事にフォーカスすべき』

静かに進めたい…

文字選択

yaw ワード前のスペース有りヤンク yiw スペース無しヤンク

diw <- ワード削除 di( <- 引数をまるっと削除 di{ <- functionの記述をまるっと削除

fzf

ctrl + p で fzfでファイル選択( 慣れたら ctrl + e から切り替えたい )

hwwというfishスクリプト作った hww hoge でfzfしながらvimで開く

fzfで Ctrl-t : 新規タブで表示 Ctrl-x : 水平分割して表示 Ctrl-v : 垂直分割して表示

figitive <- tig をメインで使うようにするか… どのみちコミット溜めがちではあるので

押してから

s :Gstatus c :Gcommit a :Gwrite git add 今開いてるファイルを git add d :Gdiff git diff 今開いてるファイルを前のコミットとvimdiff b :Gblame git blame 今開いてるファイルを git blame m :Gmerge git merge git merge [args] を呼ぶ.コンフリクト時に:Gmergeするとconflictをquickfixに流す p :Gpush git push

]c や [c で変更箇所にジャンプ、 dp でそれをコミットに含める。 古い方のvimウィンドウを:q!で消す。 この状態で git commit する.

:changes 変更リストを表示 g; 前の変更箇所へ移動 g, 次の変更箇所へ移動

:e reload file :x write file and exit

e next end of word E next end of whitespace-delimited word

I insert at the beginning of the line R enter insert mode but replace instead of inserting chars

:r {file} insert from file

コマンド 短縮コマンド キーバインド 説明 :split :sp s ウィンドウを横に分割する :vsplit :vs v ウィンドウを縦に分割する

ファイル open

コマンド 説明 :new 新規ファイルを開く(横分割) :vnew 新規ファイルを開く(縦分割) :tabnew 新規ファイルを開く(タブ)

:e %:h これは % がカレントディレクトリ、 :h が親ディレクトリの意味

Window

ウィンドウを入れ替える。 x 縦に最大化 _ 横に最大化 パイプ 縦横最大化 なし 大きさを揃える = 幅を増やす > 幅を減らす < 高さを増やす + 高さを減らす -

項目名 デフォルト 左に移動 h 下に移動 j 上に移動 k 右に移動 l 次に移動 w

バッファ操作

コマンド 短縮コマンド キーバインド 説明 :buffers バッファリストのファイル名をリスト表示 :buffer :b バッファリストの指定したバッファを開く :bnext :bn バッファリストの次のバッファを開く :bprevious :bp バッファリストの前のバッファを開く :ball :ba バッファリストのすべてのバッファをウィンドウを開く :badd :bad バッファリストにバッファを追加 :bdelete :bd バッファリストからバッファを削除 :bfirst :bf バッファリストの最初のバッファを開く :blast :bl バッファリストの最後のバッファを開く :bmodified :bm バッファリストの次の変更済みバッファを開く

タブ

コマンド 短縮コマンド キーバインド 説明 :tabedit 新規タブ :tabnext :tabn {count}gt {count}で指定した番号のタブへ移動 :tabnext :tabn gt 次のタブへ移動 :tabprevious :tabp gT 前のタブへ移動 :tabo 現在、以外のタブを全て閉じる

削除、開いてるファイルを

:call delete(expand(’%‘))

ctags

※ universal-ctag用で、現在、 constantsにあるもののうち、関数はfunctionになるように、 universal-ctagsの設定をオーバーライドしたい…

ジャンプ control + ] 呼び出し元へ戻る cntrol + t CLIでタグを作成する ctags -R

tagbar

:TagbarToggle

SrcExpl <- できれば OmniSharp/omnisharp-vim を使いたい

SrcExplToggle で表示/非表示

ソースは ~/.local/share/dein/repos/github.com/wesleyche/SrcExpl/plugin/srcexpl.vim

追加設定で『ソースを開く時、別のウィンドウかタブで開きたい』 作業中のウィンドウだと戻れない…

ショートカット一覧

:map

参考

Vimが本来もつ力を掘り下げる

Vimの便利な画面分割&タブページと、それを更に便利にする方法 open https://qiita.com/tekkoc/items/98adcadfa4bdc8b5a6ca https://qiita.com/lighttiger2505/items/bf4755cd912f7272ba60

プラグイン、モジュール 一覧

:scriptnames

deinプラグインのアップデート

:call dein#update()

dein自身も含め全プラグインがアップデートされます。

アップデート時のエラーは下記で解決するかも

:call dein#clear_state()

一般の設定

~/.config/nvim/init.vim

nerdtree

~/.config/dein/lazy.toml で設定している

コマンド 説明 i 水平分割して開く s 垂直分割して開く T タブで開き、移動はしない o(enter) ファイルを開く go ファイルを開き、カーソルはツリーに保持する t タブで開く gi 水平分割して開き、移動はしない gs 垂直分割して開き、移動はしない

vim-plugin NERDTree で開発効率をアップする! - Qiita

OmniSharpによるインテリセンスを使う

https://blog.yucchiy.com/2018/07/01/omnisharp-vim-with-roslyn/ 結構、時間かかる、exeファイルのビルド、ビルド後のバイナリのテストなどで1hはかかる

途中、サーバのレポジトリは下記コマンドでcloneした ghq get https://github.com/OmniSharp/omnisharp-roslyn.git 結果的に決まるパスは下記のdeinの設定ファイルで指定している。 omnisharp-roslyn の exeファイルのパスになる。 ~/.config/dein/plugins.toml

下記も必要 brew install mono brew cask install mono-mdk

:help :h キーワードは * で検索できる


Profile picture

Written by tin-machine 技術関連のメモ Twitter