Vim:カーソルを最後の位置に移動します


251

(g)Vimでカーソルを前の位置に移動できますか(通常モードのとき)?以前のカーソル位置のリストで前後に循環するものが理想的です。しかし、最後の場所に切り替えるだけでも十分です(cd -ディレクトリのあるbashのようなもの)。

ここに小さなデモがあります:

line |1| <- cursor position
line 2
line 3
line 4

そして、私がやったとしましょう2j、これが今の状態です:

line 1
line 2
line |3| <- cursor position
line 4

今、私は何かを押して(2k明らかに以外)、最初の位置に、そしておそらく前の位置に移動したいと思います。

回答:


409

最も簡単な方法は、次のいずれかを押すことです。

''

(2つのアポストロフィ)または:

``

(2つのバックティック)。違いは、バックティックが行の同じ位置に移動するのに対し、アポストロフィは行の先頭に移動することです。英国のキーボードでは、アポストロフィの方がアクセスしやすいので、アポストロフィを使用する傾向があります。このような便利なマークがたくさんあります:help mark-motions。を見てください。

他のいくつかのモーション(2j私ではないと思います)には、いくつかのモーション間を行き来できるジャンプリストもあります。 このナビゲーションCtrlOCtrlI行いますが、詳細については:help jump-motionsを参照してください。


3
実際のところ、期待どおりに動作するものはありませんが、他に利用できるものはないと思います。
Idan K

1
@Idan K-``(ダブルバックティック)はあなたが望むものを正確に与えないのですか?(「歴史」の側面を除く)。
ダン

3
@ダン:上記の例で試してみると、次のような動作が見られます。1 j行目に立って、続けて2回押します(今は3行目です)。それは2行目に移動する
IDAN K

2
移動(2jなど)してから編集(またはテキストを変更するためのアクションを実行)し、 ''を使用して前の位置に戻る必要があると思います。"2j"を使用して何もせずに前の位置に戻るのは論理的ではありません
Asenar 2013年

8
@IdanKジャンプリストは、実際の「ジャンプ」を使用したときにのみ更新されます(つまり、以前のカーソル位置が記録されます)i j k l。(ヘルプドキュメントからの完全なリストは"'"', "`", "G", "/", "?", n", "N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", H" and the commands that start editing a new fileです。)いいえ、これは「元に戻す」2jまたは同様のものではありませんが、他のほとんどすべてで機能します。2j他の理由でこれは理にかなっています。すでに単純な反転(2k、など)がありますが、他のものにはありません。
カイルストランド2014年

61

また、g;およびg,を使用して、以前の編集場所のリストで前後に移動することもできます。

米国以外のキーボード

私のスイスとドイツのキーボードレイアウトでは、;不便なことにShiftキーを使用する必要があります。したがって、私g-g;inのより便利なエイリアスとして定義しました$MYVIMRC

" Map g- as an alias for g;
nnoremap g- g;

私はこれがとても好きですが、1つのファイルの変更間をジャンプするだけです。あなたが編集1、2バッファ[編集]をバッファリングしている場合、それは1バッファリングするために戻ってジャンプしないだろう
thouliha

39

DrAlの回答の問題を誰も理解しなかったのはなぜですか?''あるいは``、この記事の元の問題を解決することはできません!これらの2つのコマンドは2j、少なくとも私にとっては、のようなカーソルの動きに対しては機能しません。それは初心者を混乱させるvimにします。

''or ``、およびCtrlIor の動作は CtrlOジャンプリストに基づいています。2jこれらのコマンドは動作しませんので、ジャンプリストに位置の変更を保存しません2j

''または``、最後の位置と現在の位置を切り替えます。 CtrlIそして、CtrlOジャンプリストの履歴を作業。

g;g,非常に頻繁に使用される編集位置を移動します。


1
これを指摘してくれてありがとう!2jでは、そのような場合には何が機能するのでしょうか。

33

ヘルプから直接(:help jump):

:ju [mps]ジャンプリストを出力します(モーションコマンドではありません)。{Viにはない} {| + jumplist |なしでは利用できない 特徴}

                          *jumplist*

ジャンプはジャンプリストに記憶されます。CTRL-OおよびCTRL-Iコマンドを使用すると、古いジャンプの前にカーソル位置に移動し、再度移動することができます。したがって、リストを上下に移動できます。ウィンドウごとに個別のジャンプリストがあります。エントリの最大数は100に固定されています。{| + jumplist |なしでは使用できません 特徴}

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