ฉันจะเปลี่ยนขนาดตัวอักษรใน gVim ได้อย่างไร?


41

มีวิธีการเปลี่ยนขนาดของแบบอักษรใน gVim โดยใช้คำสั่งดั้งเดิมหรือไม่?

และถ้าไม่สคริปต์อะไรที่สามารถใช้ในการทำมันได้อย่างรวดเร็ว?


คำตอบ:


32

ตั้งค่าตัวเลือกของคุณguifont .gvimrcดูและ:help guifont:help setting-guifont

โดยเฉพาะคุณสามารถทำสิ่งต่าง ๆ เช่นset guifont=Consolas:h11การใช้ Consolas 11 จุดใน gvim บน Windows มีตัวเลือกอื่น ๆ ที่คุณสามารถใช้ (แต่ละตัวคั่นด้วย a :) เช่น:bตัวหนาแม้ว่าตัวเลือกเหล่านี้บางตัวจะมีเฉพาะในบางแพลตฟอร์มเท่านั้น

:hตัวเลือกในการกำหนดขนาดตัวอักษรที่แสดงให้เห็นว่าน่าจะเป็นประโยชน์มากที่สุดและเป็นคนเฉพาะที่เกี่ยวข้องกับการเปลี่ยนขนาดของตัวอักษรตามที่คุณร้องขอ


6
โปรดทราบว่าname:sizeไวยากรณ์ใช้งานได้กับ Windows gVim เท่านั้นสำหรับ gtk gVim คุณต้องใช้name size(ช่องว่างระหว่างชื่อและขนาดแบบอักษร) ... แพลตฟอร์มอื่น ๆ อาจมีรูปแบบอื่น ๆ ...
Martin Tournoij

:hXXทำงานบน Mac ได้เช่นกัน ข้อดีของ GTK

set guifont=? ไม่ใช่set gfn=เหรอ
Peter Mortensen

2
@PeterMortensen ทั้งสองทำงาน; ฉันชอบรูปแบบที่ยาวขึ้นเพราะฉันพบว่าอ่านง่ายขึ้นและมีแนวโน้มที่จะใช้คำตอบที่ยาวกว่าโดยเฉพาะ

โปรดทราบว่าชื่อไฟล์ใน Windows (ตัวเลือกระบบปฏิบัติการทั่วไป) เป็นจริง: สำหรับ MS-DOS และ Win32: $ VIM \ _gvimrc หรือในกรณีของฉันไม่มีไฟล์อยู่และฉันจำเป็นต้องสร้างมันขึ้นมา
wolfdawn

29

หากคุณต้องการเปลี่ยนขนาดตัวอักษรในอินสแตนซ์ GVim ที่ทำงานอยู่ให้พิมพ์:

:set guifont=*

หน้าต่างจะปรากฏขึ้นเพื่อให้คุณกำหนดขนาดตัวอักษรและเลือกแบบอักษรใหม่หากต้องการ จากนั้นคุณสามารถขอให้ Vim พิมพ์บรรทัดที่คุณจะต้องเพิ่มใน~/.gvimrcการเปลี่ยนแปลงอย่างถาวร:

:set guifont?

สร้างบางสิ่งบางอย่างที่คล้ายกันในบรรทัดสถานะ:

guifont=Hasklig-Light:h16

เพิ่มที่มีคำนำหน้าsetของคุณ~/.gvimrcเพื่อคงอยู่


13

ฉันมีสิ่งต่อไปนี้ใน. vimrc ของฉันเพื่อเปลี่ยนขนาดตัวอักษรอย่างรวดเร็วโดยไม่ต้องเปลี่ยนแบบอักษร ทำงานบน Windows และ GTK ฉันไม่ได้ทดสอบ GUI อื่น ๆ ฉันแน่ใจว่าฉันคัดลอกมาจากคนอื่นในตอนแรก แต่มันอยู่ในไฟล์ rc ของฉันตราบใดที่ฉันจำไม่ได้ว่ามันมาจากไหน

if has("unix")
    function! FontSizePlus ()
      let l:gf_size_whole = matchstr(&guifont, '\( \)\@<=\d\+$')
      let l:gf_size_whole = l:gf_size_whole + 1
      let l:new_font_size = ' '.l:gf_size_whole
      let &guifont = substitute(&guifont, ' \d\+$', l:new_font_size, '')
    endfunction

    function! FontSizeMinus ()
      let l:gf_size_whole = matchstr(&guifont, '\( \)\@<=\d\+$')
      let l:gf_size_whole = l:gf_size_whole - 1
      let l:new_font_size = ' '.l:gf_size_whole
      let &guifont = substitute(&guifont, ' \d\+$', l:new_font_size, '')
    endfunction
else
    function! FontSizePlus ()
      let l:gf_size_whole = matchstr(&guifont, '\(:h\)\@<=\d\+$')
      let l:gf_size_whole = l:gf_size_whole + 1
      let l:new_font_size = ':h'.l:gf_size_whole
      let &guifont = substitute(&guifont, ':h\d\+$', l:new_font_size, '')
    endfunction

    function! FontSizeMinus ()
      let l:gf_size_whole = matchstr(&guifont, '\(:h\)\@<=\d\+$')
      let l:gf_size_whole = l:gf_size_whole - 1
      let l:new_font_size = ':h'.l:gf_size_whole
      let &guifont = substitute(&guifont, ':h\d\+$', l:new_font_size, '')
    endfunction
endif


if has("gui_running")
    nmap <S-F12> :call FontSizeMinus()<CR>
    nmap <F12> :call FontSizePlus()<CR>
endif

4
ตามคำตอบนี้ , has('unix')มักจะเป็นความจริงในระบบ OSX และตามที่จอห์นนี่ , OSX ต้องใช้รูปแบบเดียวกับ Windows ... ดังนั้นการใช้น่าจะดีกว่าการใช้has('gui_gtk2') has('unix')
Martin Tournoij

สิ่งนี้ใช้ได้กับ Xubuntu (Xfce) ที่ไหน: set guifont? ส่งคืนข้อความเช่น "Monospace Bold 11" โดยไม่มีตัวคั่นโคลอนและส่วนนำหน้า "h" ที่คำตอบที่เลือกไว้
NeilG

5

เห็นได้ชัดว่าวิธีการเขียนการตั้งค่าแบบอักษรค่อนข้างขึ้นอยู่กับแพลตฟอร์ม สิ่งที่ใช้งานได้สำหรับฉัน (gvim ใน MX Linux 17, (การกระจาย Linux บนเดเบียนที่มีเดสก์ท็อป XFCE)):

  • กำหนดการตั้งค่าแบบอักษรปัจจุบันในอินสแตนซ์ gvim แบบเปิดโดยใช้ : set guifont?

ตัวอย่าง: guifont=DejaVu Sans Mono 12

  • ใช้ข้อมูลนี้ในการเขียนการตั้งค่า (การปรับเปลี่ยนขนาดตามต้องการ) ใน~/.gvimrcไฟล์หลบหนีช่องว่างที่มีเครื่องหมายและไม่ได้ใช้:ก่อนขนาด

ตัวอย่าง: set guifont=DejaVu\ Sans\ Mono\ 18

  • หลังจากบันทึก~/.gvimrcไฟล์แล้วอินสแตนซ์ใหม่ของ gvim ควรใช้ขนาดที่ต้องการใหม่

คำตอบสองข้อนี้ช่วยฉันได้:

เช่นเดียวกับความคิดเห็นของคนนี้:


4

จากคำตอบของ Drew การตั้งค่านี้ทำงานได้ดีขึ้นสำหรับฉัน

มันเพิ่มขึ้นหรือลดขนาดตัวอักษรใช้\+หรือ\-(สมมติว่า\เป็นผู้นำของคุณ) และวงจรcotผ่านตัวอักษรที่กำหนดไว้ล่วงหน้าโดยใช้ ฉันมักจะสลับระหว่างแบบอักษรเหล่านี้ขึ้นอยู่กับว่าฉันทำงานกับซอร์สโค้ดหรือข้อความ

let g:fnt_types = ['SourceCode\ Pro', 'monofur' ]
let g:fnt_sizes = [ 10, 13 ]


let g:fnt_index = 0
let g:fnt_size  = g:fnt_sizes[g:fnt_index]

function! CycleFont()
  let g:fnt_index = (g:fnt_index + 1) % len(g:fnt_types)
  let g:fnt_size  = g:fnt_sizes[g:fnt_index]
  call ResetFont()
endfunction

function! ResetFont ()
  if has('gui_running')
    exe ':set guifont=' . g:fnt_types[g:fnt_index] . '\ ' . string(g:fnt_size)
  endif
endfunction

call ResetFont()

function! FontSizePlus ()
  let g:fnt_size = g:fnt_size + 0.5
  call ResetFont()
endfunction

function! FontSizeMinus ()
  let g:fnt_size = g:fnt_size - 0.5
  call ResetFont()
endfunction

nnoremap <leader>+ :call FontSizePlus()<cr>
nnoremap <leader>- :call FontSizeMinus()<cr>
nnoremap cot :call CycleFont()<cr>

2

คุณสามารถลองปลั๊กอินนี้: เป็นกลุ่ม-fontzoom

map <m-o> :Fontzoom!<cr>
map <m--> <Plug>(fontzoom-smaller)
map <m-=> <Plug>(fontzoom-larger)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.