Vim'de daha kullanışlı bir durum çizgisi mi? [kapalı]


150

Vim'deki statü hattımı daha bilgilendirici ve ilginç hale getirmek istiyorum ve bunun için bazı fikirlere ihtiyacım var. Durum çizginizi nasıl özelleştirdiniz?


5
@paxdiablo: Bazen aracı ihtiyacınıza göre yapılandırmak için zaman harcamaya değer, böylece aracı daha iyi kullanabilirsiniz ve böylece çalışırken zaman kazanabilirsiniz.
DarkDust

10
Doğru bir cevap olmadığı için bu bir topluluk wiki'si olmalıdır.
Randy Morris

3
Bu, daha fazla öğrenilmiş bireyin deneyim ve uzmanlığından yararlanmak kadar fikirlerle ilgili değildir. Soru soran, tahmin edemeyeceği bilgileri arıyor, bireylerin en iyi olanı hakkında rekabet etmelerini istemiyor. Yanıtlar daha önce sahip olmadığı bir dizi seçenek yaratacaktır. Bir sorunun birden fazla yanıtı olması teknik uzmanlığa dayalı bir soru olmadığı anlamına gelmez. Bu soru SO biçimine iyi uyuyor ve açık kalmalı.
NeilG

Yanıtlar:


134

Düzenle:-

Not vim-havayolu , powerline python gittikçe yeni vimscript seçeneği olarak bir miktar çekiş kazanıyor.


Enerji hattı şu anda olduğu yerde görünüyor : -

Normal durum satırı

güç hattı

Diğer eklentiler için özelleştirilmiş durum satırları (örn. Ctrlp )

güç hattı


3
@Gavin güç hattı segmentlerinizi nasıl değiştirebilirim? u bazı varsayılan segment değişiklik komut dosyalarını güncelleyebilir misiniz? alkış
Jerry Gao

@Gavin I, şubeniz gibi şeyleri vim-powerline'a nasıl eklediğinizi de paylaşabiliyorsanız seviniriz
Eric Hu

1
Özel bir şey yok, github.com/Lokaltog/vim-powerline#troSorun giderme , vimrc dosyanızda "let g: Powerline_symbols = 'fancy'" olduğundan ve yamalanmış yazı tiplerinin yüklü olduğundan emin olun.
Gavin Gilmour

Bu güzel bir eklenti. Ama bir dosyayı ilk açtığımda kaydırma performansım bu nedenle çok çok kötü.
Ahmed Aeon Axan

2
@AhmedAeonAxan havayolu deneyin, hızlı başlar (saf vimscript). Ve özellikle Vundle veya Pathogen ile kurulum için daha az çaba harcar. Powerline yazı tipini yükledikten sonra, aşağı yukarı havayolu gibi görünür. github.com/Lokaltog/powerline-fonts
snowbound

60

Benimki burada:

set statusline=
set statusline +=%1*\ %n\ %*            "buffer number
set statusline +=%5*%{&ff}%*            "file format
set statusline +=%3*%y%*                "file type
set statusline +=%4*\ %<%F%*            "full path
set statusline +=%2*%m%*                "modified flag
set statusline +=%1*%=%5l%*             "current line
set statusline +=%2*/%L%*               "total lines
set statusline +=%1*%4v\ %*             "virtual column number
set statusline +=%2*0x%04B\ %*          "character under cursor

vim durum çizgisi

Ve işte kullandığım renkler:

hi User1 guifg=#eea040 guibg=#222222
hi User2 guifg=#dd3333 guibg=#222222
hi User3 guifg=#ff66ff guibg=#222222
hi User4 guifg=#a0ee40 guibg=#222222
hi User5 guifg=#eeee40 guibg=#222222

1
c, vim yardımında bile bazen sütun sayısı olarak adlandırılsa bile, bayt sayımıdır. Genellikle sütun numarasıyla kastedilen şeyi elde etmek için v'yi kullanabilirsiniz.
Ludwig Weinzierl

Teşekkürler @ Ludwig, fark etmedim. Cevabı düzenleyeceğim.
Tasos

8
Eklenen her değeri kendi satırında yorumlamanın netliğini seviyorum. Bunu 7 yıl önce yapsaydım, son temiz işletim sistemi kurulumumu yaptığımda bunu atmazdım.
Bruno Bronosky

Sweeet! Bunu kullanarak eksik bir şey splited oturumu ayıran hat
Julio Marins

1
O @trusktr Not guifgve guibgiçindir gvim. Eğer çalışıyorsa vimbir terminalde, denemek ctermfgve ctermbgbunun yerine. Ayrıca vim'de kaç rengi etkinleştirdiğinize bağlı olarak farklı renklere, 1-16 veya 1-256 numaralarına ihtiyacınız olacak. Her sayı için karşılık gelen renkler .
joelostblom

46

Kullandığım bu:

set statusline=
set statusline+=%7*\[%n]                                  "buffernr
set statusline+=%1*\ %<%F\                                "File+path
set statusline+=%2*\ %y\                                  "FileType
set statusline+=%3*\ %{''.(&fenc!=''?&fenc:&enc).''}      "Encoding
set statusline+=%3*\ %{(&bomb?\",BOM\":\"\")}\            "Encoding2
set statusline+=%4*\ %{&ff}\                              "FileFormat (dos/unix..) 
set statusline+=%5*\ %{&spelllang}\%{HighlightSearch()}\  "Spellanguage & Highlight on?
set statusline+=%8*\ %=\ row:%l/%L\ (%03p%%)\             "Rownumber/total (%)
set statusline+=%9*\ col:%03c\                            "Colnr
set statusline+=%0*\ \ %m%r%w\ %P\ \                      "Modified? Readonly? Top/bot.

Açık seçilsin mi? fonksiyon:

function! HighlightSearch()
  if &hls
    return 'H'
  else
    return ''
  endif
endfunction

Renkler (ligh2011.vim'den uyarlanmıştır):

hi User1 guifg=#ffdad8  guibg=#880c0e
hi User2 guifg=#000000  guibg=#F4905C
hi User3 guifg=#292b00  guibg=#f4f597
hi User4 guifg=#112605  guibg=#aefe7B
hi User5 guifg=#051d00  guibg=#7dcc7d
hi User7 guifg=#ffffff  guibg=#880c0e gui=bold
hi User8 guifg=#ffffff  guibg=#5b7fbb
hi User9 guifg=#ffffff  guibg=#810085
hi User0 guifg=#ffffff  guibg=#094afe

StatusLine'm


2
Güzel, bu benim kullanım durumum için en az fantezi durum satırı eklentileri olması ihtiyacını ortadan kaldırır, göz şeker :)
Nishant

1
Renkleri nasıl çalışırsın?
trusktr

Bunu herhangi bir colorschemeayarlandıktan sonra koymaya çalıştım , ama sadece çift tonlu bir durum çizgisi görüyorum.
trusktr

@trusktr, Açıklamak kolay değil .... İlk 2 bloğu vimrc dosyanıza ve renkler bloğunu geçerli colorscheme dosyanıza koymanız gerekiyor. Mevcut colorscheme dosyanızı şu komutla bulabilirsiniz::colorscheme
Reman

1
Vurgula aramanız daha kısa (herhangi bir işlev olmadan) böyle üçlü operatör kullanarak daha kısa olurdu -> echo &hls ? 'H' : '' benim durumumda:let &stl.="%6*%01(%{&hls?'H':''}%)%0* "
SergioAraujo

20

Ne yararlı buldum (kayıt) şu anda etkin olan tampon yapıştırın / hangi kopyalamak bilmektir: %{v:register}. Aksi takdirde, tam durum satırım neredeyse aynı standart çizgiye benziyor.

:set statusline=%<%f\ %h%m%r\ %y%=%{v:register}\ %-14.(%l,%c%V%)\ %P

2
Benim, bu v:registergerçekten çok kullanışlı görünüyor!
nperson325681

Bir kaydın aktif olması ne demektir? Benim (kötü) kayıt anlayışım temelde metin depolamak için pano olmasıdır.
Roymunson

15

Bazı zamanlar daha azdır, kodlama yaparken bulunduğunuz dosya üzerinden yüzdeyi gerçekten bilmeniz gerekir mi? Dosya türü ne olacak?

set statusline=%F%m%r%h%w\ 
set statusline+=%{fugitive#statusline()}\    
set statusline+=[%{strlen(&fenc)?&fenc:&enc}]
set statusline+=\ [line\ %l\/%L]          
set statusline+=%{rvm#statusline()}       

durumsatırı

durumsatırı

Ben de kod dikkatini dağıtmak için minimal renk tercih ederim.

Alındığı yer: https://github.com/krisleech/vimfiles

Not: rvm#statuslineRuby'ye özgüdür ve fugitive#statuslinegit'e özgüdür.


1
Git ile ilgili statusline için +1
Patrick


1

set statusline=%<%f%m\ \[%{&ff}:%{&fenc}:%Y]\ %{getcwd()}\ \ \[%{strftime('%Y/%b/%d\ %a\ %I:%M\ %p')}\]\ %=\ Line:%l\/%L\ Column:%c%V\ %P

Bu benim, bir öneri olarak ver

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.