vimでは、検索前の状態に戻すにはどうすればよいですか?


258

vimでのプログラミング私はよく何かを検索し、それをヤンクして、元の場所に戻り、挿入し、変更します。

問題は、検索して見つけた後、自分がいた場所に戻る方法を手動で見つける必要があることです。

最後の検索を開始したときの状態に自動的に戻る方法はありますか?


回答:


393

Ctrl+ O前の場所に移動します。検索する前に場所がわからない。

編集:また、`.最後に行った変更に移動します。


また、CTRL + Oを何度か押すと、以前に開いたファイルに戻ることもできるようです。
Mark Biek

1
Ctrl + Oも私の好みの方法です。私はそれを常に使用しており、他の編集者がその動作を再現したいと思っています。
amrox 2008

45
はい、CTRL-OとCTRL-Iを使用すると、以前と同じように行き来できます。
Edward Tanguay

8
Ctrl + Tは、タグを使用してそこに着いた場合にのみ戻ります。タグを使用せずに検索した場合、Ctrl + Tを押すと、最後のタグ
Nathan Fellman

1
ビアをジャンプしてからを1回押す:70と、70行目ではなく元の場所に戻ることがわかりました。:(:100ctrl+o
WhyNotHugo

91

用途は``あなたが検索する前にあった正確な位置に戻ってジャンプする/飛び込んだ、または''あなたが検索する前にあった行の先頭に戻ってジャンプする/飛び込みました。


4
最初の試合にいる場合にのみ機能するように見えます。n後続の試合に-ingすると、開始した場所にジャンプしません。
クリス

検索して変更した場合はどうなりますか?
コスタ

1
g;およびを使用することもできg,ます。前/次の変更の位置に移動します。
goetzc

39

私はいつもそれをマークすることによってやってきました。

  1. コマンドモードで、m[文字]を押します。たとえば、マーク識別子としてama使用して、現在の行にマークを設定します。

  2. マークに戻るには、'[文字]を押します。たとえば'a、ステップ1で設定した行マークに戻ります。行をマークした行の列位置に戻るには、`aback-tick [letter])を使用します。

現在設定されているすべてのマークを表示するには、と入力し:marksます。


少し無関係なメモで、マークについてもう1つの気の利いたことがわかりました。

あなたがマークにジャンプしましょうB行うことでmb。Vimは自動的にマーク'(単一引用符)をマークbにジャンプする前の行に設定します。

つまり'b、そのマークにジャンプするために実行し、次に''(2つの単一引用符)を実行して前の場所に戻ることができます。

:marksすべてのマークのリストを表示するコマンドを使用して、これを誤って発見しました。


6
Vimはいくつかの位置の特別な追跡し、あなたが``、^ Oなどでそれらにアクセスすることができますので、幸いにもマークは、多くの場合不要です
aehlke

マークは、それが設定された行の先頭に私を連れて行ったようです。):
Fzs2

1
@HermannIngjaldssonこれまでにこれを理解しているかもしれませんが、 'を使用するとマークされた行に移動しますが、 `を使用すると正確な場所に移動します。
azmr 2016

38

あなたは本当にこれを読ん:help jumplistで、これすべてを非常によく説明しています。


私はこの答えが一番好きです。ほとんどの人が知らない:helpにはたくさんの情報があります(そして最近まで知りませんでした)
Christian Stewart

1
なんて素晴らしい読書でしょう!これはとても役に立ちます。<Co>と<Ci>は、最近行った場所を順番に表示します。デフォルトでバッファ全体で機能します:)
コスタ


7

最も簡単な方法は、でマークを設定m[letter]してから、'[letter]


vimのヒントを検索したときにあなたに会えてうれしいです。私はctrl-iと共により多くのctrl-oを使用してきました。
MattK、

7

私はこれを使います:

nnoremap / ms/
nnoremap ? ms?

次に、/またはを使用して何かを検索すると、で?すばやく戻ることができ`sます。あなたはs手紙を好きな手紙に置き換えることができます。


ここでの注意点はm、マーク以外の何かとして定義されているNerdTreeなどのウィンドウでの検索が中断することです。NerdTreeの場合はメニューです。
クリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.