web-dev-qa-db-ja.com

vi / vimの現在の位置からカーソルをx行移動します

Vi/vimでカーソルを相対的な行数だけ移動する方法はありますか?削除するコードのブロックの下にカーソルが10行あるとします。相対的な順序で行番号が表示されている場合、「ジャンプ10行コマンド」を使用するとそこに移動できます。

または、絶対行番号を表示してxggに行く方が良いでしょう。xは行番号です。

67
Flawe

はい、もちろん方法があります。 jおよびkは1行上下に移動するため、10jおよび10k上下に10行移動します。あなたはそれの前に数字を置くことにより、任意の動きを繰り返すことができます。

set relativenumberこれがあなたが多くのことをする場合-絶対数の代わりに現在の行に相対的な行番号を印刷することでカウントを節約するのに役立ちます。

101
Cascabel

10行上下に移動すると、タスクや他のオプションに適さない場合があります。他の動きを考慮してください:

Ctrlf、 Ctrlb 前後のページ。

}、 { 1段落ずつ前後に移動します。

次の行をvimrcファイルに追加することにより、10jをキーにバインドするルール、たとえばJを10行下に移動するルールを作成できます:map <S-j> 10j

ただし、既存の便利なJコマンドを上書きすることになります(2行を結合します)。 10j/10kの適切に配置された未使用のキーの組み合わせを見つけるのは難しいかもしれないので、私が言及した既存の動きを使用することをお勧めします。

?somewordを実行すると表示されるWordに戻り、/somewordを実行すると表示されるWordに移動できることも知りたい場合があります。これらは、10行上または下に移動してからカーソルを正確な位置に再配置するよりも高速です。問題の行の単純な検索文字列を考えることができない場合は、あなたが言ったようにいつでも行番号に行くことができます(xgg)。

44
Olhovsky

私はvimをいじっていたと気づいた - あなたを上に移動し、 + 下に移動するため、次のことができます。

10-

または使用できます k あなたはおそらく慣れているので hjkl カーソルの動き。

10
Cilan