VS CodeをMarkdownエディタとして使う
この記事ではVS CodeでMarkdownをフォーマットしてみます。
プログラミングスクールのフィヨルドブートキャンプで日報を書く際、Markdownで記述する必要があります。筆者はすでに開発用としてVS Codeを使っているので、 ツールの分散を避けるためにVS CodeでMarkdownを書けるよう環境を整えました。
また、VS CodeはMarkdown専用エディタとしても優秀だと思いますので、
どちらの方にも役に立つ内容かと思います。
使用環境
動作を確認した環境は以下の通りです。
- macOS Big Sur 11.3
- Visual Studio Code 1.55.2
- Prettier - Code formatter 6.3.2
前提
Markdownを格納しておくディレクトリを任意の場所に用意しておくことをオススメします。筆者はバックアップと同期を使用しているので、~/Googleドライブ
にfjold_note
ディレクトリを設置し、日報編集用のファイルdairy_report.md
などを格納しています。
setting.jsonの編集方法、コマンドパレットの開き方、ショートカットキーの変更方法がわからない方は下記のリンクをご確認ください。
- 【VSCode】settings.jsonを開いて表示する方法と、デフォルト設定を確認する方法
- 【VSCode】コマンドパレットを利用して操作する方法|メニューにない場合など
- Visual Studio Codeで簡単にショートカットキーを変更する方法 - Qiita
改行の設定を変更
VS CodeのMarkdown記述はデフォルトで「半角スペースを2つ行末にいれて改行」となります。これはMarkdownの正式な記述方法なのですが、setting.jsonに下記の通り記述することで意図した改行が反映されるようになります。
"markdown.ipreview.breaks": true,
ただし、コピペ先がはてなブログなどの場合は半角スペースを2つ行末にいれないと段落内で改行されませんのでご注意ください。
拡張機能のインストール
見出しのリンクからインストールできます。
Prettier - Code formatter
setting.jsonに下記を記載しておくことで、ファイル保存時に自動整形してくれます。
"editor.formatOnSave": true
ただし、Markdownをフォーマットする際に英語(アルファベット)と日本語の間に半角スペースを入れてしまいます。
たとえば、
ChromeとFirefoxはブラウザ
→Chrome と Firefox はブラウザ
と、このようにフォーマットされてしまいます。
VS Codeを開発用に使用されている方は、後述の解決方法を御覧ください。 VS CodeをMarkdown専用エディタとして使用する方は、この拡張機能は削除して頂いて構いません。
Remark
Prettier
の代用です。コマンドパレットからRemark: Beautify markdown code
を入力するとMarkdownのフォーマットができます。
Markdown All in One
ショートカットや補完を揃えた必須の拡張機能です。
参考:VS CodeでMarkdownを書くために便利な拡張機能Markdown All in One
Markdown Preview Enhanced
Markdownファイルを開いた状態で、command
+ shift
+ V
でプレビュー画面が表示されます。また、コマンドパレットから「Markdown Preview Enhanced: Create TOC」を実行することで目次を自動生成してくれます。こちらもショートカットを登録しておくことをオススメします。
markdownlint
テキスト校正くん
日本語の文章をチェックする拡張機能です。必須ではないと思います。
markdownlint
とテキスト校正くん
はこのように問題パネルにエラー内容を表示してくれます。
Create Link
こちらはタイトル付きリンクを貼るのに便利なChrome拡張機能です。
1. Create Linkをインストール後にオプションを開きます。
2. デフォルトをmarkdown
に設定します。
3. Configure shortcutからショートカットを設定します。筆者はcommand
+ L
にしています。
4. Chromeのタブを開いた状態でショートカットを実行すると、クリップボードにMarkdown形式のリンクがコピーされます。
Prettierの半角スペース挿入問題を解決
対処法1 拡張機能RemarkでMarkdownのフォーマットを行う
今回はこちらを採用しました。
"[markdown]": { "editor.formatOnSave": false },
- settings.jsonを開き、下記のように記述することで
Remark
の設定を変更できます。下記の例ではmarklint
やテキスト校正くん
に引っかからないように設定しています。お好みでカスタマイズしてみてください。
"remark.format": { "rules": { "listItemIndent": 1, "fences": true } },
コマンドパレットからRemark: Beautify markdown code
にショートカットキーを登録しておくことをオススメします。筆者はoption
+ R
にしています。
対処法2 Prettierのプラグインをインストールする
npm/yarnでprettier
とprettier-plugin-md-nocjsp
(有志によるプラグイン)をローカルまたはグローバルインストールします。
$ prettier -w *.md
上記のコマンドで、カレントディレクトリのMarkdownをフォーマットすることが可能です。
対処法3 Prettierのソース(index.js)に手を加えて挙動を強引に制御する
~/.vscode/extensions/esbenp.prettier-vscode-6.3.2/node_modules/prettier/index.js
上記を編集する方法です。半角スペースを挿入しているらしき処理は何箇所か確認できましたが、編集してもうまく動作しなかったため筆者のような初心者は手を出さない方が無難です。
まとめ
現状はこのように対処しましたが、将来Prettier
のバージョンアップで解決する可能性があります。よりよい方法や質問があれば、ぜひコメントでお知らせください。
参考文献
以下の記事を参考にさせていただきました。 執筆者様に感謝します。
- VSCodeでMarkdownの改行をする - Qiita
- Visual Studio Code で Markdown 編集環境を整える - Qiita
- PrettierでMarkdownをフォーマットしたときの英語と日本語の間に入るスペースをどうにかする - Qiita
- VSCode の 拡張機能(Markdown Preview Enhanced)で目次の自動生成と CSS で見た目をカスタマイズする | Snow System
- [VSCode] Prettierをアップデートしたら言語単位でのフォーマット無効設定が動作しなくなったので対処した話 | DevelopersIO
- VSCodeでMarkdownの自動フォーマット&整形ルールを自由に設定 - Qiita