ファイル全体の文字列を置換するには:%s/<search_string>/<replace_string>/g
、現在の行には:s/<search_string>/<replace_string>/
を置き換えることができます。複数行のvimの文字列を検索して置換する
vimの選択行の単語を選択して置き換えるにはどうすればよいですか?
例:6-10
、14-18
のテキストを置き換えますが、11-13
ではなくテキストを置き換えます。
ファイル全体の文字列を置換するには:%s/<search_string>/<replace_string>/g
、現在の行には:s/<search_string>/<replace_string>/
を置き換えることができます。複数行のvimの文字列を検索して置換する
vimの選択行の単語を選択して置き換えるにはどうすればよいですか?
例:6-10
、14-18
のテキストを置き換えますが、11-13
ではなくテキストを置き換えます。
:&&
コマンドは、同じフラグを持つ最後の置換を繰り返します。あなたはそれに追加の範囲(複数可)を供給(とあなたが好きなだけを連結)することができます
:6,10s/<search_string>/<replace_string>/g | 14,18&&
あなたは多くの範囲を持っている場合しかし、私はむしろ、ループを使用したい:
:for range in split('6,10 14,18')| exe range 's/<search_string>/<replace_string>/g' | endfor
サイドノートとして
+1なぜ私も気にしない... –
ありがとう。将来のユーザーのための注意 - ':6,10s/
あなたがそれを好きでうれしい!後続のコマンドの ':'はオプションで、btwなので、より多くのキーストロークを保存することができます。 –
あなたが調整する必要があり、すべてがそう代わりにすべてを入力するので、私は最後のコマンドを呼び出すだけ編集します範囲である2見つける/置き換えるシーケンス
:6,10s/<search_string>/<replace_string>/g
:14,18s/<search_string>/<replace_string>/g
二回目でそれを行うことができます範囲
すべて置換:
:%s/foo/bar/g
は、(すべての行で) 'foo' での各発生を探し、 'バー' と交換してください。
:6,10s/foo/bar/g
変更行を含め10の6行目からすべての行のための 'バー' にそれぞれ 'FOO':特定の行については
。
14-18行はどうですか? – Bernhard
同じコマンドをもう一度使用する必要があります。 Vimは@ Lievenによって正しく言ったように覚えています。ありがとう。 –
/gの目的は何ですか?申し訳ありませんが、私はLinuxの初心者です –
、代わりに、行番号を入力だけで検索したい行を強調表示するので/ビジュアルモードのいずれかで置き換えます。
VISUAL
モード(V)VISUAL BLOCK
モード(はCtrl + V)VISUAL LINE
モード(Shiftキー + V、あなたのケースで最高の作品)置き換える線を選択すると、tyあなたのコマンドをPE:
:s/<search_string>/<replace_string>/g
あなたは範囲'<,'>
があなたのために自動的に挿入されることに注意しましょう:
'<
:'<,'>s/<search_string>/<replace_string>/g
は、単には、最初の行を強調意味し、'>
は最後の強調表示された行を意味し、。 VISUAL
のいずれかのモードで行われ、最後のハイライトの開始と終了に'<
と'>
ポイント:動作がNORMAL
モードで予期しないかもしれないと
注意。代わりに、NORMAL
モードでは、特別な行番号.
を使用することができます。これは単に現在の行を意味します。したがって、あなただけのこのような現在の行に置き換える/見つけることができます。注意すべき
:.s/<search_string>/<replace_string>/g
もう一つは、範囲と見つける/置き換えるコマンドの間に第二:
を挿入すると、他の言葉で、問題はありませんということです、これらのコマンドがまだ動作します:あなたは、いくつかの他の情報と上記を置き換える場合
:'<,'>:s/<search_string>/<replace_string>/g
:.:s/<search_string>/<replace_string>/g
>例:行6-10,14-18のテキストを置き換えますが、11-13のテキストは置き換えません。 - あなたの返信はこの非常に質問に答えていませんか? – poige
/sys/sim/source/gm/kg/jl/ls/owow/lsal
/sys/sim/source/gm/kg/jl/ls/owow/lsal
/sys/sim/source/gm/kg/jl/ls/owow/lsal
/sys/sim/source/gm/kg/jl/ls/owow/lsal
/sys/sim/source/gm/kg/jl/ls/owow/lsal
/sys/sim/source/gm/kg/jl/ls/owow/lsal
/sys/sim/source/gm/kg/jl/ls/owow/lsal
/sys/sim/source/gm/kg/jl/ls/owow/lsal
があるとします。この中
COMMAND(:%s/\/sys\/sim\/source\/gm\/kg\/jl\/ls\/owow\/lsal/sys.pkg.mpu.umc.kdk./g)
上記(sys.pkg.mpu.umc.kdk.
)に置き換えられますされます。
これは実際に質問に答えているのか分かりません。質問をする人は、入力を修正するために '%s'をどのように使うべきかを既に知っていますが、それを"半グローバルに "行う方法を知りたがっています(つまり、彼の指定は6-10行と14-18行です。 11-13行目)。 –
また、「COMMAND」とは何ですか?そしてあなたは[爪楊枝症候群を抱えて]苦しんでいます(https://en.wikipedia.org/wiki/Leaning_toothpick_syndrome)。 – Carpetsmoker
そのシンドロームを治すために、デフォルトの '/'の代わりに別の文字を区切り文字として使うことができます。 '%s/sys/sim/source/gm/kg/jl/ls/owow/lsal_sys.pkg.mpu.umc.kdk_g' – MortezaE
VI検索と置換コマンド例
私たちはあなたが「FOO」と呼ばれる単語を見つけると「バー」と交換したいとしましょう。
最初のヒットに[Esc]キー
タイプ:%sの/ fooの/バーに続いて(コロン)/とヒット[Enter]キーを。 :%s/foo/bar/
あなたの'%s/
も参照してください[vimは一度に複数の非順次行を選択/編集します](http://stackoverflow.com/q/16439297)。 – glts
http://vim.wikia.com/wiki/Search_and_replace – MrRolling