レバテックフリーランスのサイトに当サイトが紹介されました!

VimrepressとNeosnippetを使って快適にMarkdownでWordPress投稿する環境構築

WordPressへの投稿は、Vim + Vimrepressプラグインという環境で書いております。

Markdownで、Vimで、書けるので幸せなのですが、HTMLタグやMarkdown記述をより簡単に行いたい

というわけで、今回はVimで定型文記述を簡単にするNeosnippetプラグインを導入して、よりブログ投稿しやすい環境を構築します。

Neosnippetを導入してHTML,Markdownを書きやすくする

VimのプラグインNeosnippetを早速導入しましょう。各自お使いのプラグインマネージャ等で導入。NeoBundleなら以下の2行です。


NeoBundle 'Shougo/neosnippet'
NeoBundle 'Shougo/neosnippet-snippets'

 

Snippet用ショートカット設定は、ドキュメントどおりに以下の設定。


imap <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)
xmap <C-k> <Plug>(neosnippet_expand_target)

imap <expr><TAB>
 \ pumvisible() ? "\<C-n>" :
 \ neosnippet#expandable_or_jumpable() ?
 \    "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable_or_jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"

 

これで、<Ctrl+k>でスニペットの展開、Tabで入力箇所へカーソル移動などが行われるようになります。NeoComleteなどが導入されていれば、補完候補としても表示されます。

これで準備は完了。簡単。

 

HTML用のSnippetは
.vim/bundle/neosnippet-snippets/neosnippets/html.snip

Markdown用のSnippetは
.vim/bundle/neosnippet-snippets/neosnippets/markdown.snip

これでfiletypeがhtmlやmarkdownファイルであれば、ファイルの中身のsnippetに書いてあるワードを打ち込んででスニペットが展開されます。NeoComleteなどで補間される場合、補完候補を確定させてから <Ctrl+k> で同様に展開できます。

Vimrepressで開いたバッファでSnippetを使う

Vimrepressで投稿を書く場合、:BlogNewなどで作成されるバッファは、filetypeはhtmlでもmarkdownでもありません。htmlのsにペットも、markdownのスニペットも有効にはなりません。そのため以下のautocmd設定をすることで、強制的にスニペットを有効にします。


autocmd Syntax md_blogsyntax NeoSnippetSource $HOME/.vim/bundle/neosnippet-snippets/neosnippets/markdown.snip
autocmd Syntax md_blogsyntax NeoSnippetSource $HOME/.vim/bundle/neosnippet-snippets/neosnippets/html.snip

Vimrepressで作成されるバッファには、filetypeは設定されませんが、syntaxがmd_blogsyntaxが設定されます。これを利用してautocmdイベントを作成します。

これで、Vimrepressのバッファでもhtml,markdownのスニペットが有効になります。

独自のsnippetを追加する

html,markdownのデフォルトのsnippetでも多くの雛形が用意してあり有用ではあるのですが、結構多くつかう、画像挿入などの雛形は

snippet alturltitle abbr ![alt](url "title") options word ![${1:#:alt}](${2:#:url} "${3:#:title}")${4}

当然自分のサイトURLなどは手打ちになるわけですよね。それじゃあ意味がない。ということで自分専用のsnippetを導入しましょう。

導入方法は簡単で、インストール済みのsnippetと同様のフォーマットのファイルを作って読み込むだけです。

僕は、$HOME/vimfiles/snippets/myweb.snip というファイルを作って、


snippet flt_img
alias f_i
    ![${1:#:text}](https://freelifetech.com/hogehoge/${2:#:url} "${3:#:title}")

こんな感じのスニペットを作っています。

このsnippetの有効化は、既存のファイルと同じようにして読み込みます。

autocmd Syntax md_blogsyntax NeoSnippetSource $HOME/vimfiles/snippets/myweb.snip

 
 

以上、VimrepressにNeosnippetを加えて、Vimでブログを書きやすくする環境構築でした。

コメント

タイトルとURLをコピーしました