Vimで列番号に直接ジャンプする方法


234

デバッグの目的で、縮小されたjavascriptコードをたどるワクワクするような仕事をする必要がある場合があります。行の幅は最大600列です。例外レポートライブラリは、行番号と列番号の形式で正確なクラッシュ座標を提供するのに十分親切です。ただし、行に簡単にジャンプできるにもかかわらず、列番号に直接ジャンプする方法を見つけることができません。

どうすればできますか?


これは発明する必要のあるツールのように聞こえます。「私のjsを縮小してください。そうすると、この列番号で識別される場所にジャンプします。」
dnellis74 2016

2
@ dnellis74そのツールは存在します。これは「sourcemaps」と呼ばれます;)
Burgi

//、@ Burgi、3つの単語の要約とリンクを保持できますか?
Nathan Basanese

回答:


333

|コマンドは、何をしたいんなどで30|コラム30に行くことができます。

                                                        bar
|                       To screen column [count] in the current line.
                        exclusive motion.  Ceci n'est pas une pipe.

http://vimdoc.sourceforge.net/htmldoc/motion.html#bar


41
一般的な使用法では、これは画面の列であり、実際の列ではないことに注意してください。つまり、<Tab>キャラクターは異なる結果を得るでしょう。これらのキャラクターがそこにいる場合は、代わりに|30lhor |29lまたは029lorそのようなものが必要になります。
Chris Morgan、

25
さまざまなモーションコマンドの前に数値を渡すこともできます。たとえば、50h50文字左に移動します。
AB

7
:set nowrap画面行とファイル行の間の混乱を減らすのにも役立ちます。
David Pope

4
@DavidPope:この場合の「画面の列」とは、行の先頭から相対的であることを意味します。g0「現在の画面行の開始」を実現します。
Chris Morgan

10
vimのドキュメントは陽気です: "Ceci n'est pas une pipe" :-)
Avinash Meetoo

45

cursor関数を使用できます。たとえば、15行目の25列にジャンプするには、を使用できます:call cursor(15,25)


2
これは質問への回答を提供し、スクリプトの代わりにExコマンドを使用すると便利です。行番号がゼロの場合、カーソルは現在の行に留まることに注意してください。
Giles Gardam

このコールは、コマンドライン上で行うことができるので、これは、他のツールからVimを開くために特にいいです:"+call cursor($LINE,$COLUMN)"
ローレンス・ゴンサルベス

5

Mac OSで私に有効な別の答えは、カーソルを右に移動するコマンド(つまりl)を使用することです。したがって、カーソルが最初の列にあり、現在の行の50列目にカーソルを置きたい場合は、次のコマンドを使用します。

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