2008-11-24 17 views
50

Vim ayarlarının durumunu bir belgeyle kaydetmenin bir yolu var mı? Vim ayarlarını belge ile saklama

netleştirmek için: Bir belgeyi düzenlerken ve ben ayarları bir demet değiştirin. Hangisini hatırlamıyorum ki; ve mevcut belgenin dışında bu ayarları tekrar kullanmak istemiyorum. Neyi değiştirdiğimi hatırlamaya çalışmak istemiyorum; ya da değiştirdiğim ayarlar için sihirli kısaltmalar. Ben sadece "mydoc.txt", "mydoc.vim" dosyası için beni bıraktığım yere geri koyarım, ve ayarları dosyası otomatik olarak bir vim ayarına göre kaydedileceğini söylemek isterim. ctrl-key, çıkmadan önce yapar. Vim otomatik olarak böyle bir dosyayı arayabilirse kullanışlı olur.

Ve içine ve belgenin kendisi dışında ayarlarını düzenlemek zorunda değil tercih olacaktır.

cevap

23

Sen Vim'ın Oturum desteği kullanabilirsiniz Dosyayı belirli bir tür olarak kaydedebilirsiniz, örn. Özel dosya adı biçimi veya uzantısı ve daha sonra bu filetype için .vimrc dosyanızda bir autocommand tanımlayın.

ben belirli dosyalar için ihtiyaç çeşitli ayarlara sahip olmasını sağlamak için benim makefiles için yapıyorum. Örneğin, burada benim autocommand dec.

if has("autocmd") 
    autocmd BufRead,BufNewFile Makefile* :set noexpandtab 
    autocmd BufRead,BufNewFile mirror.conf :set noexpandtab 
    autocmd BufRead,BufNewFile *.html* :set shiftwidth=2 
    autocmd BufRead,BufNewFile diff_files :set autowrite 
    autocmd BufRead,BufNewFile lbnamed* :set ft=perl 
    autocmd BufRead,BufNewFile *.t  :set ft=perl 
endif 
105

Evet, vim ayarları belgeye dahil edilebilir.

Çoğunlukla yorumlar içinde bulunurlar, böylece pisliği orijinal dosya yok. sekmeye özgü ayarları için bir örnek: çoğu durumda bu komut çalışır, ancak, sunucular güvenlik nedeniyle açık modeline olmadan kurulum sıklıkla olduklarını

/* ex: set tabstop=8 expandtab: */ 

Not.

set modeline 
+14

emin 'kipsatırı' ayarlanır olun. –

+9

Daha fazla bilgi http://vim.wikia.com/wiki/Modeline_magic adresinde bulunabilir. Vim için, '/ * vim: set tabstop = 8 expandtab: * /' kullanmanız gerekir. – Lekensteyn

+2

@Lekensteyn veya basitçe: Yardım kipsatırı;) düzenlemek – Geoffroy

9

Sen .vimrc dosyasını düzenleyerek global ayarlarınızı kaydedebilirsiniz: o özelliğini açmak için $ HOME/.vimrc aşağıdaki veya sistem $ VIM/vimrc ekleyin. İsterseniz

:redir > textfile.txt 
:set all 
:redir END 

, sadece ~/.vimrc ve uzağa için bu dosyayı yeniden adlandırın: Vim ayrıca bir dosyaya tüm geçerli ayarları kaydetmek nasıl İşte modelines

7

kullanarak dosya başına ayarları kaydetmek sağlar

git. Ya

+0

bunu yaptım .. işe yaramadı – Ethan

+0

Eğer zaten yüklü bir sürü eklentiniz yoksa, '' mkvimrc' komutu da vardır. Fakat bu aynı zamanda eşleştirmeleri de yakalar, bu yüzden bir sürü eklenti eşlemeniz varsa, bunları geçmeniz ve silmeniz gerekir; böylece bunları iki kez tanımlamazsınız. – Ben

+0

Benim için çalıştı, çünkü zaten çalışmaz çünkü çünkü ~/.vimrc 'kısmı, zaten işe yaramaz. Bu tam olarak ne istediğini yapmıyor, ama yardımcı oluyor. –

4

tasarruf/vim -S Session.vim çalışan veya oturum yükleme otomatik hale getirmek Orada da vim eklentileri source Session.vim

kullanarak

:mksession 

bunu daha sonra yükleyebilirsiniz: