Visual Studio で Ubuntu ライクな競プロ環境

概要

今まで競プロを Ubuntu 上でテキストエディタSpacemacsコンパイラgccコマンドライン
から参加していました.最近とあることから Windows に改宗して開発環境を Visual Studio にしたため競プロから離れていました(本当は違う理由).改宗しても今まで慣れ親しんだ環境が忘れられなく Windows 上で近い環境を構築したのでメモを残します.

手順

Visual StudioWSL はインストールされているとします.

1. Visual Studio を開く

「コードなしで続行(W)」で開く.
「ローカルフォルダを開く(F)」を選択して既存のディレクトリを開いてもよいのですが「.vs」というフォルダが作成されます.
 f:id:tatanaideyo:20201027141440p:plain:w250

2. PowerShell を開く

「表示(V)」 >「ターミナル」を選択すると下に PowerShell のウィンドウが開くので「bash」と入力します(画像からプロンプトの一部は消しています).
 f:id:tatanaideyo:20201028094357p:plain:w300

3. ソースファイルを開いてコンパイル

PowerShell という名の bash で目的のディレクトリに移動します.私の場合は template_prob というディレクトリに雛形を作成ているのでそれをコピーしています.ソースコードは「開く」 > 「ファイル」から開きます.
 f:id:tatanaideyo:20201028094742p:plain:w300

4. プログラム作成・コンパイル・テスト

ここからは Ubuntu 上での実行手順と同じなので目的は完了しました.あとはいくつか Tips を紹介します.
 f:id:tatanaideyo:20201028095134p:plain:w300

 

WSL で Windows 上のデスクトップを Ubuntu 上にシンボリックリンク

上の画像でカレントディレクトリが /mnt/c/Users/staic/source/repos にいるときに cd コマンドを入力すると Windows 上のデスクトップに移動しています.保存先を Windows 上にしたい場合は楽です.

# 第一引数は Windows 上の場所,第二引数は Ubuntu 上の場所
$  ln -s /mnt/c/Users/hoge/OneDrive/デスクトップ ~/desktop

 

ウィンドウを分割

ファイルを複数を開いているときに「ウィンドウ(W)」 > 「垂直方向のドキュメントグループの新規作成(V)」を選択するとウィンドウが左右に分割されます.選択中のファイルが右ウィンドウに表示されます.テストデータを右に表示に表示すると少し便利かもしれません.
 

ソリューションエクスプローラーを使用する

手順1で「ローカルフォルダーを開く(F)」を選択してディレクトリを開くとソリューションエクスプローラにフォルダ階層が表示されるので,より直感的に GUI 操作ができます.「コードなしで続行(W)」で Visual Studio を開いた後も「ファイル」 > 「開く」 > 「ファイル」を選択すると同様にできます.
この欠点はそのフォルダ上に「.vs」というフォルダが作成されることです.シンプルな環境を求めてるのに何か変なものが作成されるなんて綺麗好きな人には溜まったもんではないでしょう.

おわりに

競プロのように 1 つのソースコード上でプログラミングするとき統合開発環境は少し大げさに感じてしまいすが,より簡潔な方法で以前の環境を再現できて満足です(もちろん Emacs Keybindings を使用しています).ただし,テストデータを cat コマンドでペーストするときに空行が入るのが残念です.
本当ならば WSL 上で Spacemacs を使うのがベストなのですが問題がいくつかあり達成できていません.ただ WSL の最近の進歩が凄そうなので数年後には達成できているのではないかと楽しみです.