Bagaimana cara melihat pratinjau hasil file penurunan harga yang diedit di vim?

8

Saya menggunakan vim untuk mengedit latex, tetapi lateks agak terlalu berat untuk membuat catatan dengan santai setiap hari, jadi saya memutuskan untuk menggunakan penurunan harga sebagai gantinya.

Jadi, saya ingin mengkonfigurasi vim sehingga saya bisa melihat file yang diformat penurunan harga menggunakan \lvperintah

Saya menggunakan Mac OS X 10.11. Bagaimana saya harus memodifikasi file .vimrc?

Tom
sumber
3
Sudahkah Anda mencari beberapa plugin seperti ini ?
statox
3
Anda tidak perlu mempratinjau penurunan harga.
romainl
1
@romainl Akan lebih baik jika saya bisa.
Tom
2
@romainl Ya dan saya tidak perlu menyoroti sintaks. Tidak mengabaikan fakta bahwa ini berguna.
Tommy A
2
@romainl Saya menggambar paralel "perlu vs inginkan".
Tommy A

Jawaban:

10

Meskipun saya sebagian besar setuju dengan komentar @romainl (penurunan harga dibuat cukup eksplisit untuk tidak memerlukan pratinjau) Anda dapat melakukan ini dengan cara yang berbeda:

[OSX / Unix] The instant-penurunan harga Plugin adalah solusi. Anda perlu menginstal node.js dan menggunakan perintah berikut:

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

Anda juga perlu memiliki paket xdg-utils, curldan nodejs-legacydiinstal.

Dengan itu ketika Anda membuka buffer markdown, halaman html akan dibuka di browser web Anda dan Anda akan melihat perubahannya secara real time.


[Unix] Jawaban ini menyarankan untuk menggunakan program penurunan harga daringfireball .

Setelah Anda mengunduhnya, Anda dapat menggunakan perintah berikut untuk melihat file di lynx :

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

Anda bisa menggunakannya dalam perintah Vim dengan sesuatu seperti itu:

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

[Unix] Plugin lain yang dapat berguna adalah vim-preview yang tampaknya memiliki beberapa dependensi tetapi harus bekerja pada file markdown, rdoc, tekstil, ronn dan rts.


[Windows / OSX] Akhirnya pengguna github natesilva membuat intisari yang sangat bagus yang hanya membutuhkan markdownperintah di jalur Anda. Setelah Anda membuat skrip, Anda ,pharus membuka penurunan harga di browser default.

"
" 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>

Mengedit @TommyA juga menyarankan grip ini bukan vim Plugin tetapi dapat diinstal dengan pip install grip. Keuntungan utama dari program ini adalah bahwa ia menggunakan API penurunan harga GitHub sehingga render harus cukup dekat dengan apa yang akan terlihat seperti penurunan harga Anda di halaman Github.

Program ini akan menayangkan file penurunan harga Anda localhost:6419secara default. Anda harus dapat memintanya dari Vim dengan:!grip

statox
sumber
Ada juga pegangan yang membuat penurunan rasa GitHub.
Tommy A
@TommyA markdown instan juga membuat penurunan rasa GitHub tapi alternatif lain juga bagus. Grip tampaknya bagus karena tidak harus banyak ketergantungan (setelah Anda menggunakannya pipsepertinya Anda baik untuk pergi). Terima kasih atas komentar Anda!
statox
Ah merindukan itu. Namun, pegangan menggunakan API penurunan harga GitHub. Jadi, itu harus selalu diberikan hampir persis bagaimana itu akan muncul di GitHub, termasuk penyorotan bahasa dan emoji. Ada juga permintaan tarik untuk membuatnya merender WikiLinks.
Tommy A
@statox Apakah ada cara untuk mengatur vim sehingga instant-markdown plugindipicu untuk .mdekstensi?
Tom
@TommyA: Oh, itu bagus untuk tahu. Apakah Anda ingin saya menambahkannya ke jawaban saya atau Anda ingin membuat jawaban Anda sendiri
statox