タグ付けされた質問 「search」

/またはsearch()でテキストを検索します。検索/置換操作の場合は、代わりにタグ[substitute]を使用してください。

4
文字xのn番目の出現までカーソルから削除します
私はまでカーソルから削除して、文字の最初の出現を含むことができることを知って、Xとd/x<CR>かとv/x<CR>d、私は最初の選択を参照して、削除したい場合に。現在のカーソル位置からxのn番目の出現まで削除するにはどうすればよいですか? たとえば、カーソルが最初のスペースの後にある場合 ヤダヤダヤダヤダヤダヤダ x ヤダヤダヤダx ヤダヤダヤダx xx そして、私は3分の1にまで削除するコマンドを入力し、Xする結果のニーズを: 矢田の XX

2
vimに検索と置換の履歴はありますか?
IDEおよびテキストエディターで検索を取得し、履歴を置き換えることができます。同様に、検索履歴またはvimで以前に検索された式を取得する方法はありますか?
14 search 

1
:search()を呼び出した後、一致した文字列を取得することは可能ですか?
vimscript関数では、l:matched呼び出し後に一致した文字列を変数に割り当てる必要search()があり、現在行っている方法よりも短い方法があるかどうか疑問に思っています。 let l:pattern = '\v^Foo: \zs.*' let l:line = search(l:pattern) let l:line_text = getline(l:line) let l:matched = matchstr(l:line, l:pattern) 理想的には、次のようなものが欲しい let l:matched = search_text(l:pattern) に頼らずにgetline()。見つけられないようなvim関数はありますか?
14 vimscript  search 

5
クイック検索、C ++関数に限定
私はかなり大きなC ++プロジェクトに取り組んでいます。その組織のよりイライラする側面の1つは、途方もなく大きなファイル内に配置された非常に大きな関数です。 現在の関数に制限された特定のグローバル変数または関数呼び出しのインスタンスを検索したいことがよくあります。これを達成するための合理的な簡単な公式はありますか? (私はctagsをインストールしていて、Tagbarを使用しています...これは役に立つかもしれません)

3
一連のキーストロークを単語のすべての出現に適用するにはどうすればよいですか?
すべての単語を削除したい場合は、次のようなことをするので簡単です。 :s%/WORD//g しかしxyz、「WORD」のすべての出現に対して実行したい場合はどうなりますか?たとえば、「WORD」を含むすべての行を削除するとします。これを行うにはいくつかの方法が考えられますが、どれも理想的とは思えません。 1) /WORD そして、ddnddnddnddn...発生がなくなるまで手動で押します。ただし、これを行う行が多数ある場合、これには時間がかかります。 2) qd/WORD<enter>ddq そしてWORDが何回出現するかを推測してから、例えば: 500@d しかし、これは、A)行の束を見逃すか、B)余分な行の束を削除します。 これを行うより良い方法はありますか?
13 search  macro 

2
「次へ移動」コマンドの逆は何ですか
次,の行に移動したい場合は、と入力しt,ます。私は以前に行きたい場合は,、私が使用することができ/n、入る、Nこれはフィドルのビットです。tコマンドを逆にして前のコマンドに移動する最良の方法は何,ですか?
13 search 

2
:nohlsearchと:set nohlsearchの機能的な違いは何ですか?
私はそれを:nohlsearch実際に使用すると、実際には同じことをしないことに気付きました:set nohlsearch。 特に、hlsearch設定は実際にはオフになりません(これが何を行うか:set hlsearch)。 私が意味することを実証するには: :set hlsearch :nohlsearch :echo &hlsearch これは印刷します1(hlsearchはまだ設定されています!) :set hlsearch :set nohlsearch :echo &hlsearch これ0は、vimで設定をオフにする標準的な方法を使用してhlsearchをオフに切り替えたために出力されます。 :nohlsearchexコマンドが存在するための実際の理由が必要なので、私はちょっと不思議に思っています。 私が気にする理由は、vimスクリプトで検索ハイライトがアクティブかどうかをテストする必要があり:nohlsearch、他のスクリプトで ":set nohlsearch"の代わりに使用していたため、&hlsearchテストが常に戻るため1です。だから、nohlsearchexコマンドを使用しなくなったことで何が変わっているのだろうかと思っています。
13 search  highlight 

1
replaceコマンドにincsearchはありますか?
Vimのincsearch機能を本当に楽しんでいます。交換するときに機能する方法、またはそれに類似した方法がありますか? たとえば、通常モードで次のように入力した場合: :%s/potato/ 書き込み時にpotato強調表示されるように、ファイルですべての強調表示を取得できますかincsearch /potato ? 正規表現を使用する場合、これはすでに非常に役立ちます。私がこれを書くとき、非常に非常にいいことがあります: :%s/potato/banana/ それはpotatosをbananasに置き換え、それらを強調表示します-おそらく置き換えは別の色にする必要があります。Enterキーを押すまで、変更を「コミット」することはできません。 現在、neovimを使用しています。

1
VIMで対話的に検索/ grepする方法は?
プロジェクト全体のすべてのファイル内をインタラクティブに検索するようにVIMを構成する方法はありますか? することで、インタラクティブ、私は、各キーストロークを更新する意味します。 Emacs counsel-git-grepのようなものは、サンプルデモを参照してください。
12 search  vimgrep 

1
検索時に発音区別符号/アクセントを無視する
検索時に発音区別符号/アクセントを無視するようにVimに指示する方法はありますか?たとえば、検索できるようにしたい kočička 入って /kocicka ignorecaseおよびsmartcaseオプションは非常に便利ですが、発音区別符号/アクセントとは何かを持っていないようです。
12 search 

1
なぜラインフィードが検索レジスタ内でヌル文字に変換され、コマンドラインでキャリッジリターンに変換されるのですか?
次のテキストがある場合: foo bar 視覚的に選択してコピーします。 テキストは名前のないレジスタに保存され、"その内容は:reg "次のとおりです(の出力)。 "" foo^Jbar^J このチャートによると、^J改行のキャレット表記のようです。 次のようにa入力して、名前のないレジスタをレジスタに複製する場合::let @a = @" その内容(の出力:reg a)は次のとおりです。 "a foo^Jbar^J 変わらなかった。 を入力して検索レジスタに複製した場合、:let @/ = @"その内容(の出力:reg /)は次のとおりです。 "/ foo^@bar^@ 前のチャートによると、^@Nullキャラクターのキャレット表記です。 なぜ改行は検索レジスター内で自動的にヌル文字に変換されるのaですか? コマンドライン(またはの検索内/)に名前のないレジスタを挿入する場合、を入力して:<C-R>"、次のように挿入します。 :foo^Mbar^M 繰り返しますが、最後のチャートによると、^Mキャリッジリターンのキャレット表記法のようです。 コマンドラインで改行がキャリッジリターンに自動的に変換されるのはなぜですか? 編集: 通常、次のように入力してリテラル制御文字を挿入できます。 <C-V><C-{character in caret notation}> たとえば、を<C-R>入力してリテラルを挿入できます<C-V><C-R>。 一見どんな制御キャラクターに対してもできます。 しかし、私は私が入力した場合ので、私は、バッファ内またはコマンドラインでリテラルLFを挿入することができないんだということに気付きました:<C-V><C-J>それは挿入^@、ヌル文字を、代わりに^J。 LFが検索レジスタ内でNULに変換されるのと同じ理由ですか? 編集2: では:h key-notation、これを読むことができます: <Nul> zero CTRL-@ 0 (stored as …

3
動きのあるマッピング
マッピング内の後続のモーションで演算子を使用する方法を理解しようとしています。例えば: nmap /c c{here we pending for a motion}/<C-r>"<CR> マップは次のことを行う必要があります。 cオペレーターをアクティブにして、次の動きを聞きます。 たとえば、t,次のコンマの前にすべてを変更するためにここに入力できます。 カーソルとコンマの間のすべてを削除する挿入モードに移動します。 削除されたテキストはパターンとして自動的に検索されます 簡単に言うと、モーションテキストが削除された後、削除されたテキストが強調表示された挿入モードのままになります。誰かがこの事件を解決するのを手伝ってくれたらとても感謝しています。 更新 答えはほとんど私が欲しいものです。だが!を押す/cwと、単語の代わりに何かを入力し、を押し<Esc>ます。次の出来事でも同じことをするつもりだ。ただし、presing n(次のオカレンスに移動)および.(最後のコマンドを繰り返す)の後、最後に入力したテキストを置き換えるのではなく、先頭に追加します。マッピングの主な目標は、とそれを使用しているn/Nと.繰り返しに。私は何かを見逃しましたか?

3
Vim正規表現の「\ zs」と「\ @ <=」アトムの違いは何ですか?
これは私がドキュメントから得たものです。\zs前の正規表現\@&lt;=に一致した後に「強調表示された部分を開始」し、前のアトムに一致した後に「強調表示された部分を開始」します。しかし、私はこれの微妙さを正確に理解していないので、誰がそれらが少し深く異なっているかを誰かが説明できますか? これが私を不思議に思った理由です。 /\_s\zsnnoremap つまり、nnoremap先頭にスペースまたは行頭(つまり、前の行からの改行、つまり\_前のs)を選択し、実行gnしてビジュアルモードに入り、何らかの理由で最初の列のみ(つまり、最初の列(つまり最初の内は)選択されている-全体という事実にもかかわらず、言葉がされて強調して点灯します。nnnoremapnnoremap:hlsearch ただし、代わりに検索を実行すると /\_s\@&lt;=nnoremap を試してみてください。gn全体nnoremapが適切に選択されています。ここで何が起こっているのでしょうか?私は(あえて言う)いくつかのあいまいなバグを発見しましたか?

3
変更した単語の次の出現箇所にジャンプ
次の場合: function foo(bar) { return bar + 1; } そしてcw、最初のbarをに変更するために使用していますbazが、次の一致にジャンプして、同じ変更を行うためにbar使用.するにはどうすればよいですか? カーソルの下に*ある現在の単語を検索するので、私は使用できません。また、愚かなことにbar、初めて検索しなかったため、機能しnません。 変更する前と同じように、次に出現する単語を検索する簡単な方法はありますか? 私はしていないいずれかの他の発生があるため、検索を行うと、交換したいbarの唯一の2つのインスタンスがあった、またはので、私は変更したくないというのが私のファイルではbar、と私は忘れてしまった:%s/bar/baz/私が開始する前に、それはあまりにもです残っている唯一のインスタンスを変更するための多大な努力。
11 search 

7
vimで現在の行に一致する行を検索する方法
通常はで単語を検索しますが:/string、現在の行全体を検索する必要がある場合は、その方法を調べます。 event: 1 beacon: 0x02 //line 1 event: 19 beacon: 0x02 //line 2 event: 1 beacon: 0x03 //line 3 event: 1 beacon: 0x02 //line 4 event: 8 beacon: 0x01 //line 5 event: 19 beacon: 0x02 //line 6 event: 1 beacon: 0x02 //line 7 たとえば、現在の行全体を含むテキストの場合cursorとline 1同じように検索する方法が現在ある場合:/。カーソルは次に一致するline 4にジャンプし、再びline 7

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.