web-dev-qa-db-ja.com

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

Ubuntu 12.10でviを使用しています。一部のファイルは非常に長いため、ファイルの中央に移動する場合は、ページダウンまたはスクロールダウンする必要があります。

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

77
kevin
:150

viで150行目に移動します

:1500

viで1500行目に移動します

コメントに従って、試してみたいことがあります

15G

150行目に到達します。 :15Enter あなたが試している行がわからない場合

 :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をファイルにリダイレクトできます

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

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

ファイル内の行数を知りたい場合は、wc -l inputFile.txt

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

sedは、ファイル内を検索および置換することもできます。しかし、おそらくawk、Perl、またはpythonも実行可能なソリューションかもしれません。

しかし、全体的には、viに関する優れたチュートリアルを見つけることができます。数千が存在します。 Googleに相談します。おそらく、VIM Cheatsheat。

132
matchew

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

  • H 画面の上部に移動します
  • M 画面の真ん中に行きます
  • L 画面の一番下に移動します
  • gg 最初の行に行く
  • G 最後の行に行きます
13
glenn jackman

数分かけて this documentを読み始めます。特に設定ファイルを編集する際の効率性については、長期的に見れば報酬があります。

7
Jasonw

Bashシェルで開いたターミナルから、次を実行してファイルを編集します。

$ vi +N yourfile

ここで、Nは行番号です。

表示する場合(moreまたはless;):

$ less +N yourfile
$ more +N yourfile

記号 + mean 開始時に実行するコマンドcommandが数字のみの場合、viless、およびmoreは、行番号としてこれにジャンプします。 =。

ただし、/regex特定の文字列または正規表現の最初の出現を見つけるため:

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

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

3
rvs