Làm cách nào để sửa các ký hiệu trên thanh trạng thái trong plugin Airline?


64

Tôi đã cài đặt plugin Airline để có thanh trạng thái tùy chỉnh, như trong hình bên dưới:

Nhập mô tả hình ảnh ở đây

Tuy nhiên, thanh trạng thái của tôi đang trình bày các biểu tượng <, >><. Làm sao để sửa lỗi này?

Nhập mô tả hình ảnh ở đây

Nhập mô tả hình ảnh ở đây

Nhập mô tả hình ảnh ở đây


Sử dụng everythingfonts.com/otf-to-ttf để chuyển đổi phông chữ để ttf, Ví dụ: các phiên bản cũ hơn Xshell không hỗ trợ OTF.
bhathiya-perera

Để tương thích tối đa tôi bỏ airline_powerline_fontsđi. Tôi không nghĩ rằng chúng thực sự hữu ích.
qwr

Câu trả lời:


50

Thật ra tôi không hiểu tại sao câu hỏi của bạn lại được bình chọn. Thành thật lúc đầu tôi cũng không hiểu những gì cần phải làm để có được thanh công cụ đẹp mắt này. Có, tôi biết về README và những thứ khác, nhưng tôi nghĩ nên có một getting startedhoặc một minimum settingsphần trong tệp trợ giúp.

Dù sao ở đây là các cài đặt.

Cài đặt phông chữ phù hợp

Bạn cần cài đặt phông chữ vào hệ thống của mình bằng các ký hiệu như phân nhánh, hình tam giác lớn, v.v ... Chúng không phải là ký hiệu chuẩn nên bạn cần cài đặt phông chữ được vá. Bạn có thể tìm thấy rất nhiều phông chữ được vá ở đây: https://github.com/powerline/fonts .

.vimrc cài đặt

Từ :help airline-customization, đặt mã này vào tệp .vimrc của bạn:

" 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 = ''

Phần unicode symbolsnày là không cần thiết ở đây nếu bạn đã có một phông chữ được vá nhưng nó cung cấp cho bạn một bản dự phòng đẹp nếu bạn cố gắng sử dụng các phông chữ khác không có các ký hiệu phù hợp.

Cài đặt phông chữ

Nếu bạn sử dụng Vim trong thiết bị đầu cuối, bạn nên chuyển sang phông chữ phù hợp trong tùy chọn cấu hình của thiết bị đầu cuối.

Nếu bạn sử dụng phiên bản gui của Vim (MacVim, GVim), bạn cần đặt phông chữ .vimrc, ví dụ : set guifont=DejaVu\ Sans:s12. Bạn có thể tìm thêm thông tin ở đây :help guifont.


Xin chào, Alexander. Tôi đã làm theo hướng dẫn của anh ấy, nhưng vẫn không thể có được kết quả như mong đợi: lúc đầu đã cài đặt các phông chữ từ trang web của đường dây điện. Sau đó, tôi đã thực hiện các cài đặt trong tệp .vimrc. Tệp .vimrc của tôi đã được chia sẻ trong gist.github.com/geisonsn/641f13543b8b41fe2c12 . Tôi đang sử dụng plugin quản lý Vundle.
Geison Santos

Bạn đã cài đặt phông chữ đó trong trình soạn thảo của bạn? Nếu bạn sử dụng vim trong thiết bị đầu cuối, bạn nên cài đặt phông chữ đó trong thiết bị đầu cuối hoặc nếu bạn sử dụng phiên bản gui của vim (MacVim, GVim), bạn cần đặt phông chữ trong .vimrc-file, ví dụ : set guifont=DejaVu\ Sans:s12. Thêm thông tin bạn có thể tìm thấy ở đây :help guifont.
Alexander Myshov

2
@AlexanderMyshov bạn có các dòng cấu hình lặp lại, trong đó chỉ có thứ hai trong mỗi hai là bắt buộc.
Vitor

1
Chỉ cần tạo một tài khoản ở đây tại vi.stackexchange để cảm ơn bạn và nêu lên câu trả lời tuyệt vời này của bạn. Cảm ơn đã giúp tôi giảm hàng ngàn tìm kiếm.
0decimal0

1
Tôi nghĩ rằng nên có phần bắt đầu hoặc phần cài đặt tối thiểu ... Tôi không biết liệu nó có bị xóa hay không, nhưng tôi đã thêm Hướng dẫn giả cho wiki vim-hãng hàng không dựa trên câu trả lời của tôi .
icc97

12

Từ README :

Tích hợp với phông chữ powerline

Để các biểu tượng powerline trông đẹp mắt xuất hiện, bạn sẽ cần phải cài đặt một phông chữ được vá. Hướng dẫn có thể được tìm thấy trong các tài liệu powerline chính thức . Phông chữ có thể được tìm thấy trong kho lưu trữ phông chữ powerline .

Cuối cùng, bạn có thể thêm biến tiện lợi let g:airline_powerline_fonts = 1vào vimrc của mình, nó sẽ tự động điền g:airline_symbolstừ điển với các ký hiệu powerline.


1
Tôi thấy điều đó let g:airline_powerline_fonts = 1là không đủ. Vì một số lý do, điều này vẫn không tự động điền vào g:airline_symbols, vì vậy tôi phải tự điền từ điển theo câu trả lời của Alexander Myshov .
icc97

5

Điều này đã mất nhiều giờ để tìm ra, vì vậy đây là một hướng dẫn giả cho Fedora / Ubuntu, với một phần đặc biệt dành cho Windows.

Đầu tiên là tìm ra cái quái gì là những dấu ngoặc góc lạ nhưng đẹp xuất hiện trên thanh trạng thái của hãng hàng không vim. Bối cảnh là hãng hàng không là một phiên bản thuần túy của powerline (là python) và powerline sử dụng các ký tự UTF-8 để chèn các dấu ngoặc góc đó. Vì vậy, vim-Airlines chỉ sử dụng cùng các ký tự UTF-8.

Sau đó, ngay cả khi bạn quản lý để có được một cài đặt, chúng trông xấu hơn bạn mong đợi vì các phông chữ không hoạt động đầy đủ.

Cấu hình Vim

Điều này trái ngược với hướng dẫn chính thức nhưng cuối cùng tôi đã có một chút sai khiến tôi nghi ngờ tất cả các cài đặt phông chữ. Vì vậy, tôi khuyên bạn nên cấu hình cái này trước và sau đó nếu bạn làm cho phông chữ hoạt động thì nó sẽ xuất hiện một cách kỳ diệu.

Thủ thuật cuối cùng là buộc vim-air sử dụng các phông chữ cần thiết. Trong tài liệu chính thức, nó chỉ nên được thêm let g:airline_powerline_fonts = 1vào .vimrc. Tuy nhiên tôi đã làm điều này và không có may mắn. Có thêm thông tin :help airline-customizationvà cung cấp cho bạn một số cài đặt cấu hình đơn giản mà bạn cần, chỉ trong trường hợp. Đây là nước sốt ma thuật cuối cùng mà tôi cần. Tôi không biết tại sao điều này không được tạo tự động. Sao chép và dán các cài đặt được đề cập trong câu trả lời được chấp nhận của Alexander Myshov tại đây .

Bếp chìm nó trên Fedora và Ubuntu

Đây có lẽ là một giải pháp quá mức, nhưng trước tiên bạn cần làm cho nó hoạt động ổn định trước khi bạn có thể đơn giản hóa nó.

  1. Cài đặt phông chữ powerline chung sudo dnf install powerline-fonts(hoặc sudo apt install fonts-powerline) - điều này có nghĩa là bạn có thể sử dụng bất kỳ phông chữ nào bạn đã cài đặt. Nếu bạn không có cách cài đặt dễ dàng như dnf / apt thì sẽ có hướng dẫn cách thực hiện thủ công, ví dụ: https://www.tecmint.com/powerline-adds-powerful-statuslines-and-prompts-to-vim-and -bash / , cũng là tài liệu chính thức có hướng dẫn ( https://powerline.readthedocs.io/en/latest/installation/linux.html#fonts-installation ).

    Bây giờ hãy đóng lại thiết bị đầu cuối của bạn và kiểm tra xem phông chữ biểu tượng Powerline có khả dụng không nếu bạn chỉnh sửa tùy chọn thiết bị đầu cuối và đặt phông chữ tùy chỉnh. Bạn không muốn sử dụng phông chữ trực tiếp, chỉ cần kiểm tra xem nó có sẵn không . Bây giờ hãy thử mở Vim và xem nếu bạn có biểu tượng đẹp.

  2. Nếu phông chữ đường dây chung không hoạt động hoặc nếu bạn đang cố gắng cải thiện những thứ bạn có thể thử cài đặt phông chữ 'vá' riêng lẻ, thì điều này sẽ mất một lúc để tìm ra, nhưng bạn có thể chỉ cần vào thư mục bạn muốn trong https: //github.com/powerline/fonts/ và tải xuống, phông chữ mà tôi thích nhất từ ​​các thử nghiệm của mình là phông chữ được vá Mã nguồn Pro . Sau đó, chỉ cần mở tệp phông chữ đã tải xuống và nhấp vào 'Cài đặt'.

    Nếu bạn thích dòng lệnh hơn, bạn có thể cài đặt tất cả các phông chữ được vá :

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

    Điều này sẽ cài đặt tất cả các phông chữ đơn được vá, nhưng sau đó điều này cho bạn cơ hội khám phá các phông chữ có thể. Danh sách phông chữ mà nó cài đặt là một danh sách khá tuyệt vời về các phông chữ mã nguồn có sẵn. Điều đó cũng có nghĩa là bạn không cần phải loay hoay cài đặt từng phông chữ riêng lẻ được đưa vào.

  3. Kiểm tra xem phông chữ có thể được chỉ định trong tùy chọn thiết bị đầu cuối, mở lại phiên cuối của thiết bị nếu bạn thiếu phông chữ, vì vậy lưu ý có thể có hai tùy chọn ở đây:
    1. Phông chữ powerline chung đang hoạt động trong trường hợp bạn chỉ có thể sử dụng phông chữ cơ bản, ví dụ DejaVu Sans Mono
    2. Nếu bạn không thể sử dụng phông chữ được vá mà bạn đã tải xuống ở trên thì phải chính xác, ví dụ như tương đương với DejaVu là 'DejaVu Sans Mono cho Powerline'.

Tinh chỉnh Linux

Khi tôi thực sự làm cho nó hoạt động lần đầu tiên, điều đó thực sự đáng thất vọng vì các biểu tượng không khớp hoàn toàn. Nhưng theo Câu hỏi thường gặp, chúng tôi cần thực hiện một số điều chỉnh. Tôi bắt đầu với Inconsolata vì điều này mang lại cho tôi một phông chữ nhất quán trên Windows và Linux. Bạn có thể cài đặt phông chữ chung dễ dàng trên Ubuntu với apt install fonts-inconsolataĐây là những gì tôi có:

nhập mô tả hình ảnh ở đây

Các mũi tên quá lớn và được chuyển lên một cách xấu xí.

Sau đó, tôi đã thử tất cả các phông chữ Ubuntu mặc định khác.

Ubuntu đơn sắc:

nhập mô tả hình ảnh ở đây

DejaVu Sans Mono:

nhập mô tả hình ảnh ở đây

Điều này có vị trí thẳng đứng chính xác nhưng mũi tên bên tay phải có một khoảng trống sau chúng.

Tại sao bạn sử dụng phông chữ được vá

Sử dụng các phông chữ mặc định dựa trên phông chữ Powerline để tự động vá các phông chữ hiện có. Tuy nhiên, bạn có thể cải thiện giao diện của các biểu tượng hãng hàng không bằng cách sử dụng các phông chữ được vá. Đây là những tương đương bằng cách sử dụng các phông chữ được vá.

Tôi hiển thị tất cả những thứ này ở cỡ chữ 16 vì tôi muốn sử dụng một phông chữ lớn hơn, cộng với nó hiển thị các vấn đề nhỏ.

Inconsolata cho Powerline:

nhập mô tả hình ảnh ở đây

Điều này vẫn có vấn đề, nhưng chúng hầu như đều được giải quyết bằng biến thể dz.

Inconsolata-dz cho Powerline dz:

nhập mô tả hình ảnh ở đây

Điều này có một đường gãy tóc ở mũi tên bên tay phải, nhưng nếu không thì hoàn hảo.

Powerline phái sinh Ubuntu Mono thường xuyên:

nhập mô tả hình ảnh ở đây

Điều này vẫn có vấn đề gây phiền nhiễu.

DejaVu Sans Mono cho cuốn sách Powerline:

nhập mô tả hình ảnh ở đây

Điều này có một vết gãy chân tóc trên mũi tên bên tay phải, nhưng nếu không thì là hoàn hảo. Tôi thực sự thích nó hơn Inconsolata-dz vì biểu tượng LN dễ đọc hơn.

Trên hết các quy tắc này, tôi đã thử hầu hết tất cả các phông chữ có sẵn và yêu thích khác của tôi là Source Code Pro.

Mã nguồn Pro cho Powerline Medium

nhập mô tả hình ảnh ở đây

Điều này không có vấn đề ở kích thước 16 trong đó các mũi tên quá lớn, nhưng ở kích thước 14 thì hầu như không thể nhận thấy. Các biểu tượng nhánh và LN làm tràn xuống phía dưới, nhưng bằng cách nào đó, điều này không làm tôi khó chịu.

Mã nguồn Pro cho Powerline Light

nhập mô tả hình ảnh ở đây

Điều này gần như giải quyết hoàn toàn các vấn đề về kích thước mũi tên của phông chữ trung bình và làm cho nó hoàn hảo, mặc dù vẫn còn biểu tượng tràn.

Mã nguồn Pro

Khi tôi đang nghiên cứu các tùy chọn cho phông chữ, có một vài điều bạn nhận thấy, một số bản vá phông chữ có chi tiết tối thiểu tuyệt đối, nếu bạn so sánh nó với danh sách Source Code Pro thì nó khá quan trọng. Source Code Pro là một phông chữ rất chi tiết và đầy đủ đã được coi là hoạt động trong một loạt các kịch bản lớn. Đây là loại hoàn thành quan trọng cho các trường hợp cạnh.

Được sử dụng như một phông chữ được vá, nó hiển thị gần như hoàn hảo thanh vim-air. Lợi ích của rất nhiều lựa chọn thay thế là việc sử dụng phông chữ ánh sáng có màn hình vim-Airlines thậm chí còn tốt hơn.

Source Code Pro cũng đang được tiếp tục phát triển mở trên kho Github của Adobe .

Xử lý bông hoa mỏng manh của Windows (giả sử GVim)

Phông chữ Powerline không hoạt động với Windows, vì vậy lựa chọn duy nhất của bạn là sử dụng phông chữ được vá. Ngoài ra tập lệnh bash để cài đặt tất cả các phông chữ không hoạt động, vì vậy bạn phải làm tương tự git clonenhưng sau đó đi vào từng thư mục riêng lẻ và cài đặt các phông chữ bạn muốn.

Tôi đã tải xuống tất cả các phông chữ được vá mã nguồn và cài đặt chúng. Mặc dù bạn cài đặt chúng dưới dạng phông chữ riêng lẻ, chúng vẫn được thêm vào Windows dưới dạng một phông chữ duy nhất 'Source Code Pro cho Powerline' với một thuộc tính riêng để chỉ định trọng số.

Sau đó (giả sử GVim ) thêm phần này vào .vimrc:

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

Nếu bạn muốn sử dụng phông chữ 'Ánh sáng', hãy sử dụng phông chữ này.

set guifont=Source_Code_Pro_Light:h15:cANSI

Điều này không có ý nghĩa gì vì nó không cần bao gồm 'cho Powerline', nhưng đó là cách nó hoạt động (tôi đã tìm ra nó bằng cách đặt phông chữ trong GVim và sau đó sử dụng set guifont?để kiểm tra GVim đã sử dụng gì). Ngoài ra tôi phát hiện ra rằng khi bạn sử dụng GVim để chuyển đổi phông chữ, kết xuất phông chữ không được tốt lắm. Ban đầu tôi đã giảm giá phông chữ Light vì khi tôi chuyển sang sử dụng menu GVim, nó hiển thị rất tệ, nhưng nếu bạn đặt phần dưới đây vào .vimrcvà khởi động lại GVim thì nó sẽ trông rất đáng yêu.

Ngoài ra, một điều tuyệt vời là bạn có thể đặt dấu nhắc DOS / Powershell của mình thành cùng một phông chữ. Sau đó, với phông chữ được vá, cũng có thể khiến Powerline hoạt động trong Vim thông thường trong DOS.

Nếu bạn không tin tôi, thì đây là hoạt động ở Vim ở Powershell:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


3

Tôi gặp vấn đề tương tự sau khi cài đặt lại Vim: phông chữ vá cũ của tôi không tương thích với các biểu tượng của hãng hàng không mới.

Các biểu tượng cũ cũng được đề cập trong trợ giúp ( :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 = '⭡'

Sau khi tôi đặt những dòng này trong vimrc của tôi, mọi thứ đều ổn.


nâng cao tinh thần! hiện tại là tốt nhất đối với tôi, chỉ những biểu tượng này cao hơn một chút
ryenus

1
Bạn cần xác định từ điển trước: let g: air_symbols = {}
PerseP
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.