[解決済み] Vimで、カーソル位置からファイル末尾までを1回のコマンド実行で検索・置換する方法は?
質問
検索時に
/
ノーマルモードコマンドで
/\vSEARCHTERM
Vimはカーソル位置から検索を開始し、下へ下へと回り込みながら検索を続けます。しかし、検索と置換を
:substitute
コマンドを使用すると
:%s/\vBEFORE/AFTER/gc
Vimは、代わりにファイルの先頭から始めます。
Vim がカーソル位置から検索と置換を行う方法はありますか? と で始まる検索と置換を実行させる方法はありますか?
どのように解決するのですか?
1. を使えば、問題の動作を実現するのは難しくありません。 二段代入で実現することは難しくありません。
:,$s/BEFORE/AFTER/gc|1,''-&&
まず、置換コマンドは現在の行からファイルの終わりまで、各行に対して実行されます。 からファイルの終わりまで実行されます。
,$s/BEFORE/AFTER/gc
では、その
:substitute
コマンドは、同じ検索
パターン、置換文字列、フラグを指定します。
:&
コマンドを使います。
(を使います(参照
:help :&
):
1,''-&&
しかし、後者はファイルの最初の行から前の文脈がある行まで
ファイルの最初の行から,前のコンテキストマークが設定された行までの
マークが設定された行から 1 を引いた範囲に対して置換を行います。最初の
:substitute
コマンド
は実際の置換を開始する前にカーソル位置を保存するので
で指定された行は
''
で指定された行は、その置換コマンドが実行される前に現在の行であった
で指定された行は,その置換コマンドが実行される前の現在の行である。(その
''
のアドレスは
'
擬似マークを参照してください。
:help :range
と
:help ''
をご覧ください)。
なお、2番目のコマンド(
|
コマンドセパレータを参照してください。
:help :bar
) は、パターンやフラグが最初のもので変更されても、 変更は必要ありません。
が変更された場合、変更の必要はありません。
2. 入力の手間を省くために、上記の置換コマンドの骨格をコマンドラインに表示させるために コマンドラインで上記の置換コマンドの骨格を呼び出すために、次のように定義することができます。 のようにノーマルモードマッピングを定義します。
:noremap <leader>cs :,$s///gc\|1,''-&&<c-b><right><right><right><right>
末尾の
<c-b><right><right><right><right>
の部分が必要です。
は、カーソルをコマンドラインの先頭に移動させるために必要です (
<c-b>
) に移動し
に移動し、次に4文字分右に移動する (
<right>
× 4),
というように、最初の2つのスラッシュ記号の間に配置し、ユーザーが検索パターンを入力できるようにします。
を入力する。検索したいパターンと
を入力すると、コマンドが実行されます。
Enter
.
(このような場合
//
の代わりに
///
と入力します。
パターンを入力する場合は,区切り記号であるスラッシュ
を入力し、その後に置換文字列を入力します。
右矢印でカーソルをすでにある区切り文字に移動して
の上にカーソルを移動し、置換部分を開始します)。
関連
-
[解決済み】Vimで検索したものをハイライトしないようにするには?[重複している]
-
[解決済み] splunk 検索で行を列に変換する
-
[解決済み] ファイルを grep して、その周辺の行をいくつか表示する?
-
[解決済み] Vimで最も生産性の高いショートカットは何ですか?
-
[解決済み] Bashコマンドからテキストファイルの内部を検索・置換する
-
[解決済み】Vim: カーソルを最後の位置に移動させる
-
[解決済み】VIMでカーソル位置から始まる行を素早く削除するにはどうしたらいいですか?
-
[解決済み】GitHubでコミットメッセージを検索する方法は?
-
[解決済み] インデックスを作成せずにファイル内の文字列を検索するツール【終了しました
-
[解決済み] AngularJSのインスタント検索にディレイをかけるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Vimで検索したものをハイライトしないようにするには?[重複している]
-
[解決済み] splunk 検索で行を列に変換する
-
[解決済み] ファイルを grep して、その周辺の行をいくつか表示する?
-
[解決済み] SolrとElasticSearchの比較【終了しました
-
[解決済み】ElasticSearchの初心者向け解説書【終了しました
-
[解決済み】GitHubでコミットメッセージを検索する方法は?
-
[解決済み] インデックスを作成せずにファイル内の文字列を検索するツール【終了しました
-
[解決済み] AngularJSのインスタント検索にディレイをかけるには?
-
[解決済み] GitHubのコード検索で文字をエスケープするには?重複
-
[解決済み] WebStorm: 検索が機能しない