Mengaktifkan sorotan penurunan harga di Vim

138

Saya menggunakan Vim di terminal di MacBook Air saya dengan OS X Lion, dan sepertinya saya tidak bisa menemukan plugin yang bagus untuk penyorotan sintaksis Markdown.

Sejauh ini saya sudah mencoba plugin plasticboy dan plugin Tim Pope . Plugin plasticboy bekerja dengan baik tetapi menyebabkan ruang putih di akhir baris menjadi sorotan, dan saya belum menemukan cara untuk mematikannya. (Ini sangat menjengkelkan, karena setiap kali saya menekan spaceketika saya menulis itu menyoroti karakter.)

Plugin Tim tampaknya tidak melakukan banyak hal dalam penyorotan, selain mungkin tajuk yang digunakan ###. Blok kode dan peluru diabaikan. Saya mungkin kehilangan sesuatu di sana. Saya memang menggunakan .mdekstensi pada file Markdown saya, jadi itu harus mengambil filetype.

Saya juga telah melihat referensi ke Vim 7.3 yang memiliki dukungan Markdown bawaan, tetapi tanpa salah satu dari dua plugin tersebut saya tidak mendapatkan sorotan sama sekali.

Apakah salah satu dari ini memerlukan skema warna khusus untuk bekerja?

Josh Earl
sumber
24
*.mdbukan ekstensi yang tepat untuk penurunan harga. Yang itu untuk file modula. Plugin Tpope berfungsi dengan baik (semua plugin ini berfungsi dengan baik) Anda harus menggunakan *.markdownekstensi
lucapette
7
@lucapette yang ftdetect plugin Tim Paus tidak juga termasuk *.md, bersama dengan: *.markdown,*.mdown,*.mkd,*.mkdn. Plugin plasticboy hanya mendeteksi secara otomatis*.mkd,*.markdown,*.mdwn
pb2q
1
Dari sumber plugin plasticboy, sepertinya itu benar-benar mendeteksi .mdjuga. Saya terkunci dalam ekstensi ini untuk saat ini karena saya menggunakan Scriptogr.am untuk blog saya, dan itulah satu-satunya ekstensi yang mereka kenali sekarang.
Josh Earl
1
Baru saja menemukan ini dan itu cukup bagus untuk penurunan harga rasa github: github.com/jtratner/vim-flavored-markdown
Matthew Turner
Untuk masalah dengan plasticboy / vim-markdown , silakan buka masalah pada proyek sehingga devs dapat menyelesaikannya. Saya menemukan bahwa spasi putih trailing highlighing adalah perilaku yang baik sebagai spasi ganda menghasilkan <br>tag, jadi penulis harus dibuat sadar akan hal itu.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Jawaban:

22

Ini harus berfungsi untuk menonaktifkan penyorotan ruang end-of-line ketika menggunakan plugin plasticboy mkd:

:syn clear mkdLineBreak

Anda bisa autocmd untuk ekstensi file yang diperlukan sehingga Anda tidak perlu melakukannya setiap kali Anda memuat file penurunan harga.

Perhatikan bahwa sorotan khusus ini ada karena penurunan harga memperlakukan baris yang diakhiri dengan 2 atau lebih karakter spasi khusus dengan memasukkan a<br> , sehingga berguna.

The plasticboy Plugin menggunakan TODOmenyoroti untuk aturan ini, yang merupakan sedikit terlalu banyak seperti itu dirancang untuk, secara default, benar-benar norak - latar belakang kuning - sehingga menonjol. Anda dapat membuat ini kurang mencolok secara visual dengan mengubah highlightaturan itu. Salah satu cara cepat untuk melakukan ini adalah:

:hi link mkdLineBreak Underlined

Sekarang ruang end-of-line tersebut akan ditampilkan sebagai bergaris bawah. Cobalah menautkan ke highlightgrup lain untuk sesuatu yang mungkin lebih menarik bagi Anda. Alih-alih menggunakan linkAnda bisa mendapatkan lebih spesifik tentang ruang-ruang end-of-line: misalnya Anda dapat menentukan bahwa mereka muncul hanya sedikit lebih terang / lebih gelap dari latar belakang normal, menggunakan highlightperintah Anda sendiri , menentukan ctermfg kustom , ctermbg , guifg , pengaturan guibg .

Seperti di atas, Anda dapat melakukan autocmdini untuk menerapkan pengaturan spesifik Anda.

Untuk informasi lebih lanjut tentang highlightgrup tautan , ketik: :help group-namedan Anda akan melihat daftar grup yang dapat ditautkan yang dengan sendirinya ditampilkan menggunakan highlightaturan mereka saat ini . Juga: :help highlight.

pb2q
sumber
2
Itu masuk akal. Tidak menyadari bahwa dua ruang memiliki arti penting dalam penurunan harga. Saya pikir saya akan membiarkannya diaktifkan kecuali terus mengganggu saya. Terima kasih!
Josh Earl
Ya itu sebabnya sorot tidak masuk sampai 2 spasi telah dimasukkan.
pb2q
@ josh-earl lihat hasil edit saya untuk lebih banyak alternatif saat menggunakan plugin plasticboy
pb2q
308

Tentang highlight sintaksis asli untuk penurunan harga Saya pikir ini hanya berfungsi untuk file dengan ekstensi .markdownsecara default.
Saya mengalami masalah dengan sorotan sintaks markdown untuk .mdfile saya .
Saya mencoba:

:set syntax=markdown

Dan itu berhasil. Jadi saya memasukkan baris berikut ini di .vimrc:

au BufNewFile,BufFilePre,BufRead *.md set filetype=markdown

Sekarang vim saya memiliki highlight sintaks untuk .mdfile saya .

BufFilePre diperlukan untuk: sav

PutzKipa
sumber
13
Untuk orang lain yang membaca ini: ya itu berfungsi dan merupakan solusi yang jauh lebih sederhana untuk masalah daripada menginstal plugin. Cara cepat untuk melakukan ini dari baris perintah: echo "au BufRead, BufNewFile * .md set filetype = markdown" >> .vimrc
RobinLovelace
11
Tampaknya bagi saya bahwa ini seharusnya jawaban yang diterima.
Enrico Campidoglio
4
@SamStoelinga Ini bukan bug, .mdjuga digunakan oleh Modula. Mendeteksi yang mana yang akan digunakan memerlukan beberapa heuristik canggih.
nyuszika7h
8
Pada Vim 7.4.480, *.mdfile dikenali sebagai Penurunan harga secara default.
fwalch
1
Benar, tetapi tidak lengkap. Agar ini bekerja sama dengan Save As… :savperintah, kita perlu memperluas perintah otomatis ke BufFilePre:autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown
Serge Stroobandt
19

Menyoroti sintaksis asli

Penyorotan sintaks bawaan untuk Penurunan harga hanya berfungsi secara default untuk .markdown ekstensi file.

Baris berikut dalam .vimrcmenghasilkan hasil terbaik untuk keduanya vimdan gvim:

autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown.pandoc

Penjelasan:

1. Tentukan rasa Markdown Anda!

Jika Anda bekerja terutama dengan satu rasa Markdown (mis. Pandoc ), pastikan untuk menyebutkan ini juga! Melakukannya, memungkinkan untuk mencampur dan mencocokkan plug-in Vim khusus-Markdown dan Pandoc. Sebagai contoh: Saya telah menemukan plug-in vim-pandoc-syntax sangat cocok untuk kebutuhan penyorotan saya. Namun demikian, saya menggunakan vim-markdown-folding yang lebih umum untuk lipatan Markdown yang .

Ngomong-ngomong, hanya satu rasa diizinkan, dipisahkan oleh titik, misalnya: filetype=markdown.pandoc

2. gvimmembutuhkanBufFilePre

gvimmembutuhkan tambahan BufFilePredi baris Save As… :savperintah otomatis untuk pengenalan tipe file Markdown dengan perintah.

Serge Stroobandt
sumber
15

Dalam Tim Plugin yang .md ekstensi bekerja hanya untuk README.md karena filetype.vim menspesifikasikan begitu.

" Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,README.md  setf markdown
Sederhana
sumber
1
Salah; Anda harus memikirkan pemasangan Vim default, yang berlaku seperti ini. Plugin Tim menimpanya untuk semua file .md. Lihat github.com/tpope/vim-markdown/blob/master/ftdetect/markdown.vim
corvec
7

Jika Anda tidak suka memasukkan semua konfigurasi ~/.vimrcAnda, Anda dapat membuat ~/.vim/ftdetect/markdown.md(atau yang setara pada Windows) dengan konten berikut.

au BufNewFile,BufRead *.md setf markdown

ajmccluskey
sumber