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?
@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
Benutzerdefinierte Statuszeilen für andere Plugins (z. B. Strg )
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
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
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.
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
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.
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()}
Ich bevorzuge auch minimale Farben, um nicht vom Code abzulenken.
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%%]\ %)
Antworten:
Scheint, Powerline ist, wo es in diesen Tagen ist: -
Normale Statuszeile
Benutzerdefinierte Statuszeilen für andere Plugins (z. B. Strg )
quelle
Hier ist meins:
Und hier sind die Farben, die ich verwendet habe:
quelle
guifg
undguibg
sind fürgvim
. Wenn Sie mitvim
in einem Terminal, versuchenctermfg
undctermbg
stattdessen. 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.Dies ist die, die ich benutze:
Markieren auf? Funktion:
Farben (angepasst von ligh2011.vim):
quelle
colorscheme
festgelegt wurde, aber ich sehe nur eine zweifarbige Statuszeile.:colorscheme
echo &hls ? 'H' : ''
in meinem Fall:let &stl.="%6*%01(%{&hls?'H':''}%)%0* "
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.quelle
v:register
sieht in der Tat sehr nützlich aus!Manchmal ist weniger mehr. Müssen Sie wirklich den Prozentsatz der Datei kennen, die Sie beim Codieren verwenden? Was ist mit dem Dateityp?
Ich bevorzuge auch minimale Farben, um nicht vom Code abzulenken.
Entnommen aus: https://github.com/krisleech/vimfiles
Hinweis:
rvm#statusline
Ist Ruby-spezifisch undfugitive#statusline
Git-spezifisch.quelle
Ich verwende derzeit diese Einstellungen in der Statusleiste:
Meine vollständige .vimrc-Datei: http://gabriev82.altervista.org/projects/vim-configuration/
quelle
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
quelle