マイVS Code環境(c++,tex,markdown,etc)

<!-- # マイVS Code環境(c++,tex,markdown,etc) -->

# 目的
Qiitaを書いてみたかった.

# c++
拡張機能は特になし.
コンパイルは統合ターミナルにCygwinを設定して行う.
Cygwinを統合ターミナルに設定するためには以下をsetting.jsonに追記.

```json:setting.json
    "terminal.integrated.shell.windows": "C:\\cygwin64\\bin\\bash.exe",
    "terminal.integrated.env.windows": {//起動時のディレクトリをワークスペースに指定
        "CHERE_INVOKING": "1"
    },
    "terminal.integrated.shellArgs.windows": [//ログイン起動
        "-l"
    ]
```

またすばやくエディタ,(VS Code内の)エクスプロラ,ターミナルを移動するためのショートカット. 
   
```json:keybindings.json
    {
        "key": "ctrl+;",
        "command": "workbench.action.terminal.focus",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+;",
        "command": "workbench.action.focusFirstEditorGroup"
        ,"when": "terminalFocus || filesExplorerFocus"
    },
    {
        "key": "ctrl+shift+;",
        "command": "workbench.files.action.focusFilesExplorer"
    }
```
これでファイル移動->編集->コンパイルが手早く行える.

# tex
拡張機能はおなじみのLatexWorkShop.
https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop
以下をsetting.jsonに追記して使う.

```json:setting.json
    "latex-workshop.latex.recipes": [
        {
            "name": "ptex2pdf",
            "tools": [
                "ptex2pdf"
            ]
        }
    ],
    "latex-workshop.latex.tools": [
        {
            "name": "ptex2pdf",
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "%DOC%"
            ]
        },
        {
            "name": "bibtex",
            "command": "pbibtex",
            "args": [
                "%DOCFILE%"
            ]
        }
    ],
    "latex-workshop.chktex.enabled": true,
    "latex-workshop.latex.autoBuild.onSave.enabled": false,
    "latex-workshop.view.pdf.viewer": "browser",
```

bibtexを使いたいときはworkspaceでsetting.jsonの上書き.
以下keybindings.json
synctex用.

```json:keybindings.json
    {
        "key": "ctrl+alt+enter",
        "command":"latex-workshop.synctex",
        "when": "editorTextFocus"
    }
```

# markdown
メモを書くとき使う.
文章書くときのモチベ維持が目的.
## MarkdownPreviewEnhanced
https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced
見た目をいじれたり,数式かけたり,mermaid.jsかけたり.
とにかく多機能なviewer.
以下マイsetting.json

```json:setting.json
    "markdown-preview-enhanced.codeBlockTheme": "funky.css",
    "markdown-preview-enhanced.mermaidTheme": "dark",
    "markdown-preview-enhanced.previewTheme": "night.css",
```

## MarkDown PDF
https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf
その名の通りMarkdownをpdfに変換する拡張機能.
pdf以外にもhtml,png,jpegにも変換できるみたい(やったことない).

# その他の拡張機能
## BracketPairColorizer
https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer
カッコに色つけてくれる.
プログラム書くときに重宝する.

## Japanese Language Pack for VS Code
https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-ja

## LocalHistory
https://marketplace.visualstudio.com/items?itemName=xyz.local-history
ファイルの履歴を自動でとっておいてくれる拡張機能.
以下setting.json

```json:setting.json
    "local-history.daysLimit": 30,//一か月前までのファイルを取っておく
    "local-history.saveDelay": 259200,//3日おきに保存
```


## PathAutocomplete
https://marketplace.visualstudio.com/items?itemName=ionutvmi.path-autocomplete
コード中でファイルのパスを補完してくれる拡張機能.
デフォルトではダブルクオーテーションに囲まれた部分のみ.
texで使いたかったので,以下をsetting.jsonに追記

```json:setting.json
    "path-autocomplete.triggerOutsideStrings": true,
```

## Rainbow CSV
https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv
csvファイルに色付けをしてくれる拡張機能.
鑑賞用.

## sftp
https://marketplace.visualstudio.com/items?itemName=liximomo.sftp
sftpを介してローカルとリモートでディレクトリの同期をしてくれる拡張機能.
これを使っていると開発環境をすべてリモートに押し付けて自分はきれいな環境で生きていきたくなる.
以下.vscode/sftp.jsonのテンプレ

```json:.vscode/sftp.json
{
    "name": "hoge",
    "protocol": "sftp",
    "host": "hostname",
    "username": "username",
    "port": 22,
    "remotePath": "remotePath",
    "uploadOnSave": true,//ローカルにてファイル保存時に自動でアップロード
    "syncMode": "update",//同期時にリモートでローカルに存在しないファイルを削除しない
}
```

## vscode-icons
https://marketplace.visualstudio.com/items?itemName=robertohuertasm.vscode-icons

ファイルのアイコンが種類によって変わって見やすくなる.
以下をsetting.jsonに追記して使う.

```json:setting.json
    "workbench.iconTheme": "vscode-icons",
```

## WakaTime
https://marketplace.visualstudio.com/items?itemName=WakaTime.vscode-wakatime
自分のコーディングをモニターしてくれる.
# その他の設定

```json:setting.json
    "editor.fontFamily": "Ricty",//色々便利なフォント
    "extensions.autoUpdate": false, //拡張機能の自動アブデによる環境破壊を防ぐ
    "workbench.editor.showTabs": false,//タブは見せない
```

# 最後に
初めて書いてみたけど,結構骨が折れる.
みんなすごいな.