vimでは、最後に閉じたのと同じ行番号でファイルを開くにはどうすればよいですか?


141

中断した場所と同じ場所でファイルを開くようにvimを構成したい。

vim 

: '"アポストロフィとそれに続く二重引用符は、最後の変更行をリダイレクトします
Dhiren Hamal

回答:


195

Ubuntuの/etc/vim/vimrcファイルから、この例はコメント化されています。

" Uncomment the following to have Vim jump to the last position when                                                       
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
    \| exe "normal! g'\"" | endif
endif

これが機能しない場合、一般的な問題は~/.viminfoファイルの所有権がないことです。この場合は、次を実行します。

sudo chown user:group ~/.viminfo

ここで、ユーザーはあなたusernamegroupあり、多くの場合、ユーザー名と同じです。


9
autocmdはvimドキュメントから直接提供されます。:help last-position-jump
user55400を

19
:最後から二番目の行で単一引用符はバッククォートに変更された場合、それは実際のカーソル位置に、その行だけではなく始まりジャンプします\| exe "normal! g`\"" | endif
u2622

4
chown一部は私のために問題を修正しました。脱帽!
slowpoison 2013

2
最後に、誰かが私の.viminfoが何らかの理由でrootによって所有されていると指摘しました!これは、私が読んだ他の100のドキュメントに含まれている必要があります。
ジャック、

2
chown user ~/.viminfo加算を+1したいだけです。私はこれを1時間理解しようとしましたが、あなたは私の日を救っただけです。
クリストファーリード2016年

48

単純化のために自動化の取引を気にしない場合は'"、ファイルを開くときにキーストローク(アポストロフィとそれに続く二重引用符)を押すだけで、元の場所にジャンプします。これは本質的に@marcogの答えがしていることです。


24
  :h views-sessions

これを.vimrcに置くことができます:

  au BufWinLeave * mkview
  au BufWinEnter * silent loadview

ビューは$ HOME / .vim / viewに配置されます。おそらくこれらのディレクトリを作成する必要があります。


私のMacには存在しない/ etc / vim /ファイルを他の1つが参照していたため、この回答が好きです。
MarkHu '19年

15

を使用してファイル名を指定せずにvimを起動できます

vim 

次に、CTRL + Oを2回押して、作業中のファイルの最後の場所に移動します。


NERDTreeがインストールされている場合、Coを2回押すと現在のバッファでNERDTreeを開くことができます。私の場合、時々Coを最大5回押す必要がありますが、最終的には@MatAffで説明されている効果が得られます。
アシュラムン

Ctrl-c一度押すだけで十分です。さらに、Ctrl-cmoreを押すと、カーソル位置の履歴に戻ります(開いていない関連ファイルを開く場合でも)。私はNeovim 0.4.2を使用していますが、私の理解ではそれも同様に適用さvimれます。
T_T

7

viminfoを有効にしている場合は`0、最後に編集したファイルの位置に移動するだけです。これは「マークを付ける」コマンドにすぎないことに気づくでしょう。

実際、後で '3を実行して、前に編集された3番目の場所(おそらく別のファイル内)に移動し、最後の場所に`0再び戻ることができます。

見て

 :marks

記憶された場所を見るために。viminfoは他のあらゆる種類のもの(レジスタの内容、ファイルごとのマーク、コマンド、検索履歴など)を保存することにも注意してください。ほとんどの人は明白な理由でこれを有効にしています


`0は、Macのvimバージョン7.4.1689では動作しません。しかし、 '0はそのトリックをします。これは答えのタイプミスですか?
alamoot 2017年

@alamootいいえ、それは見、ないvimdocのmotion.txtをチェック何文字あなた- `鍵が実際に発生し、または行う:verbose map `
sehe

あなたが正しいです。vimdocによると、どちらも正しいです!
alamoot 2017年

6

vim-lastplace(私は作者です)というプラグインがあり、中断したところからファイルを開くことができます。通常は新しいメッセージを編集していて、コミットメッセージファイルの先頭から開始する必要があるため、コミットメッセージを無視することにより、上記の提案を改善します。


プラグインなしでできることがすべてベストです。.vimrcを目指し​​てください。コードが小さいほど、軽くて速くなります
nilon '22

1

~/.viminfo読み取り専用になる場合や、ユーザーがファイルにアクセスできない場合があります。これは、ファイルを閉じるときにvimがカーソル位置を保存しない理由でもあります。

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