Vim'de, bir dosyayı son kapattığım aynı satır numarasında nasıl açabilirim?


141

Vim'i, bıraktığım yerde aynı dosyayı açacak şekilde yapılandırmak istiyorum.

vim 

: '"kesme işareti ve ardından çift tırnak son değişiklik satırını yönlendirir
— Dhiren Hamal

Yanıtlar:


195

Ubuntu /etc/vim/vimrcdosyasından bu örnek yorumlanmıştır:

" 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

Bu işe yaramazsa, genel bir sorun ~/.viminfodosyanızın sahipliğinden kaynaklanmıyor . Bu durumda, çalıştırın:

sudo chown user:group ~/.viminfo

burada kullanıcı sizin adınızdır usernameve groupgenellikle kullanıcı adınızla aynıdır.


9
Autocmd doğrudan vim doc'dan çıkar. Bakınız: son pozisyon-atlama yardım
— user55400 8

19
Sondan bir önceki satırdaki tek tırnak bir ters tırnak olarak değiştirilirse, yalnızca bu satırın başlangıcına değil, gerçek imleç konumuna \| exe "normal! g`\"" | endif
— atlar

4
chownKısmı bana sorun giderildi. Şapka çıkartın!
— slowpoison

2
Sonunda birisi benim .viminfo'mun bir nedenden ötürü kök sahibi olduğunu gösteriyor Bunun okuduğum diğer 100 belgede olması gerekiyor.
— Jack

2
Eklemeyi + 1'lemek istiyorum chown user ~/.viminfo. Bunu bir saattir anlamaya çalışıyordum ve az önce günümü kurtardın.
— Christopher Reid

48

Basitlik için ticaret otomasyonunun sakıncası yoksa, '"bir dosyayı açarken tuşa (kesme işareti, ardından çift tırnak işareti) basmanız yeterlidir, bulunduğunuz yere atlarsınız. @ Marcog'un cevabı budur.


24
  :h views-sessions

Bunu .vimrc'nize yerleştirebilirsiniz :

  au BufWinLeave * mkview
  au BufWinEnter * silent loadview

görünümler $ HOME / .vim / view dizinine yerleştirilir. Muhtemelen bu dizinleri oluşturmanız gerekir.


Bu cevabı beğendim çünkü diğeri Mac'imde olmayan bir / etc / vim / dosyasına atıfta bulundu.
— MarkHu

15

Vim'yi kullanarak bir dosya adı belirtmeden başlatabilirsiniz.

vim 

Ardından üzerinde çalıştığınız herhangi bir dosyadaki son konuma gitmek için CTRL + O tuşlarına iki kez basın.


NERDTree yüklüyse, Co düğmesine iki kez basmak geçerli arabellekte NERDTree'yi açabilir. Benim durumumda, bazen Co'ya beş kez basmam gerekiyor, ama sonunda @MatAff tarafından açıklanan etkiyi elde ediyorum.
— ashrasmun

Bir Ctrl-ckez basmak benim için yeterli. Buna ek olarak, Ctrl-cdaha fazla tuşa basmak beni imleç pozisyonu histroyuna geri götürür (hatta açılmamış ilgili dosyaları açmak). Neovim 0.4.2 kullanıyorum, ancak benim anlayışım bunun da geçerli olduğudur vim.
— T_T

7

Viminfo'yu etkinleştirdiyseniz, `0son düzenlenen dosya konumuna gitmek kadar basittir . Bunun sadece bir 'işarete git' komutu olduğunu fark edeceksiniz;

Gerçekten de, daha sonra düzenlenen üçüncü konuma (belki de başka bir dosyada) gitmek için daha sonra '3' yapabilir ve daha sonra `0tekrar sonuncu konuma dönebilirsiniz.

Bir bak bakalım

 :marks

hatırlanan yerleri görmek için. Ayrıca viminfo'nun her türlü başka şeyi (kayıtların içeriği, dosya başına işaretler, komut ve arama geçmişi gibi) depoladığını unutmayın. Çoğu insan bunu bariz nedenlerle etkinleştirdi


`0, Mac'te vim 7.4.1689 sürümünde benim için çalışmıyor. Ama '0 hile yapar. Cevapta bir yazım hatası var mı?
— alamoot

@alamoot hayır öyle değil, bakın vimdoc motion.txt sizin hangi karakteri kontrol - `anahtar aslında oluşturur veya yapmak:verbose map `
— sehe

Haklısın. Vimdoc'a göre her ikisi de doğru!
— alamoot

6

Dosyalarınızı bıraktığınız yerde açacak vim-lastplace (yazarım) adında bir eklenti var . Normalde yeni bir mesajı düzenlediğiniz ve taahhüt mesajı dosyasının en üstünde başlamak istediğiniz için, taahhüt mesajlarını yok sayarak yukarıdaki önerileri iyileştirir.


eklentiler olmadan yapabileceğiniz en iyisi. .vimrc için amaç: daha küçük ve daha hızlı kod daha küçük
— nilon

1

Bazen ~/.viminfosalt okunur hale gelir veya kullanıcınızın dosyaya erişimi olmaz. Bu, vim'inizin dosyanızı kapattığınızda imleç konumunuzu kaydetmemesinin bir nedeni olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.