ฉันจะตั้งค่าขนาดฟอนต์เริ่มต้นใน Vim ได้อย่างไร?


96

ฉันกำลังพยายามกำหนดการตั้งค่าเริ่มต้นสำหรับ GUI ของฉันด้วย Vim ฉันได้ทำการค้นคว้าบนเว็บแล้ว แต่วิธีแก้ปัญหาทั้งหมดที่ฉันพบและลองใช้ไม่ได้ผล

นี่คือบางสิ่งที่ฉันพยายาม (ในไฟล์. vimrc):

set guifont = Monaco:h20
set guifont=Monospace 20

อันที่จริงฉันไม่สนใจฟอนต์โมนาโก


คนแรกดูถูกต้อง คุณรีสตาร์ทกลุ่มหรือไม่? นอกจากนี้ยังมีแบบอักษรบนเครื่องของคุณหรือไม่?
Rob

4
เป็นกลุ่มที่มาพร้อมกับมากเอกสารมากมาย อย่าค้นหาเว็บ: ใช้:helpแทน; เร็วขึ้นและเชื่อถือได้มากขึ้น ในกรณีของคุณวิธีง่ายๆ:help font<C-d>ก็เพียงพอแล้วสำหรับคุณในการค้นหา:help guifontและเรียนรู้วิธีการset guifontอย่างถูกต้องสำหรับระบบของคุณ
romainl

คำตอบ:


209

สำหรับอันแรกให้ลบช่องว่าง ช่องว่างมีความสำคัญสำหรับคำสั่ง set

set guifont=Monaco:h20

สำหรับอันที่สองควรเป็น (h ระบุความสูง)

set guifont=Monospace:h20

คำแนะนำของฉันสำหรับการตั้งค่าแบบอักษรคือการทำ (หากเวอร์ชันของคุณรองรับ)

set guifont=*

จะมีเมนูโผล่มาให้เลือกฟอนต์ หลังจากเลือกแบบอักษรแล้วให้พิมพ์

set guifont?

เพื่อแสดงว่า guifont ปัจจุบันถูกตั้งค่าเป็นอะไร หลังจากนั้นคัดลอกบรรทัดนั้นลงใน vimrc หรือ gvimrc ของคุณ หากมีช่องว่างในแบบอักษรให้เพิ่ม a \เพื่อหลีกเลี่ยงช่องว่าง

set guifont=Monospace\ 20

ฉันลองคำสั่งต่อไปนี้ใน. vimrc ของฉัน: set guifont = h18 || ตั้ง guifont = โมโนสเปซ: h18 || set guifont = 18 และถ้าบางอันทำให้ตำรวจใหญ่ขึ้นจะมี prblem คือช่องว่างระหว่างตัวละครแต่ละตัวกว้างมาก ทำไม?
Moebius

ฉันเพิ่งเข้าใจว่าช่องว่างระหว่างอักขระที่กว้างเกิดจากแบบอักษรที่ไม่ใช่โมโน เพียงแค่ฟอนต์ที่มีโมโนอยู่ภายในชื่อก็จะแสดงโดยไม่มีพื้นที่กว้าง
Moebius

จะหา vimrc ได้ที่ไหน? ฉันไม่พบมันในเมนูเริ่มหลังจากติดตั้ง vim บน win8.1
Lei Yang

1
@LeiYang หากคุณพิมพ์:versionเป็นกลุ่มควรแสดงรายการตำแหน่งที่กลุ่มค้นหาไฟล์ มันควรจะเป็นสิ่งที่ชอบ~/.vimrc, ,~/.vim/vimrc $HOME/_vimrc
FDinoff

ฉันรู้สึกโง่ที่ถามสิ่งนี้ แต่สิ่งนี้ใช้ได้กับ vim บนเทอร์มินัล (เช่นไม่ใช่ gvim) หรือไม่
0xc0de


1

ฉันข้ามปัญหาเดียวกันฉันใส่รหัสต่อไปนี้ในโฟลเดอร์~/.gvimrcและใช้งานได้

set guifont=Monaco:h20


0

คำตอบอื่น ๆ คือสิ่งที่คุณถาม แต่ในกรณีที่เป็นประโยชน์สำหรับคนอื่นต่อไปนี้เป็นวิธีตั้งค่าแบบอักษรตามเงื่อนไขจากหน้าจอ DPI (Windows เท่านั้น):

set guifont=default
if has('windows')
    "get dpi, strip out utf-16 garbage and new lines
    "system() converts 0x00 to 0x01 for 'platform independence'
    "should return something like 'PixelsPerXLogicalInch=192'
    "get the part from the = to the end of the line (eg '=192') and strip
    "the first character
    "and convert to a number
    let dpi = str2nr(strpart(matchstr(substitute(
        \system('wmic desktopmonitor get PixelsPerXLogicalInch /value'),
        \'\%x01\|\%x0a\|\%x0a\|\%xff\|\%xfe', '', 'g'),
        \'=.*$'), 1))
    if dpi > 100
        set guifont=high_dpi_font
    endif
endif

@ 576i จะเกิดอะไรขึ้นเมื่อคุณวิ่งwmic desktopmonitor get PixelsPerXLogicalInch /valueเข้ามาcmd.exe?
9999 ปี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.