Tôi có thể sử dụng phông chữ không đơn cách trong Vim hoặc gVim không?


32

Có cách nào để sử dụng phông chữ không đơn cách trong một trong hai vimhoặc gvimkhông?

Tôi đã thử thay đổi phông chữ cho gVim bằng:

:set guifont=Dejavu\ Serif\ 12

Nhưng điều này mang lại cho tôi một số kết quả khá xấu xí:

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

Tôi nhận được kết quả tương tự nếu tôi sử dụng menu (Chỉnh sửa -> Chọn phông chữ)

:help guifont nói:

Note that the fonts must be mono-spaced (all characters have the same
width).  An exception is GTK 2: all fonts are accepted, but
mono-spaced fonts look best.

Vì vậy, tôi nghĩ rằng kết quả trên được tính là "không nhìn tốt nhất"? Điều này có thể được cải thiện khi, bằng cách nào đó?

Tôi cũng đã thử thiết lập một phông chữ không đơn cách trong terminal ( xterm), nhưng dường như nó có tác dụng gần như tương tự:

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

Tôi không phiền khi sử dụng một trình giả lập thiết bị đầu cuối khác cho btw này.


có vẻ như nó đã được trả lời ở đây: superuser.com/questions3537571/iêu
guido 8/2/2015

1
@guido Tôi không thấy câu trả lời ở đó ... Câu trả lời được đánh giá cao nhất chỉ là giải thích về phông chữ là gì (không phải là câu trả lời) và "câu trả lời" khác thậm chí còn tệ hơn ...
Martin Tournoij

Câu trả lời:


25

Tôi tìm thấy mlterm, hỗ trợ này. Ngoài thiết bị đầu cuối tích hợp (thuật ngữ Mx) của Emacs, đây là thiết bị đầu cuối duy nhất tôi tìm thấy hỗ trợ điều này (tôi đã thử khoảng 15-20 thiết bị khác nhau).
Tôi thấy rằng nó mltermhoạt động tốt hơn Emacs do cài đặt tỷ lệ sceen và bạn cũng tránh phải chạy Vim trong phiên Emacs (tôi thậm chí không chắc là được phép hợp pháp).

Ảnh chụp màn hình (trông xấu xí trừ khi bạn mở kích thước đầy đủ do mở rộng trong trình duyệt):

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

Nó đòi hỏi một số cấu hình tình yêu, mặc dù. Sau khi bắt đầu, nhấn Ctrl+ nhấp chuột giữa bất cứ nơi nào, điều này sẽ mở màn hình cấu hình. Tôi đặt các tùy chọn này

Trong tab Phông chữ:

  • Kiểm tra "Chống bí danh"
  • Kiểm tra "Chiều rộng cột biến"; đây là "tính năng chính" bị thiếu trong hầu hết các trình giả lập thiết bị đầu cuối khác
  • Đặt phông chữ thành "DejaVu Sans Book 16" (hoặc bất cứ thứ gì bạn thích)
  • Đặt "tỷ lệ màn hình so với kích thước phông chữ" thành 60; điều này nằm ở các chương trình về chiều rộng của thiết bị đầu cuối, trong số bạn không làm điều này, bạn chỉ sử dụng ~ 50% kích thước màn hình. Giá trị tốt nhất cho điều này phụ thuộc vào phông chữ được sử dụng, vì vậy hãy thử nghiệm một chút ...

Màn hình cấu hình nhấp chuột phải có vẻ hơi rung, tôi cũng đã chỉnh sửa ~/.mlterm/vaafontvì điều này chưa được cập nhật:

ISO10646_UCS4_1 = 22,DejaVu Sans 18;21,DejaVu Sans 16;16,DejaVu Sans 16

Và tôi ~/.mlterm/main(đây là các thiết lập tôi đặt ở trên, cộng với một số sở thích cá nhân):

type_engine = xft
bel_mode = none
scrollbar_mode = none
fontsize = 22
use_anti_alias = true
use_variable_column_width = true
line_space = 5
use_multi_column_char = true
col_size_of_width_a = 1
screen_width_ratio = 50

Có một số đồ tạo tác, sẽ được mong đợi, nhưng viết email hoặc bài viết như thế này, nó dường như hoạt động khá tốt!

Tôi đã tạo một bí danh trong vỏ của mình cho việc này:

alias pvim mlterm -e vim

Tôi cũng đã tạo một chức năng nhỏ để loại bỏ hầu hết giao diện người dùng chrome:

fun! WriteMode()
    " Disable a lot of stuff
    setlocal nocursorline nocursorcolumn statusline= showtabline=0 laststatus=0 noruler

    " Hack a right margin with number
    setlocal number
    setlocal numberwidth=3

    " White text, so it's 'invisible'
    highlight LineNr ctermfg=15
    " If you're using a black background:
    " highlight LineNr ctermfg=1
endfun

Ngoài ra còn có goyo.vim cũng tương tự như vậy, nhưng điều đó không hiệu quả lắm đối với tôi (quá nhiều mánh khóe với lề). YMMV mặc dù.


Tôi đã phải sử dụng Ctrl + RightClick, không phải giữa Ubuntu 18.04 với MLTerm từ repos Ubuntu. Nếu không, tôi chỉ nhận được một số khung hình vuông kỳ lạ xung quanh con trỏ chuột và không có hộp thoại.
Ruslan

Trông buồn cười (và không sử dụng được) khi bạn sử dụng chia dọc: ảnh chụp màn hình . Nhưng đó là dự kiến ​​từ một giải pháp dựa trên thiết bị đầu cuối.
Ruslan

7

Nó chắc chắn không được hỗ trợ trong GUI Vim và tôi sẽ ngạc nhiên nếu có nhiều hơn một số trình giả lập thiết bị đầu cuối hỗ trợ phông chữ tỷ lệ theo cách mà bạn hy vọng: nó sẽ phá vỡ quá nhiều thứ tiêu chuẩn cho thiết bị đầu cuối đã sử dụng. Vì rất nhiều phần của Unix và các môi trường dòng lệnh khác giả định phông chữ đơn cách, loại màn hình này không thể được sử dụng làm thiết bị đầu cuối cho mục đích chung, do đó, nhà phát triển của thiết bị đầu cuối sẽ phải thực hiện công việc bổ sung để có ít lợi ích.

Tuy nhiên, tồn tại ít nhất một trình giả lập Terminal được triển khai bằng các công nghệ web ( Ajaxterm ) và vì điều này sử dụng HTML / CSS để kết xuất, nên có thể sử dụng phông chữ tỷ lệ bằng CSS. CJS Hayward đã làm điều này, nhưng nó yêu cầu sử dụng một trình duyệt rất cũ.

Nếu bạn chạy Vim trong một thiết bị đầu cuối như vậy, thì bạn sẽ nhận được những gì bạn yêu cầu; chỉ cần chuẩn bị cho Hijinx lập dị khi bạn sử dụng bất kỳ tính năng dựa trên cột nào. (ví dụ j, k, chế độ trực quan blockwise, hoặc 'colorcolumn'tùy chọn)

CẬP NHẬT Như người hỏi ban đầu Carpetsmoker chỉ ra trong một bình luận , Emacs có hỗ trợ phông chữ tỷ lệ thích hợp và cũng bao gồm một trình giả lập thiết bị đầu cuối ( M-x term), bên trong bạn có thể chạy Vim. Những người đam mê phông chữ tỷ lệ chuyên dụng cũng có thể muốn tìm hiểu về Ác ma của Emacs để có được trải nghiệm giống như Vim trong Emacs.


4

Phông chữ tỷ lệ được hỗ trợ trong Oni , Neovim GUI. Sử dụng trình kết xuất "webgl" để có kết quả tốt nhất.

 "editor.renderer": "webgl"

Xem thêm https://github.com/onivim/oni/issues/2359


Trông có vẻ thú vị! Thật không may, tôi không thể chạy dự án này và thực sự không có thời gian để gỡ lỗi rằng :-(
Martin Tournoij

Có tài liệu lưu trữ được xây dựng trước tại github.com/onivim/oni/release .
Justin M. Keyes
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.