VSCodeでMarkdownを書いていると、
Googleアカウント
がGoogle アカウント
みたいに、空白が入ってフォーマットされてしまう。。
いろいろ見ていると、中国語とかの兼ね合いで対応されるのに時間がかかりそう。
回避策を見つけたので試してみたときの備忘録。
回避策
回避策はこんな感じ。
- プラグインを使う(prettier-plugin-md-nocjsp)
- プラグインを使うために、グローバルなnpmのprettierを使う
- VSCodeのタスクでprettierを実行できるようにする
- VSCodeのタスクにショートカットを割り当てる
こんな感じで、今までと同じショートカットキーで、
Markdownをいい感じに整形できるようにする。
グローバルにprettierをインストール
まずはインストール。
$ npm install -g prettier-plugin-md-nocjsp $ npm install -g prettier
VSCodeのsettings.jsonの変更
次に、VSCodeでグローバルにprettierを使うように、
settings.json
に項目を追加。
コマンドパレットからopen settings json
で検索すると出てくる。
// ~/Library/Application Support/Code/User/settings.json { // グローバルのprettierを利用するように変更 "prettier.resolveGlobalModules": true }
VSCodeのタスクを追加
次に、VSCodeのタスクを追加。
tasks.json
を作成して、実行するコマンドなどを設定すればOK。
コマンドパレットからtasks user
で検索すると出てくる。
// ~/Library/Application Support/Code/User/tasks.json { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "formatMarkdown", // タスクの名前 "type": "shell", // shellで実行 "command": "prettier", // 実行するコマンド "args": [ // 実行時の引数 "-w", "${relativeFile}" // 開いているファイルのパス ], "presentation": { // 出力の設定 "reveal": "silent", // 表示条件: silentはエラーがあるときのみ "panel": "dedicated" // どのターミナルに表示するかの設定 } } ] }
tasks.jsonのドキュメントはここ。
・Tasks in Visual Studio Code
タスクの実行は、Tasks: Run Task
でできる。
VSCodeのショートカットにタスクを割り当てる
最後に作ったタスクにショートカットを割り当てる。
markdownのみ&表示中のファイルのみを条件にする。
コマンドパレットからopen shortcuts json
で検索すると出てくる。
// ~/Library/Application Support/Code/User/keybindings.json [ { "key": "ctrl+shift+f", "command": "workbench.action.tasks.runTask", "args": "formatMarkdown", // タスク名を指定 // 実行条件。言語がMarkdownで、エディタフォーカス時、かつ、読み取り専用じゃないとき "when": "editorLangId == markdown && editorTextFocus && !editorReadonly" } ]
keybinding.jsonのドキュメントはここ。
・Visual Studio Code Key Bindings
以上!!
参考にしたサイト様
- PrettierでMarkdownをフォーマットしたときの英語と日本語の間に入るスペースをどうにかする - Qiita
- tats-u/prettier-plugin-md-nocjsp: Prettier Markdown Enhancement plugin - Don't insert spaces between alphanumeric and Han, Hiragana, or Katakana / Prettier Markdown修正プラグイン (英数字・漢字仮名間に半角スペースが挿入されないようになります)
- VSCode+bashのときのビルドタスク設定のファイルパス指定方法 - Qiita
- Visual Studio Codeでキーボードショートカットに外部コマンドを割り当てる - Qiita
- Visual Studio Codeで言語ごとに別のキーバインドを割り当てる
- Tasks in Visual Studio Code