Vim ve vimdiff'i vimrc içinden nasıl ayırt edebilirim?


10

Vim içinde tüm arabellekleri sekmeler olarak açacak bir fonksiyonum var. Ancak ben bu işlevi ekledikten sonra, vimdiff farklı sekmeler olarak karşılaştırılacak dosyaları da açar ve bu nedenle farklılıkları göstermez. Onun vimr veya vimdiff vimrc dosyamı çağırıyor olup olmadığını öğrenmek bir yolu var mı?

function! OpenTabs()
    let bf=len(filter(range(1, bufnr('$')), 'buflisted(v:val)'))
    if bf > 1
      exe "tab 5sball"
    endif
endfunction

Sekmeleri arabellek olarak kullanma hakkında ilgili SO yazısı: Vim'in arabellek gibi sekmelerini kullanma
Peter Rincker

Bu soruyu buldum, çünkü VIm tarafından yürütüldüğünde vim-workspace tarafından çalışma alanının yüklenmesini istemedim, git difftoolancak bu durumda let g:workspace_session_disable_on_args = 1bana daha iyi uyuyor.
Günter Zöchbauer

Yanıtlar:


12

:help diff bunu kapsar:

.Vimrc dosyanızda Vim diff modunda başlatıldığında özel bir şey yapabilirsiniz. Bunun gibi bir yapı kullanabilirsiniz:

   if &diff
      setup for diff mode
   else
      setup for non-diff mode
   endif

12

Bu &diffseçeneği vimrc'nizdeki gibi kullanabilirsiniz :

if &diff
    echo "in diff mode"
else
    echo "not in diff mode"
endif

Görmek :h 'diff'


Aksi! Benimkini upvote eğer ben seninkini upvote edersiniz;)
Rich

Ahah "Gönder" i tıklamak için 6 saniye çok yavaştım! Var benim görüşüm :)
statox

Hızlı cevap için teşekkürler! View & vi'yi tanımlamak için bir seçenek olup olmadığını mı merak ediyorsunuz?
Ankit Jain

@AnkitJain Görünüm için, tüm arabelleklerinizde 'readonly'seçenek ayarının olup olmadığını kontrol edebilir veya viewbaşlangıçta kontrol edeceğiniz bir vim değişkeni ayarlamak için takma ad kullanabilirsiniz.
statox

3
@AnkitJain:h v:progname
Christian Brabandt
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.