VIM:Ubuntuで正確な行に移動する方法


87

私はviUbuntu12.10で使用しています。一部のファイルは非常に長いため、ファイルの途中に移動するときは、ページを下に移動するか、下にスクロールする必要があります。

正確な行番号に移動するためのVIMショートカットはありますか?


@vimの専門家。これは本当にUbuntu- / bash- / Linux固有ですか(OPタグによる)?私はvimをあまり使用していませんが、Ubuntu / CentOS / Suse / Windows間でわずかな違いに気づいていません。
アレクサンダーマラホフ

回答:


143
:150

viの150行目に移動します

:1500

viの1500行目に移動します

コメントによると、あなたは試してみたいかもしれません

150G

150行目に到達します。:150Enter どの行を使用しているかわからない場合は、キーストロークが少なくなります。

 :set nu!

に注意してください:

常に線を見たい場合は、vimプロファイルの編集を検討してください。よく

vi ~/.vimrc

と追加

:set nu! 

書いてやめる

:wq
#or you could use :x

これはviの外で行うことができます。たとえば、テキストファイルの5000行目を削除したい場合は、スクリプト言語を使用できます。たとえば、sedを使用すると、次のようになります。

sed -i '5000d;' inputFile.txt

10行目から20行目を削除すると、

sed -i '10,20d;' inputFile.txt

-iがファイルをその場で編集することに注意してください。-iがないと、stdoutになります。それを試してみてください。stdoutをファイルにリダイレクトできます

sed '5001,$d;' inputFile.txt >> appenedFile.txt

これはあなたのためにここで多くのことが起こっているかもしれません。これにより、5001行目が$に削除されます。$がファイルの終わりです。>>ファイルに追加します。ここで、>は新しいファイルを作成します。

ファイルに何行あるか知りたい場合は、入力することをお勧めします wc -l inputFile.txt

これのいくつかはひどく些細なことに思えるかもしれませんが、50,000行のファイルを編集しようとしている場合は、開いてトラバースするのに1分ほどかかることがあります。最後の行を削除したいだけの場合は、sedを使用して、ほんのわずかな時間でそれを実行できます。

sedは、ファイル内を検索して置換することもできます。しかし、おそらくawk、perl、またはpythonも実行可能な解決策かもしれません。

しかし、全体として、viに関する優れたチュートリアルを見つけたいと思うかもしれません。数千人が存在します。グーグルに相談したい。おそらく、VIMCheatsheatを見つけてください。


問題ありません、私は私の答えを少し拡大しましたが。頑張ってください
matchew 2011年

2
また、vimでは「n50%」と入力してファイルの途中に移動できます。
Eric Fortis 2011年

1
通常モードで150Gは、と同じことを行い:150ます。速くはありませんが、覚えやすいかもしれません。
romainl 2011年

@ romainl150ggも同じことをします。どちらも実際に:150 <cr>よりも高速です
Randy Morris

@Randy Morris-はい、もっと速いです、私は<CR>考慮に入れるのを忘れました。
romainl 2011年

14

その他のvimのヒント:コマンドモードの場合

  • H 画面の上部に移動します
  • M 画面の中央に移動します
  • L 画面の下部に移動します
  • gg 最初の行に移動します
  • G 最後の行に移動します


6

開いたターミナルから、bashシェルで、次のコマンドを実行してファイルを編集するだけです。

$ vi +N yourfile

N行番号はどこですか。

表示用(moreまたはless;):

$ less +N yourfile
$ more +N yourfile

sign+、開始時に実行するコマンドを意味します。もしそうであれば、コマンドは、その後数だけ、であるvilessそしてmore、意志は、このにジャンプする行番号

しかし、あなたも使用することができます /regex、特定の文字列または正規表現の最初の出現を見つけるために。

$ less +/Error logfile
$ less -i +/error logfile      # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...

3

もう1つのアドバイス:vimは初めてなので、実行vimtutorすると非常に役立ちます。


6
特定の質問に対応していないので、これは単なるコメントではありませんか?
ブライアンラスムッセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.