ฉันจะทำให้คอลัมน์เครื่องหมายแสดงขึ้นตลอดเวลาได้อย่างไรแม้ว่าจะไม่มีการเพิ่มเครื่องหมายใด ๆ


32

ฉันได้เพิ่มเพียงปลั๊กอิน Git รางน้ำสำหรับกลุ่มซึ่งแสดงให้เห็นว่าสายการเพิ่ม / การแก้ไข / git diffลบตาม มันใช้Sign Columnเพื่อแสดงตัวละครถัดจากแต่ละบรรทัด

ในขณะนี้คอลัมน์ปรากฏในบันทึกซึ่งค่อนข้างสั่นสะเทือน ฉันต้องการให้คอลัมน์แสดงเสมอแม้ว่าจะว่างเปล่า

ฉันจะทำให้คอลัมน์ลงชื่อมองเห็นได้ตลอดเวลาอย่างไร

คำตอบ:


40

เริ่มต้นด้วย Vim 7.4.2201 คุณสามารถ:

:set signcolumn=yes

Cp :help 'signcolumn'. สำหรับเวอร์ชัน Vim ที่เก่ากว่าคุณต้องกำหนดสัญญาณดัมมี่และวางลงในบัฟเฟอร์ปัจจุบัน:

:sign define dummy
:execute 'sign place 9999 line=1 name=dummy buffer=' . bufnr('')

14
ในการทำให้มันทำงานในบัฟเฟอร์ใหม่ทุกครั้งที่คุณเปิดให้ใส่ทั้งสองautocmd BufEnter * sign define dummyและautocmd BufEnter * execute 'sign place 9999 line=1 name=dummy buffer=' . bufnr('')ใน vimrc ของคุณ
akent

ดูเหมือนว่าล้าสมัยเช่นเดียวset signcolumn=yesกับเคล็ดลับโดยไม่ต้อง shenanigans
cprn

1
@cprn: ถูกต้อง; ฉันได้เพิ่มเข้าไปในคำตอบของฉัน ขอบคุณ!
Ingo Karkat

ขอบคุณเช่นกันเอาคำตอบของฉันออกจากด้านล่าง ไชโย!
cprn

22

สำหรับ vim-gitgutter โดยเฉพาะคุณสามารถตั้งค่าตัวแปรต่อไปนี้ใน~/.vimrc:

let g:gitgutter_sign_column_always = 1

UPDATE

ปลั๊กอินจะออกคำเตือนเพื่อลบบรรทัดด้านบนและใช้แทน:

set signcolumn="yes"

ขอบคุณต้องเพิ่มตัวเลือกนั้นหลังจากที่โพสต์คำถามนี้ มีประโยชน์ที่จะรู้ว่า
jordelver

1
แท้จริงแล้วดูเหมือนว่าความมุ่งมั่นที่เพิ่มเข้ามานั้นถูกสร้างขึ้นเมื่อวันที่ 14 มีนาคม 2013 - สองสัปดาห์หลังจากคำถามของคุณ!
wjv

ในขณะที่ทำงานกับสิ่งอื่นฉันเพิ่งแหย่ไปมาภายในแหล่ง GitGutter และฉันสังเกตเห็นว่าการตั้งค่าตัวแปรนี้บังคับให้แสดงคอลัมน์สัญญาณในลักษณะเดียวกับคำตอบที่ยอมรับสำหรับคำถามนี้ - โดยการตั้งค่าดัมมี่
wjv

5
btw สำหรับฉันมันset signcolumn=yes ไม่มีราคา
Tam 5

6

ในขณะที่การเต้นรำเล็ก ๆ ที่กำหนดเครื่องหมายและการวางมันก็โอเค แต่ทางเลือกที่หรูหรากว่าที่ใช้งานได้ดีสำหรับฉันคือ:

autocmd BufRead,BufNewFile * setlocal signcolumn=yes

และหากมีไฟล์บางประเภทที่ไม่ควรมีคอลัมน์:

autocmd FileType tagbar,nerdtree setlocal signcolumn=no

ตรวจพบข้อผิดพลาดขณะประมวลผลคำสั่งอัตโนมัติของ BufReadPost สำหรับ "*": E518: ตัวเลือกที่ไม่รู้จัก: signcolumn = ใช่
brandones

คุณต้องมี vim รุ่นใหม่กว่า @brandonjones ฉันไม่แน่ใจว่าsigncolumnจะเพิ่มเมื่อใดแต่ไม่มีใน 7.2 และมีใน 8.0 ฉันจำไม่ได้ว่าเห็นมันใน 7.4 แต่อาจอยู่ที่นั่น มันมีอยู่ในเวอร์ชันปัจจุบันของทั้ง Vim และ Neovim
Jim Stewart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.