ในกลุ่มการตั้งค่า / คำสั่งที่ขึ้นต้นด้วยคำนำหน้า (b :, g :) คืออะไร


26

ฉันติดตั้งปลั๊กอินนี้ด้วย Vundle และสังเกตเห็นว่ามันมีการตั้งค่าบางอย่าง (README เรียกพวกเขาว่าตัวแปร) เช่น:

b:javascript_fold

และ

g:javascript_conceal

README บอกว่าฉัน "สามารถเพิ่มพวกเขาในของคุณ.vimrcเพื่อเปิด / ปิดการใช้งานคุณสมบัติของพวกเขา" แต่ฉันไม่แน่ใจว่าจะตั้งค่าพวกเขา:อย่างไร ตัวแปรเหล่านี้ไม่สามารถใช้ได้ผ่านsetหรือหรือechoไม่มีคำสั่งหรือฟังก์ชั่น ฉันจะตั้งค่า / ตรวจสอบสิ่งเหล่านี้ได้อย่างไร

คำตอบ:


48

นี่คือตัวแปรภายใน

คุณสร้างและแก้ไขด้วย:letคำสั่ง:

:let g:var_name = 1

:unletคุณทำลายพวกเขาด้วย

:echoคุณตรวจสอบพวกเขาด้วย

คำนำหน้าแสดงขอบเขตของตัวแปร จาก:help internal-variables:

buffer-variable    b:    Local to the current buffer.
window-variable    w:    Local to the current window.
tabpage-variable   t:    Local to the current tab page.
global-variable    g:    Global.
local-variable     l:    Local to a function.
script-variable    s:    Local to a |:source|'ed Vim script.
function-argument  a:    Function argument (only inside a function).
vim-variable       v:    Global, predefined by Vim.

การเพิ่มตัวแปรประเภทนั้นให้กับคุณ~/.vimrcจะเป็นดังนี้:

let g:var_name = 1

โดยทั่วไปแล้วจะมีการเพิ่มเฉพาะตัวแปรโกลบอลเท่านั้นในตัวแปรของ~/.vimrcบัฟเฟอร์ในเครื่องที่จะใช้ในปลั๊กอินชนิดไฟล์


2
เพื่อความสมบูรณ์: โดยไม่มีคำนำหน้า: ในฟังก์ชั่น: ท้องถิ่นเพื่อฟังก์ชั่น; เป็นอย่างอื่น: ทั่วโลก
Tom Hale

11

ตัวแปรการกำหนดค่าไม่ใช่ตัวเลือก แต่จะ "เลียนแบบ" สำหรับปลั๊กอินเท่านั้น ดังนั้นคุณไม่ได้ใช้:setแต่:let(และ:echoเพื่อแสดงรายการค่าปัจจุบัน)

sigil ที่อยู่ด้านหน้าของตัวแปรจะกำหนดขอบเขตของมัน g:หมายถึงทั่วโลก; โดยปกติจะต้องตั้งค่าก่อนที่จะโหลดปลั๊กอินเช่นโดยการวาง

let g:javascript_conceal = 1

เป็นของคุณ~/.vimrc(และเริ่ม Vim)

เนื่องจากการกำหนดค่าบางอย่างใช้กับไฟล์บางประเภทเท่านั้นจึงใช้b:คำนำหน้า การตั้งค่าเหล่านั้น~/.vimrcจะใช้กับบัฟเฟอร์แรกที่เปิดซึ่งไม่ใช่สิ่งที่คุณต้องการ คุณต้องเชื่อมโยงกลไกการตรวจจับประเภทไฟล์แทน

หากคุณต้องการเปิดใช้งานตัวเลือกการกำหนดค่าสำหรับไฟล์บางประเภทให้ใช้:let b:var = valueแทนและใส่คำสั่งที่เกี่ยวข้องลงไป~/.vim/after/ftplugin/{filetype}.vimซึ่ง{filetype}เป็นประเภทไฟล์จริง (เช่นjavascript) (สิ่งนี้ต้องการให้คุณมี:filetype plugin on; การใช้ไดเรกทอรีหลังจากช่วยให้คุณสามารถแทนที่การตั้งค่าชนิดไฟล์เริ่มต้นที่ทำโดย$VIMRUNTIME/ftplugin/{filetype}.vim.)

หรือคุณสามารถกำหนดสิ่งที่:autocmd FileType {filetype} setlocal option=valueอยู่ในตัวของคุณโดยตรง~/.vimrcแต่สิ่งนี้มีแนวโน้มที่จะไม่สะดวกเมื่อคุณมีการปรับแต่งมากมาย

autocmd Filetype javascript let b:javascript_fold = 1
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.