ฉันจะป้องกันกลุ่มจากการซ่อนสัญลักษณ์ใน markdown และ json ได้อย่างไร


17

นี่ทำให้ฉันบ้าคลั่ง

:set ft=text

หากต้องการดูบางอย่างลิงก์ทั้งหมดจะหายไปใน markdown และเครื่องหมายคำพูดใน JSON

จะปิดการใช้งานนี้ครั้งเดียวและทั้งหมดได้อย่างไร


1
คุณสามารถโพสต์ภาพหน้าจอของสิ่งที่คุณหมายถึงได้หรือไม่ นอกจากนี้ในขณะที่การแก้ไขไฟล์ markdown ให้ทำ:redir > foo, :hi(ดูผ่านทุกกลุ่มไฮไลท์กดพื้นที่) :redir endและเพิ่มเนื้อหาของที่สร้างขึ้นใหม่ที่fooแฟ้มได้ที่นี่
muru

"# _this_ ** ที่ **" จะแสดงเป็น "# this that"
masukomi

คำตอบ:


23

(คาดเดาที่นี่โปรดระบุภาพหน้าจอ / ข้อมูลเพิ่มเติม)

คุณอาจต้องการเปลี่ยนการconceallevelตั้งค่าของคุณ:

:h 'conceallevel'
'conceallevel' 'cole'       *'conceallevel'* *'cole'*
            number (default 0)
            local to window
            {not in Vi}
            {not available when compiled without the |+conceal|
            feature}
    Determine how text with the "conceal" syntax attribute |:syn-conceal|
    is shown:

    Value       Effect ~
    0       Text is shown normally
    1       Each block of concealed text is replaced with one
            character.  If the syntax item does not have a custom
            replacement character defined (see |:syn-cchar|) the
            character defined in 'listchars' is used (default is a
            space).
            It is highlighted with the "Conceal" highlight group.
    2       Concealed text is completely hidden unless it has a
            custom replacement character defined (see
            |:syn-cchar|).
    3       Concealed text is completely hidden.

1
โอ้ใช่เพียงแค่ตั้งค่าเป็นศูนย์ในการกำหนดค่าและดูเหมือนว่าจะแก้ไขได้ น่าสนใจว่าเป็น 0 โดยค่าเริ่มต้นฉันคิดว่าปลั๊กอินบางตัวเปลี่ยนการตั้งค่า
firedev

1
ดูเหมือนว่าconceallevelจะมีการรีเซ็ตทุกครั้งที่คุณเปิดไฟล์ วิธีใดที่จะทำให้มันติดกับ 0 เสมอ?
yktoo

ใน vimrc ของคุณ? set conceallevel=2
nobe4

4
เพื่อตอบคำถามของตัวเองและอาจช่วยให้ทุกคนประสบปัญหาเดียวกัน: ฉันติดตั้งปลั๊กอินindentLineซึ่งบังคับconceallevelให้ตั้งค่าเป็น 2 โดยค่าเริ่มต้นสำหรับทุกไฟล์ สิ่งนี้สามารถปิดได้ด้วย:let g:indentLine_setConceal = 0
yktoo

5
g:indentLine_setConceal = 0เป็นหลักทำให้มันดังนั้นปลั๊กอิน indentline ไม่ทำงานอีกต่อไป ฉันพบว่าlet g:indentLine_fileTypeExclude = ['json']ทำงานได้ดีขึ้นสำหรับฉัน
Matt Greer

7

หากคุณใช้ปลั๊กอิน 'indentLine' หรือปลั๊กอินอื่น ๆ ที่สามารถเปลี่ยนคุณสมบัติ 'ปกปิด' ในกลุ่ม เป็นเพราะปลั๊กอินเหล่านี้เปิดใช้งานคุณลักษณะ 'ปกปิด' เป็นกลุ่มซึ่งซ่อนข้อความโดยอัตโนมัติตามการเน้นไวยากรณ์ การตั้งค่านี้จะใช้กับรายการไวยากรณ์ทั้งหมด โดยเฉพาะในปลั๊กอิน 'indentLine' มันจะเขียนทับ "concealcursor" และ "conceallevel" เป็น:

let g:indentLine_concealcursor = 'inc'
let g:indentLine_conceallevel = 2

ดังนั้นฉันเปลี่ยนเป็นค่าต่อไปนี้ในไฟล์. vimrc ของฉัน:

let g:indentLine_setConceal = 2
" default ''.
" n for Normal mode
" v for Visual mode
" i for Insert mode
" c for Command line editing, for 'incsearch'
let g:indentLine_concealcursor = ""

อีกชุดหนึ่งคือการlet g:indentLine_concealcursor = "nv"ทำให้ข้อความที่ซ่อนอยู่รอบ ๆ เคอร์เซอร์ของคุณแสดงในโหมด 'แทรก' และโหมด 'แสดงภาพ' เท่านั้น หวังว่าจะสามารถช่วยคุณได้



0

หากคุณกำลังใช้indentLineและต้องการให้มันทำงานได้ แต่ต้องการป้องกัน Vim ไม่ให้ซ่อนสิ่งต่าง ๆ ใน JSON และ Markdown วิธีแก้ไขคือขอให้คุณเน้นไวยากรณ์ที่จะไม่ใช้คุณลักษณะปกปิด

สำหรับไฟล์ไวยากรณ์ JSON และ Markdown ที่รวมอยู่ในvim-polyglot สามารถทำได้โดยใช้สองบรรทัดต่อไปนี้:

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