Більш корисна лінія стану в vim? [зачинено]


150

Я хотів би зробити свій статус in vim більш інформативним та цікавим, і для цього мені потрібні деякі ідеї. Як ви налаштували свою статусну лінію?


5
@paxdiablo: Іноді варто витратити час на налаштування інструменту під свої потреби, щоб ви могли краще використовувати його і тим самим заощадити час під час роботи.
DarkDust

10
Це має бути вікі спільноти, оскільки немає правильної відповіді.
Ренді Морріс

3
Мова йде не про думки не стільки, скільки для використання досвіду та досвіду більш вивчених людей. Запитуючий шукає інформацію, яку він не здогадується, не просить людей змагатися за те, що найкраще. Відповіді дадуть змогу створити ряд варіантів, яких у нього раніше не було. Тільки тому, що запитання має більше, ніж одна відповідь, не означає, що це не питання, засноване на технічній експертизі. Це питання добре відповідає формату SO і має залишатися відкритим.
NeilG

Відповіді:


134

Редагувати: -

Зауважте, vim-airline набирає деякої тяги як новий варіант vimscript, оскільки лінія електропередач пішла пітон.


Здається, лінія електропередач саме там, де вона є сьогодні: -

Нормальний рядок статусу

лінія електропередач

Індивідуальні рядки стану для інших плагінів (наприклад, ctrlp )

лінія електропередач


3
@Gavin, як я можу змінити ваші сегменти лінії електропередач? Ви могли б оновити деякі сценарії модифікації сегмента за замовчуванням? ура
Джеррі Гао

@Gavin Я також вдячний, якщо ви могли б поділитися тим, як ви включили такі речі, як ваша філія в vim-powerline
Ерік Ху

1
Нічого особливого не зроблено, з: github.com/Lokaltog/vim-powerline#troubleshooting, просто переконайтеся, що у вашому файлі vimrc "нехай g: Powerline_symbols = 'fancy" і встановлені патч-шрифти.
Гевін Гілмор

це гарний плагін. Але моя прокрутка, коли я вперше відкриваю файл, дуже погана через це.
Ахмед Еон Аксан

2
@AhmedAeonAxan спробуйте авіакомпанію, вона починається швидко (чистий vimscript). І потребує менших зусиль для налаштування, особливо з Vundle або Pathogen. І як тільки ви встановите шрифт Powerline, він більш-менш схожий на авіакомпанію. github.com/Lokaltog/powerline-fonts
снігопад

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

статус vim

А ось кольори, які я використав:

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. Ви можете використовувати v, щоб отримати те, що зазвичай означає номер стовпця.
Людвіг Вайнцерль

Дякую @Ludwig, я цього не помічав. Я відредагую відповідь.
Тассос

8
Мені подобається чіткість коментування кожного доданого значення у його власному рядку. Якби я це робив 7 років тому, я б не викинув його, коли зробив останню чисту установку ОС.
Бруно Броноський

Солодощі! Одне, чого мені не вистачає при використанні цього, - це лінія, яка розділяє розбиту сесію
Julio Marins

1
@trusktr Зауважте, що guifgі guibgдля gvim. Якщо ви працюєте vimв терміналі, спробуйте ctermfgі ctermbgзамість цього. Також вам знадобляться різні кольори, цифри 1-16 або 1-256, залежно від того, скільки кольорів ви ввімкнули в vim. Відповідні кольори для кожного номера.
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

Мій статусLine


2
Приємно, це дозволяє уникнути необхідності мати пристосовані плагіни строкових статусів якнайменше для мого випадку використання, очей цукерки :)
Nishant

1
Як змусити кольори працювати?
trusktr

Я спробував поставити це після встановлення будь- colorschemeякого, але я просто бачу двоколірний статус.
trusktr

@trusktr, Нелегко пояснити .... Вам потрібно покласти перші два блоки у ваш файл vimrc, а колір кольорів у вашому поточному файлі схеми кольорів. Ви можете знайти свій поточний файл кольорової схеми з цією командою::colorscheme
Реман

1
Ваш найголовніший пошук був би коротшим (без будь-якої функції), просто використовуючи такий потрійний оператор -> echo &hls ? 'H' : '' в моєму випадку:let &stl.="%6*%01(%{&hls?'H':''}%)%0* "
SergioAraujo

20

Те , що я знайшов корисним, щоб знати , які копіювати / вставити буфер (реєстр) в даний час активний: %{v:register}. В іншому випадку мій повний рядок статусу виглядає майже точно як стандартний рядок.

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

2
Моє, це v:registerсправді виглядає дуже корисно!
nperson325681

Що означає активний реєстр? Моє (погане) розуміння реєстрів полягає в тому, що вони в основному були буферами для зберігання тексту.
Роймунсон

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

статус лінії

статус лінії

Я також вважаю за краще мінімальний колір, щоб не відволікатися від коду.

Взято з: https://github.com/krisleech/vimfiles

Примітка: rvm#statuslineспецифічний для Ruby і fugitive#statuslineспецифічний для git.


1
+1 для статусу, пов’язаного з git
Патрік


1

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

Це моє, дайте як пропозицію

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.