vimでより便利なステータスライン?[閉まっている]


150

vimでステータスラインをより有益で興味深いものにしたいので、いくつかのアイデアが必要です。ステータスラインをどのようにカスタマイズしましたか?


5
@paxdiablo:必要に応じてツールを構成し、作業時間を節約できるように時間を費やす価値がある場合があります。
DarkDust

10
正解がないため、これはコミュニティーwikiである必要があります。
ランディモリス

3
これは、より多くの学習者の経験と専門知識を活用するほどの意見についてではありません。質問者は、自分が推測できない情報を探しており、個人に最良のものについて競争するように求めていません。Answersは、以前にはなかった多くのオプションを生成します。質問に複数の回答があるからといって、それが技術的な専門知識に基づく質問ではないという意味ではありません。この質問はSO形式によく当てはまるため、未解決のままにしておく必要があります。
NeilG

回答:


134

編集:-

powerlineがpythonになったため、vim-airlineが新しいvimscriptオプションとしてある程度の注目を集めていることに注意してください。


思わ電力線が、それは、これらの日である場合です: -

通常のステータスライン

パワーライン

他のプラグイン(ctrlpなど)のカスタマイズされたステータス行

パワーライン


3
@Gavinどうすれば電力線セグメントに変更できますか?デフォルトのセグメント変更スクリプトを更新できますか?乾杯
Jerry Gao

@Gavin Iも、ブランチのようなものをvim-powerlineにどのように組み込んだかを共有していただければ幸いです
Eric Hu

1
github.com/Lokaltog/vim-powerline#troubleshootingからの特別な処理はありません。vimrcファイルに「let g:Powerline_symbols = 'fancy'」があり、パッチを適用したフォントがインストールされていることを確認してください。
Gavin Gilmour、2012

これは素晴らしいプラグインです。しかし、ファイルを最初に開いたときのスクロールパフォーマンスは、このため非常に悪いです。
Ahmed Aeon Axan 2013

2
@AhmedAeonAxanは航空会社を試して、それは速く開始します(純粋なvimscript)。また、特にVundleまたはPathogenを使用すると、セットアップにかかる労力が大幅に軽減されます。一度パワーラインフォントをインストールすると、多かれ少なかれ航空会社のように見えます。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 Weinzierl 2012年

@Ludwigに感謝します。気づきませんでした。答えを編集します。
Tassos 2012年

8
独自の行に追加された各値にコメントすることの明快さが大好きです。7年前にそれを行っていたとしたら、最後のクリーンOSインストールを行ったときにそれを捨てなかっただろう。
Bruno Bronosky 2013年

スウィート!私はこれを使用して、不足していることの一つはsplitedセッションを区切るラインである
フリオ・マリーンズ

1
@trusktr guifgguibgはのためのものgvimです。vim端末で実行している場合はctermfgctermbg代わりに試してください。また、vimで有効にした色の数に応じて、1〜16または1〜256の数の異なる色が必要になります。各番号に対応する色
joelostblom 2017

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
いいですね、これは私のユースケースに素晴らしいファンシーステータスラインプラグインを用意する必要をなくします。目の保養です:)
Nishant

1
どのようにして色を機能させますか?
trusktr 2017

何かcolorschemeを設定した後でこれを入れてみましたが、デュアルトーンのステータスラインしか表示されません。
trusktr 2017

@trusktr、説明するのは簡単ではありません.... vimrcファイルに最初の2つのブロックを置き、現在のcolorschemeファイルにcolorsブロックを置く必要があります。:このコマンドを使用して、現在のカラースキームファイルを見つけることができます: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 2011年

レジスタがアクティブになるとはどういう意味ですか?レジスターに対する私の(悪い)理解は、それらは基本的にテキストを格納するためのクリップボードであったということです。
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()}       

ステータスライン

ステータスライン

また、コードの邪魔にならないように、最小限の色を好みます。

次から取得:https : //github.com/krisleech/vimfiles

注:rvm#statuslineRuby固有でfugitive#statuslinegit固有です。


1
git関連のステータスラインの+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.