conceaalcursor dan conceaallevel vim?
漂亮男人
漂亮男人 2017-05-16 16:41:08
0
1
903

Masalah yang dihadapi apabila menggunakan neosnippet
Nah, masalahnya ialah ini Apabila menggunakan neosnippet untuk mengembangkan coretan, neosnippet akan menghasilkan hentian tab ini disembunyikan mengikut kod pemalam permulaan yang diberikan oleh pengarang. kemudian Simpan dan keluar fail dengan serta-merta. Apabila anda membuka fail itu semula, anda akan mendapati bahawa tabstop dimasukkan ke dalam teks. Ciri ini membuatkan saya sangat tertekan .com/Shougo/ neosnippet.vim/issues/236#issuecomment-44950979
Penulis juga memberitahu saya bahawa ini adalah ciri, tetapi apabila saya akhirnya bertanya tentang cara menyelesaikan masalah tabstop yang dimasukkan ke dalam teks, dia meminta saya untuk melihat

:membantu menyembunyikan tahap

:tolong concealcursor

Saya telah membacanya, tetapi masih tidak tahu bagaimana untuk menyelesaikan masalah ini.

Sebenarnya, soalan saya ialah, jika tabstop tidak dimasukkan ke dalam teks

Gambar di bawah ialah hentian tab yang muncul apabila coretan dikembangkan (saya telah membatalkan tetapan yang disyorkan pengarang, jadi hentian tab boleh dilihat)


Seterusnya, keluar dari teks serta-merta dan buka semula, dan anda akan melihat bahawa hentian tab dimasukkan ke dalam fail

漂亮男人
漂亮男人

membalas semua(1)
巴扎黑

Perkara itu adalah pemegang tempat dalam pemalam Tolong jangan panggil mereka tabstop, kerana tabstop mempunyai maksud khusus dalam vim Saya mengambil masa yang lama untuk memahami apa yang awak cakapkan. tabstop,因为 tabstop 在 vim 里是有特定的意思的,你这样一说,我看了半天才明白你说的是什么。

首先那些占位符是肯定有用的,当你展开代码片段的时候占位符帮助你确定需要填写的代码的位置。我个人觉得比较纳闷的一点是:你都展开一个代码片段了,你不把它填完却直接关掉文件再打开,这是何故?好奇葩的操作习惯啊!

不过呢,即使应对奇葩人士 vim 也有足够的办法,Shougo 让你看的那个东东,在 vim 里叫做 conceal (text),用汉语理解就是“隐藏字符”。Neosnippet 里的那些占位符就是隐藏字符,你可以调整隐藏字符是否/如何呈现。

隐藏字符并不是真的隐藏起来了,它是 vim syntax 里的一种特殊语法,你可以用语法配置命令设置隐藏字符的视觉状态,所以如果你发现隐藏字符的设置和你想的不完全一样,那么也许你正在使用的语法(配色)有这方面的设置,你可以换一个或者钻进去看看。

接下来说说常规情况下那两个选项:conceallevelconcealcursor

当文本被标记为“隐藏字符”的时候,conceallevel 决定这些文本如何显示,它有四个值:

  1. 设为 0,不隐藏,该咋样还是咋样(这是默认值,所以占位符依然看得见)

  2. 设为 1,每一块隐藏字符用一个特殊字符来替换,这个字符是由当前使用的语法配置设置的,如果语法高亮没有,那就使用 listchars 选项里设置的字符,如果这也没有,默认的替换字符是一个空格

  3. 设为 2,让隐藏字符完全隐藏(意思是即便默认的空格也不用),但如果语法配置里有设置替换字符的话,就用设置的

  4. 设为 3,完全不显示隐藏字符,不管有没有任何设置。

到目前为止,你可能觉得设置成 3 最清爽了吧,但是你要小心,完全不显示隐藏字符就意味着一旦某些插件自作主张替你设置了隐藏字符,你是永远也看不到它们的!比如说我曾经用过一个 JSON 的语法高亮插件,不知道作者是怎么想的,他把所有的 ;

Pertama sekali, ruang letak itu pasti berguna Apabila anda mengembangkan coretan kod, ruang letak membantu anda menentukan lokasi kod yang perlu diisi. Satu perkara yang saya sendiri membingungkan ialah: selepas anda mengembangkan coretan kod, anda menutup fail dan membukanya semula tanpa melengkapkannya. Mengapa ini? Sungguh pelik tabiat operasi! 🎜 🎜Walau bagaimanapun, walaupun vim mempunyai penyelesaian yang mencukupi untuk menangani orang pelik Perkara yang Shougo membolehkan anda lihat dipanggil menyembunyikan (teks) dalam vim, yang dalam bahasa Cina bermaksud "aksara tersembunyi". Pemegang tempat tersebut dalam Neosnippet ialah aksara tersembunyi dan anda boleh melaraskan sama ada/cara aksara tersembunyi dipaparkan. 🎜 🎜Aksara tersembunyi tidak benar-benar tersembunyi Ia adalah sintaks khas dalam sintaks vim Anda boleh menggunakan arahan konfigurasi sintaks untuk menetapkan keadaan visual aksara tersembunyi, jadi jika anda mendapati tetapan aksara tersembunyi tidak seperti yang anda fikirkan. , maka mungkin sintaks (padanan warna) yang anda gunakan mempunyai tetapan dalam hal ini Anda boleh mengubahnya atau gali dan lihat. 🎜 🎜Mari kita bincangkan tentang dua pilihan dalam keadaan biasa: conceallevel dan concealcursor. 🎜 🎜Apabila teks ditandakan sebagai "aksara tersembunyi", conceallevel menentukan cara teks dipaparkan ia mempunyai empat nilai: 🎜
  1. 🎜Tetapkan kepada 0, tidak disembunyikan, sebagaimana mestinya (ini ialah nilai lalai, jadi pemegang tempat masih kelihatan)🎜
  2. 🎜Tetapkan kepada 1 Setiap aksara tersembunyi digantikan dengan aksara khas ini ditetapkan oleh konfigurasi sintaks yang sedang digunakan Jika penyerlahan sintaks tidak tersedia, gunakan Set aksara dalam pilihan listchars Jika ini tidak tersedia, aksara gantian lalai ialah ruang🎜
  3. 🎜Tetapkan kepada 2 untuk menyembunyikan sepenuhnya aksara tersembunyi (bermaksud ruang lalai pun tidak digunakan), tetapi jika terdapat set aksara gantian dalam konfigurasi tatabahasa, gunakan set itu 🎜
  4. 🎜Tetapkan kepada 3 dan aksara tersembunyi tidak akan dipaparkan sama sekali, tanpa mengira sebarang tetapan. 🎜
🎜Setakat ini, anda mungkin berpendapat bahawa menetapkannya kepada 3 adalah yang paling menyegarkan, tetapi anda perlu berhati-hati Tidak memaparkan aksara tersembunyi sama sekali bermakna setelah beberapa pemalam menetapkan yang tersembunyi watak untuk anda atas inisiatif mereka sendiri, Watak, anda tidak pernah melihatnya! Sebagai contoh, saya pernah menggunakan sintaks JSON yang menyerlahkan pemalam. Saya tidak tahu apa yang difikirkan oleh pengarang itu lama…🎜

Jika anda tidak boleh menunjukkan aksara tersembunyi sama sekali, maka anda hendaklah sekurang-kurangnya mempertimbangkan cara menggunakannya dengan menyembunyikankursor. Secara lalai, vim tidak akan menggunakan tetapan conceallevel untuk aksara tersembunyi dalam baris tempat kursor semasa berada, yang bermaksud bahawa tidak kira bagaimana anda menetapkannya, aksara tersembunyi dalam baris tempat kursor berada. berada pada masa ini akan dipaparkan, concealcursor menentukan sama ada aksara tersembunyi dipaparkan dalam baris di mana kursor semasa terletak dalam empat mod utama vim (biasa, sisip, visual, arahan). concealcursor 来使用。默认状态下,vim 不会对当前光标所在行的隐藏字符采取 conceallevel 的设置,也就是说不管你怎么设置,当前光标所在行的隐藏字符都是会显示出来的,concealcursor 决定了在 vim 的四种主要模式里(常规、插入、可视、命令),当前光标所在行是否显示隐藏字符。

补充一下:对于命令模式,当前光标所在行指得是搜索时的高亮匹配位置。

这个选项默认是空,所以在四种模式下当前光标所在行都会显示隐藏字符,你可以在 n i v c 四个值里挑选组合来设置你希望的方式。就拿你这个例子来说吧,比方说你希望除了插入模式以外,剩下的时候我都不希望看到这些占位符(隐藏字符),那就 set concealcursor='nvc'

Untuk menambah: Untuk mod arahan, baris di mana kursor semasa terletak merujuk kepada kedudukan padanan yang diserlahkan semasa carian.

Pilihan ini kosong secara lalai, jadi dalam empat mod, aksara tersembunyi akan dipaparkan dalam baris tempat kursor semasa berada Anda boleh menggunakan n i v c Pilih gabungan empat nilai untuk menetapkan cara yang anda mahukan. Ambil contoh anda. Contohnya, jika anda tidak mahu melihat ruang letak ini (aksara tersembunyi) kecuali dalam mod sisip, maka set concealcursor='nvc' code>. Jika anda mengetahui coretan kod ini dengan baik, tidak mengapa jika anda tidak menunjukkan aksara tersembunyi dalam mod sisipan. 🎜 🎜Sebenarnya, anda boleh mencuba UltiSnips Pemalam ini lebih ringkas daripada NeoSnippets dan serasi sepenuhnya dengan coretan kod NeoSnippets Ia sangat sesuai untuk pemula (fungsinya pasti tidak buruk). 🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan