สถานะเป็นประโยชน์มากขึ้นในกลุ่ม? [ปิด]


150

ฉันต้องการทำให้สถานะเป็นกลุ่มของฉันมีข้อมูลและน่าสนใจมากขึ้นและเพื่อที่ฉันต้องการแนวคิดบางอย่าง คุณกำหนดสถานะของคุณเองอย่างไร


5
@paxdiablo: บางครั้งก็คุ้มค่าที่จะใช้เวลาในการกำหนดค่าเครื่องมือให้เหมาะกับความต้องการของคุณเพื่อให้คุณสามารถใช้งานได้ดีขึ้นและประหยัดเวลาในการทำงาน
DarkDust

10
นี่ควรเป็นวิกิชุมชนเนื่องจากไม่มีคำตอบที่ถูกต้อง
Randy Morris

3
สิ่งนี้ไม่เกี่ยวกับความคิดเห็นมากไปกว่าการใช้ประโยชน์จากประสบการณ์และความเชี่ยวชาญของบุคคลที่เรียนรู้มากขึ้น ผู้ถามกำลังมองหาข้อมูลที่เขาไม่สามารถคาดเดาได้โดยไม่ขอให้บุคคลแข่งขันกันว่าอะไรดีที่สุด รู้รอบจะสร้างตัวเลือกจำนวนมากซึ่งเขาไม่เคยมีมาก่อน เพียงเพราะคำถามมีคำตอบมากกว่าหนึ่งคำตอบไม่ได้หมายความว่าไม่ใช่คำถามตามความเชี่ยวชาญด้านเทคนิค คำถามนี้เหมาะกับรูปแบบ SO เป็นอย่างดีและควรเปิดอยู่
NeilG

คำตอบ:


134

แก้ไข: -

หมายเหตุvim-airlineกำลังได้แรงฉุดบางอย่างเนื่องจากตัวเลือก vimscript ใหม่เมื่อ powerline ไปหลาม


ดูเหมือนว่าสายไฟฟ้าอยู่ที่ไหนในทุกวันนี้: -

บรรทัดสถานะปกติ

สายไฟฟ้า

บรรทัดสถานะที่กำหนดเองสำหรับปลั๊กอินอื่น ๆ (เช่นctrlp )

สายไฟฟ้า


3
@ กาวินฉันจะเปลี่ยนเป็นเซ็กเมนต์สายไฟของคุณได้อย่างไร? คุณสามารถอัปเดตสคริปต์การแก้ไขเซกเมนต์เริ่มต้นได้ไหม ไชโย
Jerry Gao

@Gavin ฉันก็จะขอบคุณถ้าคุณสามารถแบ่งปันวิธีการที่คุณรวมสิ่งต่าง ๆ เช่นสาขาของคุณใน vim-powerline
Eric Hu

1
ไม่มีอะไรพิเศษที่ทำมาจาก: github.com/Lokaltog/vim-powerline#troubleshootingเพียงให้แน่ใจว่าคุณมี "ให้ g: Powerline_symbols = 'fancy'" ในไฟล์ vimrc ของคุณและติดตั้งฟอนต์ที่ติดตั้งไว้แล้ว
Gavin Gilmour

นี่เป็นปลั๊กอินที่ดี แต่ประสิทธิภาพการเลื่อนของฉันเมื่อฉันเปิดไฟล์ครั้งแรกนั้นแย่มากเพราะเหตุนี้
Ahmed Aeon Axan

2
@AhmedAeonAxan ลองสายการบินมันเริ่มเร็ว (vimscript บริสุทธิ์) และใช้ความพยายามในการตั้งค่าน้อยลงโดยเฉพาะกับ Vundle หรือ Pathogen และเมื่อคุณติดตั้งฟอนต์ Powerline มันดูเหมือนกับสายการบินไม่มากก็น้อย github.com/Lokaltog/powerline-fonts
snowbound

60

นี่คือของฉัน:

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

สถานะเป็นกลุ่ม

และนี่คือสีที่ฉันใช้:

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 คือจำนวนไบต์แม้ว่าบางครั้งเรียกว่าการนับคอลัมน์แม้จะอยู่ในความช่วยเหลือเป็นกลุ่ม คุณสามารถใช้ v เพื่อให้ได้ความหมายโดยหมายเลขคอลัมน์
Ludwig Weinzierl

ขอบคุณ @ Ludwig ฉันไม่ได้สังเกต ฉันจะแก้ไขคำตอบ
Tassos

8
ฉันชอบความชัดเจนของการแสดงความคิดเห็นแต่ละค่าที่ต่อท้ายในบรรทัดของตัวเอง ถ้าฉันทำอย่างนั้นเมื่อ 7 ปีที่แล้วฉันจะไม่ทิ้งมันไปเมื่อฉันติดตั้งระบบปฏิบัติการครั้งสุดท้าย
Bruno Bronosky

Sweeet! สิ่งหนึ่งที่ฉันไม่ได้ใช้คือบรรทัดที่แยกเซสชันที่แยกออกมา
Julio Marins

1
หมายเหตุ @trusktr ที่guifgและมีการguibg gvimหากคุณกำลังทำงานvimอยู่ในสถานีลองctermfgและctermbgแทน คุณจะต้องใช้สีที่แตกต่างกันตัวเลข 1-16 หรือ 1-256 ขึ้นอยู่กับจำนวนสีที่คุณเปิดใช้งานเป็นกลุ่ม สีที่สอดคล้องกันสำหรับแต่ละหมายเลข
joelostblom

46

นี่คือสิ่งที่ฉันใช้:

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.

เน้นหรือไม่ ฟังก์ชั่น:

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

สี (ดัดแปลงมาจาก 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

สถานะของฉัน


2
นีซ, หลีกเลี่ยงการนี้จำเป็นที่จะต้องมีปลั๊กอินบรรทัดสถานะแฟนซี atleast สำหรับกรณีการใช้งานของฉัน, ขนมตา :)
Nishant

1
คุณจะทำให้สีทำงานได้อย่างไร?
trusktr

ฉันลองใส่มันหลังจากที่มีcolorschemeการตั้งค่า แต่ฉันเพิ่งเห็นสถานะแบบดูอัลโทน
trusktr

@trusktr ไม่ง่ายที่จะอธิบาย .... คุณต้องใส่ 2 บล็อกแรกในไฟล์ vimrc ของคุณและบล็อกสีในไฟล์ colorcheme ปัจจุบันของคุณ คุณสามารถค้นหาไฟล์ colorcheme ปัจจุบันของคุณด้วยคำสั่งนี้::colorscheme
Reman

1
การค้นหาไฮไลต์ของคุณจะสั้นลง (โดยไม่มีฟังก์ชั่นใด ๆ ) เพียงแค่ใช้ตัวดำเนินการแบบไตรภาคเช่นนี้ -> echo &hls ? 'H' : '' ในกรณีของฉัน:let &stl.="%6*%01(%{&hls?'H':''}%)%0* "
SergioAraujo

20

สิ่งที่ฉันพบว่ามีประโยชน์คือการรู้ว่า copy / paste buffer (register) ที่ใช้งานอยู่ในปัจจุบัน: %{v:register}. มิฉะนั้นบรรทัดสถานะที่สมบูรณ์ของฉันดูเหมือนเกือบจะเหมือนกับบรรทัดมาตรฐาน

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

2
ฉันว่าv:registerมันมีประโยชน์มากจริงๆ!
nperson325681

การลงทะเบียนใช้งานหมายความว่าอย่างไร ความเข้าใจที่ไม่ดีของฉันเกี่ยวกับการลงทะเบียนคือพวกมันเป็นคลิปบอร์ดเพื่อเก็บข้อความ
Roymunson

15

บางครั้งยิ่งน้อยลงคุณจำเป็นต้องรู้เปอร์เซ็นต์ของไฟล์ที่คุณกำลังเข้ารหัสอยู่หรือไม่? แล้วประเภทของไฟล์ล่ะ?

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

statusline

statusline

ฉันชอบสีที่น้อยที่สุดเพื่อไม่ให้หันเหความสนใจจากรหัส

นำมาจาก: https://github.com/krisleech/vimfiles

หมายเหตุ: rvm#statuslineเป็นทับทิมเฉพาะและfugitive#statuslineเป็น git เฉพาะ


1
+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

นี่คือของฉันให้เป็นข้อเสนอแนะ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.