【Neovim】基本のキーバインド
プラグインの設定込み
f: その次に入力した文字まで移動する
組み合わせで使うと便利
code:console
以下は.まで削除
df.
移動操作
t: その次に入力した文字の前まで移動する
f : その次に入力した文字までカーソルを移動する
; : t や f で移動した操作を繰り返す
ctrl o 前の場所に戻る
ctrl f 1ページ進む
ctrl b 1ページ戻る
編集操作
r: 1文字置き換え
~ 大文字小文字の変換
1文字直したい時はxよりもsを使う
cib change inner blockのことでブロックの中身を編集できる
:r vimの中でファイルを読み込んで挿入する事が可能
:sort: ソート
:Rename ファイル名 Neovimを閉じずにファイル名の変更ができる
削除
C 削除して挿入
cw削除してインサートしたい
c の次に数字を指定してまとめて削除できる
cW 空白で区切られた文字列全体を削除してインサートしたい
ctrl w 単語ごとに削除
dw カーソル位置から空白の前までの文字列を削除する
d の次に数字を指定すると複数の単語をまとめて削除できる
daw カーソル位置に関係なく一塊の単語を削除する
D$ 行の削除、これで削除するとpで他の行の特定の単語の後にペーストできる
計算
ctrl a 数値の上で実行するとインクリメント
ctrl x 数値の上で実行するとデクリメント
a と x で計算する前に数値を置くと一気に置き換えできる(ex: 180 ctrl x)
コピー
"+y クリップボードへコピー
yt, yiw コピー
"+yi" ダブルクォーテーションの内側をクリップボードにコピー
"+yit タグの内側をクリップボードにコピー
ya'シングルクオートの部分をコピー
囲う操作
ys$)サラウンドを次のモーションに指示を追加、この場合は行末まで()で包む
ys$' カーソル位置から行末までをシングルクォートで囲う
ysiw' で文字列をシングルクォートで囲う
yiW" 文字列をクオートで囲む
W は空白で区切った文字列を識別する
ysiw( 文字列を( で囲む
コンフリクト対応
]xファイル内にコンフリクト箇所があるとその部分に移動する
co コンフリクトした場合のoursを意味する
ct コンフリクトした場合のtheirsを意味する
yst,' カンマの前までシングルクォートでかこう
置換
:s/// /の間に置換したい内容を指定する
%s/'hoge'/'foo'/g 一括置換※gがないと行内で最初の1個だけが置換される
:2,$s/^pick/s/ 2行目から最終行までの該当する文字を置換する
補完
Ctrl x コマンドラインモードで 、現在のファイルのディレクトリを展開
sp # 直前に開いていたファイルを開く
ctrl + p テキスト補完
shift C ctrl X ctrl L 挿入モードで入力補完
ctrl x + ctrl l 行補完(同じ内容がある場合)
その他
ctrl + z サスペンド
fg 元に戻る
ctrl + v + j + xで矩形選択
shift + j 行連結
検索のハイライトを抜けたい場合はスペース + h
option j 次のクイックフィックスへジャンプ
ctrl v shift a 矩形選択
スペース ff テレスコープ
:E enter RailsのControllerのメソッド名の上にカーソルを合わせて実行すると関連があるviewへジャンプする
gf パーシャル名の上にカーソルを合わせて実行すると該当のファイルへジャンプする
:sp # 直前の画面を開く
範囲選択 gc コメントアウト