Airlineプラグインのステータスバーシンボルを修正するにはどうすればよいですか?


64

下の図に示すように、カスタムステータスバーを表示するために、Airlineプラグインをインストールしました。

ここに画像の説明を入力してください

ただし、ステータスバーには記号<>>およびが表示され<ます。この問題を修正するにはどうすればよいですか?

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください


everythingfonts.com/otf-to-ttfを使用て、フォントをttfに変換します。例:古いXShellバージョンはotfをサポートしていません。
bhathiya-perera

互換性を最大限にするためにairline_powerline_fonts、私は省略します。私はそれらが本当にそんなに便利だとは思わない。
qwr

回答:


50

実際、あなたの質問が投票された理由がわかりません。正直なところ、私もこの見栄えの良いツールバーを得るために何をする必要があるのか​​理解していませんでした。はい、私はREADMEやその他のものについては知っていますが、ヘルプファイルにはgetting startedまたはminimum settingsセクションがあるはずです。

とにかくここに設定があります。

適切なフォントをインストールする

分岐、大きな三角形などの記号を使用してシステムにフォントをインストールする必要があります。これらは標準の記号ではないため、パッチを適用したフォントをインストールする必要があります。https://github.com/powerline/fontsで、多くのパッチが適用されたフォントを見つけることができます

.vimrc 設定

から:help airline-customization、このコードを.vimrcファイルに配置します。

" air-line
let g:airline_powerline_fonts = 1

if !exists('g:airline_symbols')
    let g:airline_symbols = {}
endif

" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '␤'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'

" airline symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''

unicode symbolsパッチが適用されたフォントを既に持っている場合、このセクションは不要ですが、適切なシンボルを持たない他のフォントを使用しようとすると、素晴らしいフォールバックが得られます。

フォント設定

ターミナルでVimを使用する場合は、ターミナルのプロファイル設定で適切なフォントに切り替える必要があります。

あなたがVimの(MacVim、gvimを)のGUIバージョンを使用する場合は、フォントを設定する必要があります.vimrcたとえば、: set guifont=DejaVu\ Sans:s12。詳細はこちらをご覧ください:help guifont


こんにちは、アレクサンダー。私は彼の指示に従ったが、それでも期待通りの結果が得られない:最初に電力線のサイトからフォントをインストールした。次に、.vimrcファイルで設定を行いました。私の.vimrcファイルはgist.github.com/geisonsn/641f13543b8b41fe2c12で共有されています。Vundleマネージャープラグインを使用しています。
ガイソンサントス

そのフォントをエディターにインストールしましたか?ターミナルでvimを使用する場合は、そのフォントをターミナルにインストールする必要があります。または、vimのguiバージョン(MacVim、GVim)を使用する場合は、.vimrc-fileでフォントを設定する必要がありますset guifont=DejaVu\ Sans:s12。詳細はこちらをご覧ください:help guifont
アレクサンダーミショフ

2
@AlexanderMyshovでは、2行ごとに2番目の行のみが必要な構成行が繰り返されています。
ビトー

1
ここにvi.stackexchangeでアカウントを作成して、あなたに感謝し、あなたのこの素晴らしい答えに賛成してください。何千回も検索してくれてありがとう。
0decimal0

1
開始または最小設定セクションがあるはずだと思います ...削除されるかどうかはわかりませんが、回答に基づいてvim-airline wikiにダミーガイドを追加しました。
icc97

12

READMEから:

電力線フォントとの統合

見栄えの良い電力線シンボルを表示するには、パッチを適用したフォントをインストールする必要があります。手順は、公式の電力線のドキュメントに記載されています。事前パッチされたフォントは、powerline-fontsリポジトリにあります。

最後に、let g:airline_powerline_fonts = 1vimrcにコンビニエンス変数を追加すると、g:airline_symbols辞書に電力線シンボルが自動的に入力されます。


1
それlet g:airline_powerline_fonts = 1だけでは不十分だと思いました。なんらかの理由で、これはまだ自動的に設定されませんでしたg:airline_symbolsので、Alexander Myshovの回答に従って手動で辞書を設定する必要がありました。
icc97

5

これを理解するのに何時間もかかったので、Fedora / UbuntuのダミーガイドをWindows用の特別なセクションとともに示します。

1つ目は、vim-airlineステータスバーに表示される奇妙な、しかし素晴らしい山かっこが一体何なのかを理解することです。背景は、航空会社は純粋なvimバージョンの電力線(これはpython)であり、電力線はUTF-8文字を使用してこれらの山かっこを挿入することです。したがって、vim-airlineは同じUTF-8文字を使用するだけです。

フォントをインストールできたとしても、フォントが完全に機能しないため、期待よりも見栄えが悪くなります。

Vimの構成

これは公式の指示と反対ですが、最後にこの少し間違っていたため、すべてのフォントのインストールに疑問が生じました。したがって、まずこれを設定してから、フォントが機能するようになったら魔法のように表示されるはずです。

最後のトリックは、vim-airlineが必要なフォントを使用するように強制することでした。で公式ドキュメントそれだけで追加する必要がありますlet g:airline_powerline_fonts = 1あなたに.vimrc。しかし、私はこれを行いましたが、運はありません。より多くの情報が:help airline-customizationあり、念のため、必要ないくつかの簡単な構成設定を提供します。これが最終的な魔法のソースでした。これがなぜ自動的に作成されなかったのかはわかりません。Alexander Myshovの承認済み回答に記載されている設定をここにコピーして貼り付けます。

FedoraとUbuntuでそれを沈めるキッチン

これはおそらく過剰な解決策ですが、単純化する前に一貫して機能させる必要があります。

  1. 一般的な電力線フォントsudo dnf install powerline-fonts(またはsudo apt install fonts-powerline)をインストールします-これは、インストール済みの任意のフォントを使用できることを意味するはずです。dnf / aptのような簡単なインストール方法がない場合は、https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-andなどのように手動でインストールする手順があります。 -bash /、公式ドキュメントにも指示があります(https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation)。

    次に、端末を再度閉じて、端末の設定を編集してカスタムフォントを設定した場合に、Powerlineシンボルフォントが使用できることを確認します。フォントを直接使用したくない場合は、使用できることを確認してください。Vimを開いて、素敵なシンボルがあるかどうかを確認してください。

  2. 一般的な電力線フォントが機能しなかった場合、または改善を試みている場合は、個々の「パッチを適用した」フォントをインストールしてみてください。これを理解するにはしばらく時間がかかりましたが、httpsで目的のフォルダーに移動できます: //github.com/powerline/fonts/をダウンロードして、テストで最も気に入ったフォントSource Code Proパッチが適用されたフォントです。次に、ダウンロードしたフォントファイルを開き、[インストール]をクリックします。

    コマンドラインを使用したい場合は、パッチを適用したすべてのフォントをインストールできます

     $ git clone https://github.com/powerline/fonts.git --depth=1
     $ fonts/install.sh
     $ rm -rf fonts
    

    これにより、パッチが適用されたすべてのモノフォントがインストールされますが、これにより可能性のあるフォントを調べることができます。インストールされるフォントリストは、利用可能なソースコードフォントの非常に素晴らしいリストです。また、含まれる個々のフォントをインストールする必要はありません。

  3. フォントが端末設定で指定できることを確認し、フォントが見つからない場合は端末セッションを再度開きます。ここには2つのオプションがあることに注意してください。
    1. 一般的な電力線フォントが機能している場合は、DejaVu Sans Monoなどのベースフォントを使用できます。
    2. 動作しない場合は、上記でダウンロードしたパッチを適用したフォントが正しいはずです。たとえば、DejaVuに相当するものは「DejaVu Sans Mono for Powerline」です。

Linuxの調整

初めて実際に動作するようになったら、アイコンが完全に一致しなかったので本当に残念でした。しかし、よくある質問によると、調整が必要です。Inconsolataから始めました。これにより、WindowsとLinuxで一貫したフォントが得られるからです。apt install fonts-inconsolataこれを使ってUbuntuに一般的なフォントを簡単にインストールできます。

ここに画像の説明を入力してください

矢印が大きすぎて、shiftedい方法で上に移動します。

次に、他のすべてのデフォルトのUbuntuフォントを試しました。

Ubuntuモノ:

ここに画像の説明を入力してください

DejaVu Sans Mono:

ここに画像の説明を入力してください

これは垂直方向の位置は正しいが、右側の矢印の後にスペースがあります。

パッチを適用したフォントを使用する理由

デフォルトのフォントの使用は、既存のフォントに自動的にパッチを適用するために、Powerlineフォントに依存しています。ただし、パッチを適用したフォントを使用すると、航空会社のシンボルの外観を改善できます。これらは、パッチを適用したフォントを使用した同等のものです。

大きなフォントを使用したいので、これらをすべてフォントサイズ16で表示します。さらに、小さな問題が表示されます。

Inlinesolata for Powerline:

ここに画像の説明を入力してください

これにはまだ問題がありますが、ほとんどすべてがdzバリエーションによって解決されます。

Powerline dzのInconsolata-dz:

ここに画像の説明を入力してください

これは右側の矢印に生え際骨折がありますが、それ以外は完璧です。

Ubuntu Mono派生Powerline Regular:

ここに画像の説明を入力してください

これにはまだ迷惑な問題があります。

電力線帳用のDejaVu Sans Mono:

ここに画像の説明を入力してください

これは右側の矢印に生え際骨折がありますが、それ以外は完璧です。LNアイコンの方が読みやすいので、実際にはInconsolata-dzよりも好きです。

これらのレギュラーに加えて、私はほとんどすべての利用可能なフォントを試してみましたが、私のもう1つのお気に入りはSource Code Proでした。

Powerline Mediumのソースコードプロ

ここに画像の説明を入力してください

これには、矢印が大きすぎるサイズ16で問題がありますが、サイズ14ではほとんど目立ちません。ブランチとLNのアイコンは一番下までオーバーフローしますが、どういうわけかこれは私を悩ませません。

Powerline Lightのソースコードプロ

ここに画像の説明を入力してください

これにより、中程度のフォントの矢印サイズの問題がほぼ完全に解決され、アイコンオーバーフローはまだありますが、ほぼ完璧になります。

ソースコードプロ

フォントのオプションを調査していたときに気づいたことがいくつかありますが、一部のフォントパッチには詳細が絶対的に最小限のものがあります。これをSource Code Proリストと比較すると、非常に重要です。Source Code Proは非常に詳細で完全なフォントであり、広範囲のシナリオで機能すると考えられています。この種の完全性は、エッジケースにとって重要です。

パッチを適用したフォントとして使用すると、vim-airlineバーをほぼ完全に表示します。非常に多くの選択肢の利点は、vim-airlineバーの表示がさらに改善されたライトフォントの使用です。

Source Code Proは、AdobeのGithubリポジトリで継続的にオープン開発されています

Windowsの繊細な花の処理(GVimを想定)

Powerline FontはWindowsでは機能しないため、唯一の選択肢はパッチを適用したフォントを使用することです。また、すべてのフォントをインストールするbashスクリプトは機能しません。したがって、同じことをする必要がありますがgit clone、個々のディレクトリに移動して、必要なフォントをインストールします。

Source Code Proのパッチが適用されたすべてのフォントをダウンロードしてインストールしました。それらを個別のフォントとしてインストールしても、重量を指定する個別の属性を持つ単一のフォント「Powerlineのソースコードプロ」としてWindowsに追加されます。

次に(GVimを想定して)これをあなたのに追加します.vimrc

set guifont=Source\ Code\ Pro\ for\ Powerline:h15:cANSI

「Light」フォントを使用する場合は、これを使用します。

set guifont=Source_Code_Pro_Light:h15:cANSI

「for Powerline」を含める必要がないため、あまり意味がありませんが、それはどのように機能するのですか(GVimでフォントを設定し、set guifont?GVimが使用したものを確認するために使用することでそれを見つけました)。また、GVimを使用してフォントを切り替えると、フォントのレンダリングがあまり良くないことを発見しました。GVimメニューを使用して切り替えるとひどくレンダリングされたため、最初はLightフォントを割引きましたが、以下を.vimrcGVimに追加してGVimを再起動すると見栄えがよくなります。

また、良い点は、DOS / Powershellプロンプトを同じフォントに設定できることです。次に、パッチを適用したフォントを使用して、DOS内の通常のVimでPowerlineを動作させることもできます。

あなたが私を信じていない場合、ここではPowershellのVimで動作しています:

ここに画像の説明を入力してください

ここに画像の説明を入力してください


3

Vimの再インストール後も同じ問題が発生しました。古いパッチが適用されたフォントは、新しい航空会社のシンボルと互換性がありませんでした。

古いシンボルは、ヘルプ(:help airline-customization)にも記載されています。

" old vim-powerline symbols
let g:airline_left_sep = '⮀'
let g:airline_left_alt_sep = '⮁'
let g:airline_right_sep = '⮂'
let g:airline_right_alt_sep = '⮃'
let g:airline_symbols.branch = '⭠'
let g:airline_symbols.readonly = '⭤'
let g:airline_symbols.linenr = '⭡'

これらの行をvimrcに追加すると、すべてがうまくいきました。


賛成!現在のところ、私にとっては最高です。これらのシンボルだけが少し高いです
-ryenus

1
最初に辞書を定義する必要があります。let g:airline_symbols = {}
PerseP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.