Một trạng thái hữu ích hơn trong vim? [đóng cửa]


150

Tôi muốn làm cho trạng thái của tôi trong vim nhiều thông tin và thú vị hơn, và vì điều đó tôi cần một số ý tưởng. Làm thế nào bạn tùy chỉnh trạng thái của bạn?


5
@paxdiablo: Đôi khi, bạn nên dành thời gian để định cấu hình công cụ theo nhu cầu của mình để bạn có thể sử dụng nó tốt hơn và do đó tiết kiệm thời gian trong khi làm việc.
DarkDust

10
Đây phải là một wiki cộng đồng vì không có câu trả lời chính xác.
Randy Morris

3
Đây không phải là về ý kiến ​​nhiều như tận dụng kinh nghiệm và chuyên môn của các cá nhân có học hơn. Người hỏi đang tìm kiếm thông tin mà anh ta không thể đoán, không yêu cầu các cá nhân cạnh tranh về những gì tốt nhất. Câu trả lời sẽ tạo ra một số tùy chọn mà trước đây anh không có. Chỉ vì một câu hỏi có nhiều hơn một câu trả lời không có nghĩa đó không phải là câu hỏi dựa trên chuyên môn kỹ thuật. Câu hỏi này phù hợp với định dạng SO và nên vẫn mở.
NeilG

Câu trả lời:


134

Biên tập:-

Lưu ý vim-Airlines đang đạt được một số lực kéo khi tùy chọn vimscript mới khi powerline đã biến thành python.


Có vẻ như đường dây điện là nơi nó ở vào những ngày này: -

Dòng trạng thái bình thường

đường dây điện

Các dòng trạng thái tùy chỉnh cho các plugin khác (ví dụ: ctrlp )

đường dây điện


3
@Gavin làm thế nào tôi có thể thay đổi để phân khúc dòng điện của bạn? bạn có thể cập nhật một số kịch bản sửa đổi phân đoạn mặc định? chúc mừng
Jerry Gao

@Gavin Tôi cũng vậy, sẽ đánh giá cao nếu bạn có thể chia sẻ cách bạn đưa những thứ như chi nhánh của bạn vào vim-powerline
Eric Hu

1
Không có gì đặc biệt, từ: github.com/Lokaltog/vim-powerline#troubledh Boot chỉ cần đảm bảo bạn có "let g: Powerline_symbols = 'Fancy'" trong tệp vimrc của bạn và đã cài đặt phông chữ được vá.
Gavin Gilmour

đây là một plugin tốt Nhưng hiệu suất cuộn của tôi khi tôi lần đầu tiên mở một tập tin là rất rất xấu vì điều này.
Ahmed Aeon Axan

2
@AhmedAeonAxan thử hãng hàng không, nó bắt đầu nhanh (vimscript thuần túy). Và mất ít nỗ lực hơn để thiết lập, đặc biệt là với Vundle hoặc Pathogen. Và một khi bạn cài đặt phông chữ powerline, nó ít nhiều trông giống như hãng hàng không. github.com/Lokaltog/powerline-fonts
trượt tuyết vào

60

Đây là của tôi:

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

trạng thái vim

Và đây là màu tôi đã sử dụng:

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 thực sự là số byte, ngay cả khi đôi khi nó được gọi là đếm cột ngay cả trong trợ giúp vim. Bạn có thể sử dụng v để lấy số thường có nghĩa là số cột.
Ludwig Weinzierl

Cảm ơn @Ludwig, tôi đã không chú ý đến nó. Tôi sẽ chỉnh sửa câu trả lời.
Tassos

8
Tôi thích sự rõ ràng của nhận xét từng giá trị được nối trên dòng riêng của nó. Nếu tôi đã làm điều đó 7 năm trước, tôi sẽ không vứt nó đi khi tôi cài đặt hệ điều hành sạch cuối cùng.
Bruno Bronosky

Sweeet! Một điều tôi thiếu khi sử dụng điều này là dòng phân tách phiên chia tách
Julio Marins

1
@trusktr Lưu ý rằng guifgguibgdành cho gvim. Nếu bạn đang chạy vimtrong một thiết bị đầu cuối, hãy thử ctermfgctermbgthay vào đó. Bạn cũng sẽ cần các màu khác nhau, các số 1-16 hoặc 1-256 tùy thuộc vào số lượng màu bạn đã bật trong vim. Màu sắc tương ứng cho mỗi số.
joelostblom

46

Đây là cái tôi sử dụng:

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.

Làm nổi bật trên? chức năng:

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

Màu sắc (được điều chỉnh từ ligh2011.vim):

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 của tôi


2
Thật tuyệt, điều này tránh sự cần thiết phải có các plugin dòng trạng thái ưa thích ít nhất cho trường hợp sử dụng của tôi, kẹo mắt :)
Nishant

1
Làm thế nào để bạn có được màu sắc để làm việc?
trusktr

Tôi đã thử đặt cái này sau khi bất kỳ colorschemeđược đặt, nhưng tôi chỉ thấy một dòng trạng thái hai tông màu.
trusktr

@trusktr, Không dễ để giải thích .... Bạn cần đặt 2 khối đầu tiên vào tệp vimrc và khối màu trong tệp colorscheme hiện tại của bạn. Bạn có thể tìm thấy tập tin colorscheme hiện tại của mình bằng lệnh này::colorscheme
Reman

1
Tìm kiếm nổi bật của bạn sẽ ngắn hơn (không có bất kỳ chức năng nào) chỉ bằng cách sử dụng toán tử ternary như thế này -> echo &hls ? 'H' : '' trong trường hợp của tôi:let &stl.="%6*%01(%{&hls?'H':''}%)%0* "
SergioAraujo

20

Những gì tôi thấy hữu ích là để biết sao chép / dán bộ đệm (đăng ký) hiện đang hoạt động : %{v:register}. Mặt khác, dòng trạng thái hoàn chỉnh của tôi trông gần giống như dòng tiêu chuẩn.

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

2
My, điều đó có v:registervẻ rất hữu ích thực sự!
nperson325681

Điều đó có nghĩa gì khi đăng ký hoạt động? Sự hiểu biết (xấu) của tôi về các thanh ghi là về cơ bản chúng là các bảng ghi để lưu trữ văn bản.
Roymunson

15

Một số lần ít hơn là nhiều hơn, bạn có thực sự cần biết tỷ lệ phần trăm thông qua các tập tin bạn đang có khi mã hóa? Còn loại tập tin thì sao?

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()}       

trạng thái

trạng thái

Tôi cũng thích màu tối thiểu để không làm sao lãng mã.

Lấy từ: https://github.com/krisleech/vimfiles

Lưu ý: rvm#statuslinelà Ruby cụ thể và fugitive#statuslinelà git cụ thể.


1
+1 cho dòng trạng thái liên quan đến git
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

Đây là của tôi, đưa ra như một đề nghị

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.