Vimにenダッシュを挿入する標準的な方法は、tommcdoが説明したように、ダイグラフを使用することです。
しかし、私は一般的に二重字を見つけ、特にこの1は(Ctrl+k、-、Shift+N)かなり厄介入力します。ダッシュをより速く入力するには、次のような挿入モードマッピングのペアを、などのファイルタイプファイルに追加できます.vim/after/ftplugin/markdown.vim
。
それぞれen / emダッシュの場合:
inoremap <buffer> --<space> –<space>
inoremap <buffer> -- —
注:<buffer>
このマッピングは、Markdownファイルにのみ適用されることを意味します。これは、2つのハイフンをダッシュに置き換えたくないいくつかのコンテキスト(プログラミングなど)があるために必要です。
これらのマッピングは、私が通常使用するコンテキストでは、ダッシュがスペースで囲まれ、ダッシュがそうではないという事実を利用しています。*したがって、これらのマッピングを使用するということは、使用を余儀なくされることがあり、賢明な出力を得ることができる、あまり能力のないテキストエディターでまったく同じキー押下を使用できることを意味します。**
私は実際には、上記よりもやや複雑な解決策を使用します。これは、印刷上の理由から、emダッシュをヘアスペースで囲むのが好きだからです。Markdown記法でこれらを持つことは、それが読みにくくなりますが、幸いにも、Vimはカーソルが別の行にあるときに、特定の構文アイテムを非表示にすることができ、その「隠す」機能、で、このためのソリューションを持っています***
inoremap <buffer> --<space> –<space>
inoremap <buffer> --  — 
syntax match entity_hairspace " " conceal
setl conceallevel=2
*スペースなしのダッシュを使用する必要がある場合は、マッピングを入力した後にバックスペースを押すだけです。
**通常、このようなエンダッシュを使用しない場合、またはVimを使用したことがない場合は、他の何かを使用してマッピングをトリガーできます(例:--.
および)---
。他のトリガーを使用する場合、これを.vimrcに直接配置し、<buffer>
オプションを削除することもできます。
***また、隠蔽文字cchar
を使用して、構文項目を完全に非表示にする代わりに、単一の文字に置き換えることもできます。エンコードの問題が心配な場合は、これを使用して、Vimに–
ファイル内のHTMLエンティティをダッシュとして表示させることができます。