Eine nützlichere Statuszeile in vim? [geschlossen]

150

Ich möchte meine Statuslinie in vim informativer und interessanter gestalten, und dafür brauche ich einige Ideen. Wie haben Sie Ihre Statuslinie angepasst?

sica07
quelle
5
@paxdiablo: Manchmal lohnt es sich, die Zeit für die Konfiguration des Tools nach Ihren Wünschen zu verwenden, damit Sie es besser nutzen und so Zeit bei der Arbeit sparen können.
DarkDust
10
Dies sollte ein Community-Wiki sein, da es keine richtige Antwort gibt.
Randy Morris
3
Hier geht es weniger um Meinungen als vielmehr darum, die Erfahrung und das Fachwissen von mehr gelehrten Personen zu nutzen. Der Fragesteller sucht nach Informationen, die er nicht erraten kann, und bittet nicht darum, dass Einzelpersonen um das Beste konkurrieren. Antworten generieren eine Reihe von Optionen, die er zuvor nicht hatte. Nur weil eine Frage mehr als eine Antwort hat, heißt das nicht, dass es sich nicht um eine auf technischem Fachwissen basierende Frage handelt. Diese Frage passt gut zum SO-Format und sollte offen bleiben.
NeilG

Antworten:

134

Bearbeiten:-

Hinweis: Vim-Airline gewinnt als neue Vimscript-Option an Bedeutung, da Powerline auf Python umgestellt wurde.


Scheint, Powerline ist, wo es in diesen Tagen ist: -

Normale Statuszeile

Stromleitung

Benutzerdefinierte Statuszeilen für andere Plugins (z. B. Strg )

Stromleitung

Gavin Gilmour
quelle
3
@ Gavin, wie kann ich zu Ihren Stromleitungssegmenten wechseln? Könnten Sie einige Standard-Segmentänderungsskripte aktualisieren? Prost
Jerry Gao
@ Gavin Ich würde mich auch freuen, wenn Sie uns mitteilen könnten, wie Sie Dinge wie Ihre Niederlassung in vim-powerline aufgenommen haben
Eric Hu
1
Es wurde nichts Besonderes getan von: github.com/Lokaltog/vim-powerline#troubleshooter Stellen Sie einfach sicher, dass Sie "let g: Powerline_symbols = 'fantasie'" in Ihrer vimrc-Datei haben und gepatchte Schriftarten installiert haben.
Gavin Gilmour
Dies ist ein schönes Plugin. Aber meine Bildlaufleistung beim ersten Öffnen einer Datei ist aus diesem Grund sehr, sehr schlecht.
Ahmed Aeon Axan
2
@AhmedAeonAxan versuchen Fluggesellschaft, es startet schnell (reines Vimscript). Das Einrichten ist viel einfacher, insbesondere mit Vundle oder Pathogen. Und sobald Sie die Powerline-Schriftart installiert haben, sieht sie mehr oder weniger wie eine Fluggesellschaft aus. github.com/Lokaltog/powerline-fonts
schneebedeckt
59

Hier ist meins:

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 statusline

Und hier sind die Farben, die ich verwendet habe:

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
Tassos
quelle
1
c ist eigentlich die Byteanzahl, auch wenn sie manchmal auch in der vim-Hilfe als Spaltenanzahl bezeichnet wird. Sie können v verwenden, um zu ermitteln, was normalerweise unter Spaltennummer zu verstehen ist.
Ludwig Weinzierl
Danke @Ludwig, ich habe es nicht bemerkt. Ich werde die Antwort bearbeiten.
Tassos
8
Ich mag die Klarheit des Kommentierens jedes angehängten Werts in einer eigenen Zeile. Wenn ich das vor 7 Jahren getan hätte, hätte ich es bei meiner letzten sauberen Betriebssysteminstallation nicht weggeworfen.
Bruno Bronosky
Sweeet! Eine Sache, die mir dabei fehlt, ist die Linie, die die geteilte Sitzung trennt
Julio Marins
1
@trusktr Beachten Sie, dass guifgund guibgsind für gvim. Wenn Sie mit vimin einem Terminal, versuchen ctermfgund ctermbgstattdessen. Sie benötigen auch verschiedene Farben, die Nummern 1-16 oder 1-256, je nachdem, wie viele Farben Sie in vim aktiviert haben. Entsprechende Farben für jede Nummer.
Joelostblom
45

Dies ist die, die ich benutze:

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.

Markieren auf? Funktion:

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

Farben (angepasst von 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

Meine StatusLine

Reman
quelle
2
Schön, dies vermeidet die Notwendigkeit, die ausgefallenen Statuszeilen-Plugins zumindest für meinen Anwendungsfall, Augenweide, zu haben :)
Nishant
1
Wie bringen Sie die Farben zum Laufen?
Trusktr
Ich habe versucht, dies zu setzen, nachdem eines colorschemefestgelegt wurde, aber ich sehe nur eine zweifarbige Statuszeile.
Trusktr
@trusktr, nicht einfach zu erklären .... Sie müssen die ersten 2 Blöcke in Ihre vimrc-Datei und den Farbblock in Ihre aktuelle Farbschemadatei einfügen. Sie können Ihre aktuelle Farbschemadatei mit diesem Befehl finden::colorscheme
Reman
1
Ihre Suche nach Highlights wäre kürzer (ohne Funktion), wenn Sie nur einen ternären Operator wie diesen verwenden -> echo &hls ? 'H' : '' in meinem Fall:let &stl.="%6*%01(%{&hls?'H':''}%)%0* "
SergioAraujo
20

Was ich nützlich gefunden habe, ist zu wissen, welcher Kopier- / Einfügepuffer (Register) derzeit aktiv ist : %{v:register}. Ansonsten sieht meine vollständige Statuszeile fast genauso aus wie die Standardzeile.

:set statusline=%<%f\ %h%m%r\ %y%=%{v:register}\ %-14.(%l,%c%V%)\ %P
DarkDust
quelle
2
Das v:registersieht in der Tat sehr nützlich aus!
nperson325681
Was bedeutet es für ein Register, aktiv zu sein? Mein (schlechtes) Verständnis von Registern ist, dass es sich im Grunde genommen um Zwischenablagen zum Speichern von Text handelte.
Roymunson
14

Manchmal ist weniger mehr. Müssen Sie wirklich den Prozentsatz der Datei kennen, die Sie beim Codieren verwenden? Was ist mit dem Dateityp?

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

Statuszeile

Statuszeile

Ich bevorzuge auch minimale Farben, um nicht vom Code abzulenken.

Entnommen aus: https://github.com/krisleech/vimfiles

Hinweis: rvm#statuslineIst Ruby-spezifisch und fugitive#statuslineGit-spezifisch.

Kris
quelle
+1 für git bezogene Statuslinie
Patrick
3

Ich verwende derzeit diese Einstellungen in der Statusleiste:

set laststatus=2
set statusline=\ %f%m%r%h%w\ %=%({%{&ff}\|%{(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\",B\":\"\")}%k\|%Y}%)\ %([%l,%v][%p%%]\ %)

Meine vollständige .vimrc-Datei: http://gabriev82.altervista.org/projects/vim-configuration/

gabriev82
quelle
1

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

Das ist meins, gib als Vorschlag

winterTTr
quelle