Kích hoạt đánh dấu đánh dấu trong Vim


138

Tôi đang sử dụng Vim trong một thiết bị đầu cuối trên MacBook Air với OS X Lion và dường như tôi không thể tìm thấy một plugin tốt để làm nổi bật cú pháp Markdown.

Cho đến nay tôi đã thử plugin plasticboy và plugin Tim Pope . Plugin plasticboy hoạt động tốt nhưng làm cho khoảng trắng ở cuối dòng được tô sáng và tôi chưa tìm ra cách tắt nó. (Điều đó thực sự gây phiền nhiễu, bởi vì mỗi lần tôi nhấn spacekhi tôi viết nó đều làm nổi bật nhân vật.)

Plugin của Tim dường như không làm được gì nhiều trong cách làm nổi bật, ngoài những tiêu đề có thể sử dụng ###. Khối mã và đạn được bỏ qua. Tôi có thể đang thiếu một cái gì đó ở đó. Tôi sử dụng .mdphần mở rộng trên các tệp Markdown của mình, vì vậy nó nên chọn kiểu tệp.

Tôi cũng đã thấy một tài liệu tham khảo về Vim 7.3 có hỗ trợ Markdown được tích hợp, nhưng không có một trong hai plugin đó, tôi không nhận được bất kỳ sự nổi bật nào cả.

Do một trong hai yêu cầu phối màu cụ thể để làm việc?


24
*.mdkhông phải là phần mở rộng đúng cho markdown. Đó là một cho các tập tin modula. Plugin Tpope hoạt động tốt (tất cả các plugin này hoạt động tốt) Bạn nên sử dụng *.markdowntiện ích mở rộng
lucapette

7
@lucapette các ftdetect cho plugin Tim Pope không cũng bao gồm *.md, cùng với: *.markdown,*.mdown,*.mkd,*.mkdn. Plugin plasticboy chỉ tự động phát hiện*.mkd,*.markdown,*.mdwn
pb2q

1
Từ nguồn plugin plasticboy, có vẻ như nó thực sự cũng phát hiện ra .md. Hiện tại tôi đang bị khóa trong tiện ích mở rộng này vì tôi đang sử dụng Scriptogr.am cho blog của mình và đó là tiện ích mở rộng duy nhất họ nhận ra ngay bây giờ.
Josh Earl

1
Chỉ cần tìm thấy cái này và nó thật tuyệt vời khi đánh dấu hương vị github: github.com/jtratner/vim-flavored-markdown
Matthew Turner

Đối với các vấn đề với plasticboy / vim-markdown , vui lòng mở các vấn đề về các dự án để các nhà phát triển có thể giải quyết nó. Tôi thấy rằng các khoảng trắng kéo dài là một hành vi tốt vì không gian kép tạo ra <br>các thẻ, vì vậy các nhà văn nên được biết về điều đó.
Ciro Santilli 郝海东 冠状 病 事件

Câu trả lời:


22

Điều này sẽ hoạt động để vô hiệu hóa đánh dấu không gian cuối dòng khi sử dụng plugin mkd plasticboy:

:syn clear mkdLineBreak

Bạn có thể autocmdlàm điều đó cho các phần mở rộng tệp cần thiết để bạn không cần làm điều đó mỗi khi bạn tải tệp đánh dấu.

Lưu ý rằng điểm nổi bật cụ thể này tồn tại bởi vì Markdown xử lý các dòng kết thúc bằng 2 hoặc nhiều ký tự khoảng trắng đặc biệt bằng cách chèn một <br>, vì vậy nó rất hữu ích.

Các plasticboy Plugin sử dụng TODOlàm nổi bật cho quy tắc này, đó một chút quá nhiều vì nó được thiết kế để, theo mặc định, được thực sự sặc sỡ - nền vàng - để nó nổi bật. Bạn có thể làm cho điều này ít ấn tượng hơn bằng cách thay đổi highlightquy tắc đó . Một cách nhanh chóng để làm điều này sẽ là một cái gì đó như:

:hi link mkdLineBreak Underlined

Bây giờ những không gian cuối dòng sẽ hiển thị dưới dạng gạch chân. Hãy thử liên kết với các highlightnhóm khác để biết điều gì đó có thể thu hút bạn hơn. Thay vì sử dụng, linkbạn có thể nhận được cụ thể hơn về các không gian cuối dòng đó: ví dụ: bạn có thể chỉ định rằng chúng hiển thị chỉ hơi sáng / tối hơn nền bình thường, sử dụng highlightlệnh của riêng bạn , chỉ định ctermfg , ctermbg , guifg tùy chỉnh , cài đặt guibg .

Như trên, bạn có thể autocmdáp dụng cài đặt cụ thể này.

Để biết thêm thông tin về highlightcác nhóm liên kết , hãy nhập: :help group-namevà bạn sẽ thấy một danh sách các nhóm có thể được liên kết mà chính chúng sẽ được hiển thị một cách hữu ích bằng cách sử dụng các highlightquy tắc hiện tại của chúng . Ngoài ra : :help highlight.


2
Điều đó làm cho rất nhiều ý nghĩa. Không nhận ra rằng hai không gian có ý nghĩa trong Markdown. Tôi nghĩ rằng tôi sẽ để nó được kích hoạt trừ khi nó tiếp tục làm phiền tôi. Cảm ơn!
Josh Earl

Vâng, đó là lý do tại sao điểm nổi bật không phát huy cho đến khi 2 khoảng trống được nhập vào.
pb2q

@ josh-Earl xem các chỉnh sửa của tôi để biết thêm các lựa chọn thay thế khi sử dụng plugin plasticboy
pb2q

308

Về phần tô sáng cú pháp riêng cho markdown tôi nghĩ rằng nó chỉ hoạt động cho các tệp có phần mở rộng .markdowntheo mặc định.
Tôi đã gặp vấn đề với đánh dấu cú pháp đánh dấu cho .mdcác tập tin của tôi .
Tôi đã thử:

:set syntax=markdown

Va no đa hoạt động. Vì vậy, tôi bao gồm các dòng sau trong .vimrc:

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

Bây giờ vim của tôi có cú pháp tô sáng cho .mdcác tập tin của tôi .

BufFilePre là cần thiết cho: sav


13
Đối với bất cứ ai khác đọc điều này: có, nó hoạt động và là một giải pháp đơn giản hơn nhiều cho vấn đề hơn là cài đặt một plugin. Cách nhanh chóng để thực hiện việc này từ dòng lệnh: echo "au BufRead, BufNewFile * .md set filetype = markdown" >> .vimrc
RobinLigsace

11
Dường như với tôi rằng đây nên là câu trả lời được chấp nhận.
Enrico Campidoglio

4
@SamStoelinga Đây không phải là lỗi, .mdcũng được Modula sử dụng. Phát hiện cái nào để sử dụng sẽ đòi hỏi một số phương pháp phỏng đoán tiên tiến.
nyuszika7h

8
Kể từ Vim 7.4.480, *.mdcác tệp được nhận dạng là Markdown theo mặc định.
fwalch 5/2/2015

1
Đúng, nhưng không đầy đủ. Để điều này hoạt động tương tự với Save As… :savlệnh, người ta cần mở rộng chế độ tự động thành BufFilePre:autocmd BufNewFile,BufFilePre,BufRead *.md set filetype=markdown
Serge Stroobandt

19

Làm nổi bật cú pháp gốc

Làm nổi bật cú pháp gốc cho Markdown chỉ hoạt động theo mặc định cho .markdown phần mở rộng tệp.

Dòng sau đây .vimrcmang lại kết quả tốt nhất cho cả hai vimgvim:

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

Giải trình:

1. Chỉ định hương vị Markdown của bạn!

Nếu bạn làm việc với chủ yếu một hương vị của Markdown (ví dụ Pandoc ), hãy chắc chắn đề cập đến điều này! Làm như vậy, cho phép trộn và kết hợp cả hai trình cắm Vim dành riêng cho Markdown và Pandoc. Ví dụ: Tôi đã tìm thấy trình cắm vim-pandoc-cú pháp đặc biệt phù hợp với nhu cầu làm nổi bật của tôi. Tuy nhiên, tôi sử dụng cách gấp vim-markdown-gấp cho việc gấp Markdown.

Nhân tiện, chỉ có một hương vị được cho phép, cách nhau bởi một dấu chấm, ví dụ: filetype=markdown.pandoc

2. gvimyêu cầuBufFilePre

gvimyêu cầu bổ sung BufFilePretrong dòng tự động nhận dạng để nhận dạng loại tệp Markdown bằng Save As… :savlệnh.


15

Trong Tim cắm các .md mở rộng chỉ hoạt động cho README.mdfiletype.vim quy định cụ thể như vậy.

" Markdown
au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,README.md  setf markdown

1
Sai; bạn phải nghĩ đến việc cài đặt Vim mặc định, hoạt động theo cách này. Plugin của Tim ghi đè lên nó cho tất cả các tệp .md. Xem github.com/tpope/vim-markdown/blob/master/ftdetect/markdown.vim
corvec

7

Nếu bạn không muốn đưa tất cả cấu hình của mình vào ~/.vimrc, bạn có thể tạo ~/.vim/ftdetect/markdown.md(hoặc tương đương với Windows) với các nội dung sau.

au BufNewFile,BufRead *.md setf markdown

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.