Help us understand the problem. What is going on with this article?

quickrunで実行コマンドを複数設定して, 自由に切り替える (Markdownを例に)

More than 3 years have passed since last update.

はじめに

quickrunでは, FileTypeによっては, デフォルトで
複数の実行コマンドが登録されていて, 優先順位が設定されている.
その設定を変更・追加する.

デフォルトの設定

例えば, Ver. 0.60では, Markdownの設定は下記のようになっている (316~339行目あたり).
ここで, Markdownの実行コマンドの優先順位は,

Markdown.pl, kramdown, bluecloth, redcarpet, pandoc

となっている.

vim-quickrun/autoload/quickrun.vim
let g:quickrun#default_config = {
~ 中略 ~
\ 'markdown': {
\   'type': executable('Markdown.pl') ? 'markdown/Markdown.pl':
\           executable('kramdown') ? 'markdown/kramdown':
\           executable('bluecloth') ? 'markdown/bluecloth':
\           executable('redcarpet') ? 'markdown/redcarpet':
\           executable('pandoc') ? 'markdown/pandoc': '',
\ },
\ 'markdown/Markdown.pl': {
\   'command': 'Markdown.pl',
\ },
\ 'markdown/bluecloth': {
\   'command': 'bluecloth',
\   'cmdopt': '-f',
\ },
\ 'markdown/kramdown': {
\   'command': 'kramdown',
\ },
\ 'markdown/pandoc': {
\   'command': 'pandoc',
\   'exec': '%c --from=markdown --to=html %o %s %a',
\ },
\ 'markdown/redcarpet': {
\   'command': 'redcarpet',
\ },
~ 中略 ~
}

設定の変更・追加

下記のように実行コマンドを追加し, 優先順位を変更したいとする.

mdown (gh-markdown-cli), pandoc, multimarkdown, MultiMarkdown.pl, rdiscount, bluecloth, markdown, Markdown.pl, redcarpet, kramdown

また, 出力先をウェブ・ブラウザに変更する.
この場合, 以下を~/.vimrcに追記する.

~/.vimrc
let g:quickrun_config = {
\
\    'markdown': {
\
\      'outputter': 'browser',
\
\      'type':
\              executable('mdown')            ? 'markdown/mdown':
\              executable('pandoc')           ? 'markdown/pandoc':
\              executable('multimarkdown')    ? 'markdown/multimarkdown':
\              executable('MultiMarkdown.pl') ? 'markdown/MultiMarkdown.pl':
\              executable('rdiscount')        ? 'markdown/rdiscount':
\              executable('bluecloth')        ? 'markdown/bluecloth':
\              executable('markdown')         ? 'markdown/markdown':
\              executable('Markdown.pl')      ? 'markdown/Markdown.pl':
\              executable('redcarpet')        ? 'markdown/redcarpet':
\              executable('kramdown')         ? 'markdown/kramdown':
\              '',
\
\    },
\
\    'markdown/mdown': {
\      'command': 'mdown',
\      'exec': '%c -i %s',
\    },
\
\    'markdown/multimarkdown': {
\      'command': 'multimarkdown',
\    },
\    'markdown/MultiMarkdown.pl': {
\      'command': 'MultiMarkdown.pl',
\    },
\
\    'markdown/rdiscount': {
\      'command': 'rdiscount',
\    },
\
\    'markdown/markdown': {
\      'command': 'markdown',
\    },
\
\ }

実行コマンドの確認

MarkdownファイルをVimで開いた後に, 実際に選択されたコマンドは, 以下で確認できる.

:echo g:quickrun_config.markdown.type

または,

:echo g:quickrun_config['markdown']['type']

実行コマンドの切替

実行コマンドは, 例えば以下のようにして切り替えることができる.

:let g:quickrun_config.markdown.type = 'markdown/pandoc'

または,

:let g:quickrun_config['markdown']['type'] = 'markdown/pandoc'

さらに, unite-quickrun_configを用いて, Uniteで切り替えることもできる.

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away