Làm cách nào để xem trước kết quả của tệp markdown được chỉnh sửa trong vim?


8

Tôi sử dụng vim để chỉnh sửa latex, nhưng latex quá nặng để ghi chú ngẫu nhiên hàng ngày, vì vậy tôi quyết định sử dụng markdown thay thế.

Vì vậy, tôi muốn cấu hình vim để tôi có thể xem tệp được định dạng markdown bằng \lvlệnh

Tôi đang sử dụng Mac OS X 10.11. Tôi nên sửa đổi tệp .vimrc như thế nào?


3
Bạn đã tìm kiếm một số plugin như thế này chưa?
statox

3
Bạn không cần phải xem trước markdown.
romainl

1
@romainl Sẽ thật tuyệt nếu tôi có thể.
Tom

2
@romainl Vâng và tôi không cần tô sáng cú pháp. Không giảm giá thực tế là nó hữu ích.
Tommy A

2
@romainl Tôi đã vẽ song song "cần so với muốn".
Tommy A

Câu trả lời:


10

Mặc dù tôi hầu hết đồng ý với nhận xét @romainl (đánh dấu được thực hiện đủ rõ ràng để không cần xem trước), bạn có thể thực hiện việc này theo nhiều cách khác nhau:

[OSX / Unix] Các instant-markdown Plugin là một giải pháp. Bạn cần cài đặt node.js và sử dụng lệnh sau:

[sudo] npm -g install instant-markdown-d

Bạn cũng cần phải có các gói xdg-utils, curlnodejs-legacycài đặt.

Với điều đó khi bạn mở bộ đệm đánh dấu, một trang html sẽ được mở trong trình duyệt web của bạn và bạn sẽ thấy những thay đổi trong thời gian thực.


[Unix] Câu trả lời này gợi ý sử dụng chương trình đánh dấu táo bạo .

Khi bạn đã tải xuống, bạn có thể sử dụng lệnh sau để xem tệp trong lynx :

./Markdown.pl ~/testfile.markdown | lynx -stdin

Bạn có thể sử dụng nó trong một lệnh Vim với một cái gì đó như thế:

:!./Markdown.pl % | lynx -stdin

[Unix] Một plugin khác có thể hữu ích là vim-preview nó dường như có một số phụ thuộc nhưng nên hoạt động trên các tệp markdown, rdoc, dệt, ronn và rts.


[Windows / OSX] Cuối cùng, người dùng github natesilva đã tạo ra một ý chính rất tốt chỉ yêu cầu markdownlệnh trong đường dẫn của bạn. Khi bạn đã tạo tập lệnh, ,psẽ mở phần đánh dấu của bạn trong trình duyệt mặc định.

"
" While editing a Markdown document in Vim, preview it in the
" default browser.
"
" Author: Nate Silva
"
" To install: Place markdown.vim in ~/.vim/ftplugin or
" %USERPROFILE%\vimfiles\ftplugin.
"
" To use: While editing a Markdown file, press ',p' (comma p)
"
" Tested on Windows and Mac OS X. Should work on Linux if you set
" BROWSER_COMMAND properly.
"
" Requires the `markdown` command to be on the system path. If you
" do not have the `markdown` command, install one of the following:
"
" http://www.pell.portland.or.us/~orc/Code/discount/
" http://www.freewisdom.org/projects/python-markdown/
"
function!PreviewMarkdown()
    " **************************************************************
    " Configurable settings

    let MARKDOWN_COMMAND = 'markdown'

    if has('win32')
        " note important extra pair of double-quotes
        let BROWSER_COMMAND = 'cmd.exe /c start ""'
    else
        let BROWSER_COMMAND = 'open'
    endif

    " End of configurable settings
    " **************************************************************

    silent update
    let output_name = tempname() . '.html'

    " Some Markdown implementations, especially the Python one,
    " work best with UTF-8. If our buffer is not in UTF-8, convert
    " it before running Markdown, then convert it back.
    let original_encoding = &fileencoding
    let original_bomb = &bomb
    if original_encoding != 'utf-8' || original_bomb == 1
        set nobomb
        set fileencoding=utf-8
        silent update
    endif

    " Write the HTML header. Do a CSS reset, followed by setting up
    " some basic styles from YUI, so the output looks nice.
    let file_header = ['<html>', '<head>',
        \ '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">',
        \ '<title>Markdown Preview</title>',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssreset/reset-min.css">',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssbase/base-min.css">',
        \ '<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.3.0/build/cssfonts/fonts-min.css">',
        \ '<style>body{padding:20px;}div#container{background-color:#F2F2F2;padding:0 20px;margin:0px;border:solid #D0D0D0 1px;}</style>',
        \ '</head>', '<body>', '<div id="container">']
    call writefile(file_header, output_name)

    let md_command = '!' . MARKDOWN_COMMAND . ' "' . expand('%:p') . '" >> "' .
        \ output_name . '"'
    silent exec md_command

    if has('win32')
        let footer_name = tempname()
        call writefile(['</div></body></html>'], footer_name)
        silent exec '!type "' . footer_name . '" >> "' . output_name . '"'
        exec delete(footer_name)
    else
        silent exec '!echo "</div></body></html>" >> "' .
            \ output_name . '"'
    endif

    " If we changed the encoding, change it back.
    if original_encoding != 'utf-8' || original_bomb == 1
        if original_bomb == 1
            set bomb
        endif
        silent exec 'set fileencoding=' . original_encoding
        silent update
    endif

    silent exec '!' . BROWSER_COMMAND . ' "' . output_name . '"'

    exec input('Press ENTER to continue...')
    echo
    exec delete(output_name)
endfunction

" Map this feature to the key sequence ',p' (comma lowercase-p)
map ,p :call PreviewMarkdown()<CR>

Chỉnh sửa @TommyA cũng đề xuất kẹp đây không phải là plugin vim nhưng nó có thể được cài đặt pip install grip. Ưu điểm chính của chương trình này là nó sử dụng API đánh dấu của GitHub, do đó kết xuất sẽ khá gần với giao diện đánh dấu của bạn sẽ trông như thế nào trên các trang Github.

Chương trình này sẽ phục vụ các tệp markdown của bạn localhost:6419theo mặc định. Bạn có thể gọi nó từ Vim với:!grip


Ngoài ra còn có kẹp mà làm cho đánh dấu hương vị GitHub.
Tommy A

@TommyA markdown ngay lập tức cũng biểu hiện markdown có hương vị GitHub nhưng một lựa chọn khác cũng tốt. Grip có vẻ tốt bởi vì nó không phải phụ thuộc nhiều (một khi bạn đã sử dụng pip, có vẻ như bạn tốt để đi). Cám ơn bạn đã góp ý!
statox

Ah đã bỏ lỡ điều đó. Tuy nhiên, độ bám sử dụng API đánh dấu của GitHub. Vì vậy, nó phải luôn được hiển thị gần như chính xác cách nó sẽ xuất hiện trên GitHub, bao gồm cả tô sáng ngôn ngữ và biểu tượng cảm xúc. Ngoài ra còn có một yêu cầu kéo để đưa nó vào kết xuất WikiLinks.
Tommy A

@statox Có cách nào để đặt vim sao cho instant-markdown pluginđược kích hoạt cho .mdtiện ích mở rộng không?
Tom

@TommyA: Oh thật tốt khi biết điều đó. Bạn có muốn tôi thêm nó vào câu trả lời của tôi không hoặc bạn muốn đưa ra câu trả lời của riêng mình
statox
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.