inccommand

検索の次は置換ですよね〜😆

:h inccommand

'inccommand' 'icm' string	(default "nosplit")
                   global

Possible values:
  nosplit	Shows the effects of a command incrementally in the buffer.
          コマンドの効果をバッファにインクリメンタルに表示する。

  split	  Like "nosplit", but also shows partial off-screen results in a preview window.
          "nosplit" に加えて、画面外の結果を部分的にプレビューウィンドウに表示する。

options.lua

vim.api.nvim_set_option('inccommand', 'split')

じゃあ、また動かしてみましょう。

文章例

She's got a ticket to ride, but she don’t care.

これ Karen が歌ったら面白いんじゃない?😆 ってなるのはなんかもう必然の Richard なので、 "She" 👩を "He" 👨に変えます。 1

置換操作は:%s/{検索値}/{置換値}とすると実行できます。

:%s/She/He

Note

改めて確認してわたしも初めて知ったんですが😅

%sはファイル全体を示しているそうです。sとするとカーソル行に絞ってできるとか。へぇ〜😮

画面下にプレビューウィンドウが出るようになりました。

replace1

ちょっとこれだとあんまり威力を感じられないんですが、画面に収まってない部分もプレビューできるのが強みです。

replace2

Tip

下のようになってたとして、(だいぶ強引ですが) 大文字を含まない "she"でやった場合にあれれー❓ってなるの気付きます?

replace3

そうです。3行目に "she"は2つあるのに、1つ取りこぼししちゃってます😱

実はこのやり方だと同じ行の中では最初にヒットしたところしか反応しません。

こういう場合は、

:%s/she/he/g

...と、gオプションを追加してあげると期待通りの結果が得られます。

replace4

割とあるシチュエーションだと思うので、覚えておくと役に立ちます😉

Question

本当は、あとbutandに変えるらしいです。通例なんだって。...なんで❓😮

Success

なんだか本題を忘れそうになりますが...。

プレビューウィンドウを表示する❗がこの項の目的でした😅

まあ気楽にいきましょう😸