【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を閉じずにファイル名の変更ができる
s/ *$//行末のスペースを削除
削除
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( 文字列を( で囲む
yst,' カンマの前までシングルクォートでかこう
コンフリクト対応
]xファイル内にコンフリクト箇所があるとその部分に移動する
co コンフリクトした場合のoursを意味する
ct コンフリクトした場合のtheirsを意味する
置換
: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 コメントアウト
:Qfreplace + Enter の後に置換を実行すると一括置換ができる
treesj
<Space> m トグル
<Space> j join
<Space> s split
vim-matchup
(), [], {} の対応箇所を % で移動できる
通常の括弧(), [], {}に加え、言語のキーワード間も移動可能:
code:ruby
if condition # ← % で移動
# ...
elsif other # ← % で移動
# ...
else # ← % で移動
# ...
end # ← % で移動
カーソルを置くと、対応する括弧やキーワードが自動的にハイライトされる
i% 対応する括弧/キーワードの内側を選択
a% 対応する括弧/キーワードを含めて選択
code:ruby
def example() # カーソルをdefに置いて da% で関数全体を削除
.
.
.
endd
unimpaired
[x 前のコンフリクトマーカーへ移動
]x 次のコンフリクトマーカーへ移動
vim-swap
関数の引数、配列の要素、CSS のクラス名リストなどを入れ替えることができる
g< カーソル下の要素を前の要素と入れ替える
g> カーソル下の要素を次の要素と入れ替える
telescope.nvim
<Space>fb 開いているバッファ一覧を検索
<Space>ff ファイル検索(ファイル名ベース)
<Space>fmVim の “mark” 一覧を表示
<Space>fo最近開いたファイル履歴を検索
<Space>fr直前の Telescope セッションを再開
<Space>ftTreesitter で解析されたシンボル(関数、変数など)を検索
<Space>fcコマンド履歴を表示
oil.nvim
ディレクトリをファイルのように開いて操作することができる
:Oil カレントディレクトリをバッファ表示する
LSP関連
gD: 宣言へジャンプ
gd: 定義へジャンプ
gi: 実装へジャンプ
gr: 参照箇所一覧
<Space>D: 型定義へジャンプ
#Neovim