<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cc="http://web.resource.org/cc/">
	<title>List of Editor [text.Baldanders.info]</title>
	<link rel="alternate" type="text/html" href="https://text.baldanders.info/tags/editor/" />
	<link rel="self" type="application/atom+xml" href="https://text.baldanders.info/tags/editor/index.xml" />
	<id>tag:text.Baldanders.info,2024-07-15:/tags</id>
	<updated>2024-07-15T14:20:40+09:00</updated>
	<subtitle>帰ってきた「しっぽのさきっちょ」</subtitle>
	<icon>https://text.baldanders.info/images/avatar.jpg</icon>
	<logo>https://text.baldanders.info/images/avatar.jpg</logo>

	<entry>
		<title>テキストエディタ Zed を試してみる</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2024/07/text-editor-zed/" />
		<id>tag:text.Baldanders.info,2024-07-15:/remark/2024/07/text-editor-zed/</id>
		<published>2024-07-15T05:20:40+00:00</published>
		<updated>2024-07-15T05:23:48+00:00</updated>
		<summary>Atom エディタの元ユーザとして Zed には期待している。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;p&gt;かつての Atom エディタの開発者が作ったという Rust 製のテキストエディタ &lt;a href=&#34;https://zed.dev/&#34; target=&#34;_blank&#34; title=&#34;Zed - Code at the speed of thought&#34;&gt;Zed&lt;/a&gt; の Linux 版（安定版）が登場したらしい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zed.dev/linux&#34; target=&#34;_blank&#34;&gt;Zed on Linux is here!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zed.dev/blog/zed-on-linux&#34; target=&#34;_blank&#34;&gt;Linux when? Linux now.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.publickey1.jp/blog/24/rustzedlinux.html&#34; target=&#34;_blank&#34;&gt;Rust製のオープンソースエディタ「Zed」のLinux安定版が公開 － Publickey&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;既に macOS 版は存在する。
Windows 版はまだないようだ。&lt;/p&gt;
&lt;p&gt;インストール方法は&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zed.dev/docs/linux&#34; target=&#34;_blank&#34;&gt;Linux - Zed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を参照のこと。
大抵の場合はインストール用の shell スクリプトをダウンロード，実行すればいいようだ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ curl https://zed.dev/install.sh | sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                                 Dload  Upload   Total   Spent    Left  Speed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100  4220  100  4220    0     0   9353      0 --:--:-- --:--:-- --:--:--  9336
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Downloading Zed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                                 Dload  Upload   Total   Spent    Left  Speed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100   565    0   565    0     0    382      0 --:--:--  0:00:01 --:--:--   383
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;100 53.0M  100 53.0M    0     0  9866k      0  0:00:05  0:00:05 --:--:-- 15.9M
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;To run Zed from your terminal, you must add ~/.local/bin to your PATH
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Run:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   echo &amp;#39;export PATH=$HOME/.local/bin:$PATH&amp;#39; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   source ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;To run Zed now, &amp;#39;~/.local/bin/zed&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;~/.bashrc&lt;/code&gt; ファイルにパスを追加しろって書いてあるが Ubuntu の場合は &lt;code&gt;~/.profile&lt;/code&gt; ファイルに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# set PATH so it includes user&amp;#39;s private bin if it exists&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;home_local_bin_path&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$HOME&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/.local/bin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$home_local_bin_path&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; -a -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;##*&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;home_local_bin_path&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; -a -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;##*&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;home_local_bin_path&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:*&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;PATH&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$home_local_bin_path&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$PATH&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;unset&lt;/span&gt; home_local_bin_path
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;みたいな記述があれば特に追加で何かする必要はないだろう。
ちなみに &lt;code&gt;~/.local/bin&lt;/code&gt; ディレクトリに直接インストールされるわけではなく，実体は &lt;code&gt;~/.local/zed.app&lt;/code&gt; ディレクトリ以下に展開され &lt;code&gt;~/.local/bin&lt;/code&gt; ディレクトリにはシンボリックリンクが配置されている。&lt;/p&gt;
&lt;p&gt;Ubuntu の場合，上述のスクリプトを使ってインストールする場合は制限があって Ubuntu 18 以前（2.29 より古い glibc を使用している）のバージョンでは動かないらしい。
また32ビットアーキテクチャでも動かない。
まぁ，ソースからビルドすれば行けるかもしれないが（Rust って古いディストリビューションって対応してたっけ？）。&lt;/p&gt;
&lt;p&gt;あとアプリケーションの速度を確保するために &lt;a href=&#34;https://www.vulkan.org/&#34; target=&#34;_blank&#34; title=&#34;Vulkan | Cross platform 3D Graphics&#34;&gt;Vulkan&lt;/a&gt; を通じて GPU と通信しているらしい。
このため GPU がないと動作が遅くなるとのこと。
GPU を確認する場合は&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt install vulkan-tools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で &lt;code&gt;vulkan-tools&lt;/code&gt; パッケージをインストールし，ターミナルで &lt;code&gt;vkcube&lt;/code&gt; コマンドを叩いてみる。
すると以下のウィンドウが起動して画面内の立方体が物凄い勢いで回転するのだが&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./vkcube.png&#34;&gt;&lt;img src=&#34;./vkcube.png&#34; srcset=&#34;./vkcube.png 528w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;vkcube&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./vkcube.png&#34;&gt;vkcube&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;ターミナル側には&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ vkcube
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Selected GPU 0: AMD Radeon Graphics (RADV RENOIR), type: IntegratedGpu
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のように使用する GPU の ID が表示される。
これが &lt;code&gt;llvmpipe&lt;/code&gt; だと GPU がないか認識してないってことらしい。
また AMD Radeon の場合はドライバによって “Broken Pipe” のエラーが出て上手く動かないことがあるそうな。
この場合はドライバを RADV にするといいとのこと（参照： &lt;a href=&#34;https://github.com/zed-industries/zed/issues/13880&#34; target=&#34;_blank&#34; title=&#34;Arch Linux can&amp;#39;t launch after build: Io error: Broken pipe (os error 32) · Issue #13880 · zed-industries/zed&#34;&gt;#13880&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;インストールが完了してターミナルから &lt;code&gt;zed&lt;/code&gt; コマンドが無事起動できたら以下の画面が表示される筈。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./zed-1.png&#34;&gt;&lt;img src=&#34;./zed-1.png&#34; srcset=&#34;./zed-1.png 1044w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;vkcube&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./zed-1.png&#34;&gt;vkcube&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;最初から Vim モードを選択可能なのか。
Vimmer はどこにでもいるんだな（笑） その下の2つのチェックボックスはテレメータの設定なので，テレメータを送信したくないならチェックを外しておけばよい。&lt;/p&gt;
&lt;p&gt;細かい設定は &lt;code&gt;~/.config/zed/settings.json&lt;/code&gt; ファイルで可能。
設定可能な項目は “&lt;a href=&#34;https://zed.dev/docs/configuring-zed&#34; target=&#34;_blank&#34; title=&#34;Configuring Zed - Zed&#34;&gt;Configuring Zed&lt;/a&gt;” を参照のこと。
とりあえずフォントを好みに変えたかったのだが，フォント名（&lt;code&gt;buffer_font_family&lt;/code&gt;）はひとつしか指定できないのかな，これ。
しょうがない。
&lt;a href=&#34;https://github.com/yuru7/bizin-gothic&#34; target=&#34;_blank&#34; title=&#34;yuru7/bizin-gothic: Bizin Gothic は、ユニバーサルデザインフォントの BIZ UDゴシック と英文フォント Inconsolata を合成したプログラミング向けフォントです。&#34;&gt;Bizin Gothic&lt;/a&gt; を入れるか（本当は日本語は明朝体で表示してほしいんだけどねぇ）。&lt;/p&gt;
&lt;p&gt;Git のコミットやプッシュに相当するコマンドはなさそう（ターミナルで自力で起動しろってことかな）。
履歴をグラフィカルに見せる機能もなし（git blame の表示はできる）。
VSCode の拡張機能 “&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph&#34; target=&#34;_blank&#34; title=&#34;Git Graph - Visual Studio Marketplace&#34;&gt;Git Graph&lt;/a&gt;” のような機能があればいいのだが &lt;a href=&#34;https://zed.dev/&#34; target=&#34;_blank&#34; title=&#34;Zed - Code at the speed of thought&#34;&gt;Zed&lt;/a&gt; の拡張機能でもそれらしいのは見つからなかった。
サードパーティの拡張機能がもっとたくさん生えてくるといいんだろうねぇ。&lt;/p&gt;
&lt;p&gt;Atom エディタの元ユーザとして &lt;a href=&#34;https://zed.dev/&#34; target=&#34;_blank&#34; title=&#34;Zed - Code at the speed of thought&#34;&gt;Zed&lt;/a&gt; には期待している。
とはいえ，テキストエディタは機能的な性能以前に使ってて手に馴染むかどうかが決定的に重要なので，もうしばらく &lt;a href=&#34;https://zed.dev/&#34; target=&#34;_blank&#34; title=&#34;Zed - Code at the speed of thought&#34;&gt;Zed&lt;/a&gt; は様子見かなぁ。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/news/1596755.html&#34; target=&#34;_blank&#34;&gt;日本人プログラマー向けコーディングフォント「Bizin Gothic」が無償公開 - 窓の杜&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2022/06/sunsetting-atom/&#34; target=&#34;_blank&#34;&gt;Atom の落日&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry><entry>
		<title>Atom の落日</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2022/06/sunsetting-atom/" />
		<id>tag:text.Baldanders.info,2022-06-11:/remark/2022/06/sunsetting-atom/</id>
		<published>2022-06-11T00:19:04+00:00</published>
		<updated>2022-11-26T04:31:55+00:00</updated>
		<summary>ユーザ間のエコシステムが出来上がっている製品であっても廃れたらあっという間</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;p&gt;GitHub が Microsoft に買収されて以来，その内そうなるだろうとは思っていたが，ついにこの日が来てしまったか。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote cite=&#34;https://github.blog/2022-06-08-sunsetting-atom/&#34;&gt;Today, we’re announcing that we are sunsetting Atom and will archive all projects under the organization on December 15, 2022.&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://github.blog/2022-06-08-sunsetting-atom/&#34;&gt;Sunsetting Atom | The GitHub Blog&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Atom には&lt;a href=&#34;https://text.baldanders.info/tags/atom/&#34; target=&#34;_blank&#34;&gt;思い入れ&lt;/a&gt;がある。
思い返せば2015年は色々と心境の変化があった年で，たとえば Windows 7 のサポート終了をにらんで Windows 依存からの脱却を模索し始めた年で &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34; title=&#34;The Go Programming Language&#34;&gt;Go&lt;/a&gt; で遊び始めた年でもある。
「Windows 依存からの脱却」の最大の障害はテキストエディタの秀丸に依存しきっていたことで，マルチプラットフォームで手に馴染むエディタを探すことが&lt;a href=&#34;https://dic.pixiv.net/a/%E9%A2%A8%E8%A6%8B%E3%81%BF%E3%81%9A%E3%81%BB&#34; target=&#34;_blank&#34; title=&#34;風見みずほ (かざみみずほ)とは【ピクシブ百科事典】&#34;&gt;最優先事項&lt;/a&gt;だったのだ。&lt;/p&gt;
&lt;p&gt;というわけで，私の中で Atom と &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34; title=&#34;The Go Programming Language&#34;&gt;Go&lt;/a&gt; はセットになっていた。
Atom の拡張機能である go-plus の出来が（当時としては）よかったのも大きい。&lt;/p&gt;
&lt;p&gt;そういえば Twitter で「VSCode に「中華を初めて統一した始皇帝」みたいな印象ができつつある」みたいな tweet を見かけたが，&lt;a href=&#34;https://twitter.com/spiegel_2007/status/1535014771522560001&#34; target=&#34;_blank&#34;&gt;エディタ界の始皇帝は vim だろう&lt;/a&gt;とか思ってみたり。
このブログでも何度か書いているが，私は vi にトラウマがあって， vi/vim を起動するとペーペーの新人の頃に工場の片隅でガチの VT 端末を前に泣きながらデバッグしていたあの頃がフラッシュバックしてしまうのだ。
なので最初から vim という選択肢はなかった。
まぁ Ubuntu 環境にいると結局は vim も使わざるを得ないのだが（笑）&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;
&lt;blockquote class=&#34;nobox&#34; cite=&#34;https://www.youtube.com/watch?v=P7LNU9HYr7M&#34;&gt;&lt;div style=&#34;position: relative; margin: 0 2rem; padding-bottom: 56.25%; padding-top: 30px; height: 0; overflow: hidden;&#34;&gt;
&lt;iframe class=&#34;youtube-player&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%;&#34; allowfullscreen frameborder=&#34;0&#34; src=&#34;https://www.youtube-nocookie.com/embed/P7LNU9HYr7M&#34; allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=P7LNU9HYr7M&#34;&gt;プログラミルクボーイ「Vim」 - YouTube&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;話を戻そう。&lt;/p&gt;
&lt;p&gt;私の中で風向きが変わったのは “&lt;a href=&#34;https://microsoft.github.io/language-server-protocol/&#34; target=&#34;_blank&#34; title=&#34;Official page for Language Server Protocol&#34;&gt;Language Server Protocol (LSP)&lt;/a&gt;” が登場したあたり。
LSP はホンマに画期的なアイデアで，当然 &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34; title=&#34;The Go Programming Language&#34;&gt;Go&lt;/a&gt; 用の lunguage server も登場するんだけど&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; go-plus はこれを取り込むことができなかった。&lt;/p&gt;
&lt;p&gt;加えて，私が IT 業界に再就職して支給された Windows 10 機に Atom を入れたら堪えられないほど遅いのにビックリし，観念して VS Code に乗り換えたのだった。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/installing-vscode-again/&#34; target=&#34;_blank&#34;&gt;パソコンに Visual Studio Code を導入する（再チャレンジ）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Microsoft Windows を嫌って Ubuntu や Atom にしたというのに，結局は Microsoft に屈してしまったわけだ（「&lt;a href=&#34;https://dic.pixiv.net/a/%E3%81%8F%E3%81%A3%E3%80%81%E6%AE%BA%E3%81%9B%21&#34; target=&#34;_blank&#34; title=&#34;くっ、殺せ! (くっころ)とは【ピクシブ百科事典】&#34;&gt;くっころ&lt;/a&gt;」とか言わないよ）。
今やすっかり手に馴染んでしまったけどね。&lt;/p&gt;
&lt;p&gt;Atom が登場したのは2014年だそうだが，当時は SublimeText のカウンタという位置付けだったと思う。
8年というのはソフトウェア製品としては息が長いほうだと思うけど，テキストエディタは下手すると10年20年と使うものなので簡単に消えられては困るわけですよ。
それでも時代の流れには逆らえない。
ユーザ間のエコシステムが出来上がっている製品であっても廃れたらあっという間ということか。
まさに「落日」だな。&lt;/p&gt;
&lt;p&gt;せめて VS Code のエコシステムが永く続くことを祈ろう。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.makeuseof.com/atom-text-editor-why-github-is-killing/&#34; target=&#34;_blank&#34;&gt;Why GitHub Is Killing Atom Text Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zed.dev/&#34; target=&#34;_blank&#34;&gt;Introducing Zed – A collaborative code editor written in Rust&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/news/1457313.html&#34; target=&#34;_blank&#34;&gt;GitHub製コードエディター「Atom」の最終版が公開 ～8年間の開発に終止符 - 窓の杜&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;LSP が発表された頃 &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34; title=&#34;The Go Programming Language&#34;&gt;Go&lt;/a&gt; 用の lunguage server としていくつかの実装があったが，現在はほぼ &lt;a href=&#34;https://github.com/golang/tools/tree/master/gopls&#34; target=&#34;_blank&#34;&gt;gopls&lt;/a&gt; 一択である。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>Eclipse の SSH アクセスで失敗した話</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2021/08/ssh-access-by-eclipse-fails/" />
		<id>tag:text.Baldanders.info,2021-08-30:/remark/2021/08/ssh-access-by-eclipse-fails/</id>
		<published>2021-08-30T11:55:10+00:00</published>
		<updated>2021-08-30T23:12:11+00:00</updated>
		<summary>これのせいで半日近く作業が止まってしまったよ。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;p&gt;トラブル対応で自前の環境に &lt;a href=&#34;https://www.eclipse.org/&#34; target=&#34;_blank&#34; title=&#34;Enabling Open Innovation &amp;amp; Collaboration | The Eclipse Foundation&#34;&gt;Eclipse&lt;/a&gt; を入れて &lt;a href=&#34;https://github.com/&#34; target=&#34;_blank&#34;&gt;GitHub&lt;/a&gt; リポジトリにアクセスする羽目になった。
&lt;a href=&#34;https://github.com/&#34; target=&#34;_blank&#34;&gt;GitHub&lt;/a&gt; リポジトリへのアクセスには HTTPS と SSH の2通りある。
このうち HTTPS のほうはアカウントのパスワードが使えなくなり，代替手段として personal access token を取得する必要がある&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token&#34; target=&#34;_blank&#34;&gt;個人アクセストークンを使用する - GitHub Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まぁ personal access token の話はこれくらいにして，本題は SSH 接続のほう。
ちなみに今回の構成は以下の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OS : Windows 10&lt;/li&gt;
&lt;li&gt;Eclipse : &lt;a href=&#34;https://mergedoc.osdn.jp/&#34; target=&#34;_blank&#34; title=&#34;Java 開発環境 - Eclipse 日本語化 Pleiades プラグイン&#34;&gt;Pleiades All in One&lt;/a&gt; 2021-06 リリース版&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://www.eclipse.org/&#34; target=&#34;_blank&#34; title=&#34;Enabling Open Innovation &amp;amp; Collaboration | The Eclipse Foundation&#34;&gt;Eclipse&lt;/a&gt; で Git および SSH をドライブしてるのは &lt;a href=&#34;https://www.eclipse.org/egit/&#34; target=&#34;_blank&#34; title=&#34;EGit | The Eclipse Foundation&#34;&gt;EGit&lt;/a&gt; と &lt;a href=&#34;http://www.jcraft.com/jsch/&#34; target=&#34;_blank&#34; title=&#34;JSch - Java Secure Channel&#34;&gt;JSch&lt;/a&gt; だそうだが，ユーザからこれが見えることはない。
「自前で構築している環境（&lt;a href=&#34;https://gitforwindows.org/&#34; target=&#34;_blank&#34;&gt;Git for Windows&lt;/a&gt; と &lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34; target=&#34;_blank&#34; title=&#34;PuTTY: a free SSH and Telnet client&#34;&gt;PuTTY&lt;/a&gt;）は使えないんだろうなぁ。鍵を作るところから始めるか」とため息をつきつつ，以下のページを参考に（感謝！）作業を始めたのだが&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://itsakura.com/eclipse-github-clone-push&#34; target=&#34;_blank&#34;&gt;Eclipseでgit操作(GitHubからcloneしてpushまで/ssh接続) | ITSakura&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最初の1フィートで驚愕してしまった。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;eclipse-ssh2.png&#34;&gt;&lt;img src=&#34;eclipse-ssh2.png&#34; srcset=&#34;eclipse-ssh2.png 762w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;いやいやいや。
DSA か RSA の1024ビット鍵しか作れんのかい！ まさか世の Eclipse ユーザはみんな1024ビット鍵で SSH にアクセスしてるの？ アカンやろ。アカンよね！？&lt;/p&gt;
&lt;p&gt;首を捻りながらも設定を済ませ，いざ clone しようとしたら今度は &lt;q lang=&#34;en&#34;&gt;No supported authentication methods available&lt;/q&gt; とか言ってくさる。&lt;/p&gt;
&lt;div class=&#34;center&#34;&gt;&lt;a href=&#34;https://dic.nicovideo.jp/a/%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8%E4%BD%95%E8%A8%80%E3%81%A3%E3%81%A6%E3%82%8B%E3%81%8B%E5%88%86%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84&#34; target=&#34;_blank&#34;&gt;ちょっと何言ってるか分からない&lt;/a&gt;&amp;hellip;&lt;/div&gt;
&lt;p&gt;周囲の人たちは問題なくアクセスできてるみたいなので私の環境の問題だと思うが，マジで分からない。
これのせいで半日近く作業が止まってしまったよ。
で，さんざん悩んだ挙句に気が付いた。
これってひょっとして plink で SSH アクセスしようとしている？&lt;/p&gt;
&lt;p&gt;念のために説明すると plink は Windows 用の SSH クライアント兼ターミナル・エミュレータである &lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34; target=&#34;_blank&#34; title=&#34;PuTTY: a free SSH and Telnet client&#34;&gt;PuTTY&lt;/a&gt; が他ツールとの連携用に提供している SSH 接続ツールだ。
Git がインストールされている環境で&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;set GIT_SSH=C:\Program Files\PuTTY\plink.exe
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;とか環境設定しておけば OpenSSH ではなく&lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34; target=&#34;_blank&#34; title=&#34;PuTTY: a free SSH and Telnet client&#34;&gt;PuTTY&lt;/a&gt;/plink で接続しようとする。
どうやら &lt;a href=&#34;https://www.eclipse.org/&#34; target=&#34;_blank&#34; title=&#34;Enabling Open Innovation &amp;amp; Collaboration | The Eclipse Foundation&#34;&gt;Eclipse&lt;/a&gt; はこれを認識しているのかな？&lt;/p&gt;
&lt;p&gt;となると話は早い。
ぶっちゃけ &lt;a href=&#34;https://gitforwindows.org/&#34; target=&#34;_blank&#34;&gt;Git for Windows&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://www.chiark.greenend.org.uk/~sgtatham/putty/&#34; target=&#34;_blank&#34; title=&#34;PuTTY: a free SSH and Telnet client&#34;&gt;PuTTY&lt;/a&gt; で既に環境が出来ていれば &lt;a href=&#34;https://www.eclipse.org/&#34; target=&#34;_blank&#34; title=&#34;Enabling Open Innovation &amp;amp; Collaboration | The Eclipse Foundation&#34;&gt;Eclipse&lt;/a&gt; 側の SSH 設定は不要ということだ。
というわけでめでたく GitHub リポジトリに SSH でアクセスできた。
ようやくトラブル対応できる。
RSA-1024 とか玩具の南京錠のごとき鍵を作る必要もなく，既に運用している EdDSA 鍵で問題なし。
上のスナップショットで作った鍵はとっとと捨てたよ（笑）&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.eclipse.org/&#34; target=&#34;_blank&#34; title=&#34;Enabling Open Innovation &amp;amp; Collaboration | The Eclipse Foundation&#34;&gt;Eclipse&lt;/a&gt; の git リポジトリ操作も見せてもらったが面倒臭すぎてまともに運用できる気がしない。
いや，これ，マジで VS Code を啓蒙しないとダメかしらん。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/using-gnupg-for-windows-2/&#34; target=&#34;_blank&#34;&gt;GnuPG for Windows : gpg-agent について&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/ssh-key-management-with-gnupg/&#34; target=&#34;_blank&#34;&gt;OpenSSH の認証鍵を GunPG で作成・管理する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B0893LQ5KY?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51VWsWP87dL._SL160_.jpg&#34; width=&#34;100&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B0893LQ5KY?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Spring Boot 2 入門: 基礎から実演まで&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;原田 けいと (著), 竹田 甘地 (著), Robert Segawa (著)&lt;/dd&gt;
    &lt;dd&gt; 2020-05-22 (Release 2020-05-22)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B0893LQ5KY (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;4&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;Spring Boot を勉強することになって急遽買った本。めっさ分かりやすかった。 PDF 版が欲しいくらい（笑） Spring Boot 3.2 対応にアップデートされていた。素敵！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2024-03-20&#34;&gt;2024-03-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- Spring Boot 2 入門 --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4621303252?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/41WZElZb9eL._SL160_.jpg&#34; width=&#34;128&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4621303252?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Effective Java 第3版&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Joshua Bloch (著), 柴田 芳樹 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;丸善出版 2018-10-30&lt;/dd&gt;
    &lt;dd&gt;単行本（ソフトカバー）&lt;/dd&gt;
    &lt;dd&gt;4621303252 (ASIN), 9784621303252 (EAN), 4621303252 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;4&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;再勉強中。 Kindle 版のほうがちょっと安いが，勤務先でも使いたかったので紙の本にした。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2021-03-17&#34;&gt;2021-03-17&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- Effective Java 第3版 --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token&#34; target=&#34;_blank&#34; title=&#34;個人アクセストークンを使用する - GitHub Docs&#34;&gt;GitHub Docs の内容&lt;/a&gt;は少し古いみたいで，Settings の構成がちょっと違う。 &lt;code&gt;Settings &amp;gt; Developer settings &amp;gt; Personal access tokens&lt;/code&gt; の順に辿っていけばよい。ちなみに personal access token の Expiration を無期限に設定すると &lt;a href=&#34;https://github.com/&#34; target=&#34;_blank&#34;&gt;GitHub&lt;/a&gt; が物凄い勢いで警告を出してくる（笑）&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>Java と VS Code</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2021/08/java-with-vscode/" />
		<id>tag:text.Baldanders.info,2021-08-18:/remark/2021/08/java-with-vscode/</id>
		<published>2021-08-18T13:20:30+00:00</published>
		<updated>2022-04-23T13:45:31+00:00</updated>
		<summary>どうせなら VS Code で環境を作るのがいいよねってことで</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/installing-vscode-again/&#34; target=&#34;_blank&#34;&gt;パソコンに Visual Studio Code を導入する（再チャレンジ）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/golang-with-vscode/&#34; target=&#34;_blank&#34;&gt;Go と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/markdown-with-vscode/&#34; target=&#34;_blank&#34;&gt;Markdown と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/08/java-with-vscode/&#34; target=&#34;_blank&#34;&gt;Java と VS Code&lt;/a&gt; ← イマココ&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2022/04/codespaces/&#34; target=&#34;_blank&#34;&gt;やっと Codespaces が使える&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;仕事で Spring Boot なコードを書くことになって，今更ながら基本から勉強し直している。
で，どうせなら &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; で環境を作るのがいいよねってことで，覚え書きとして記しておく。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack&#34; target=&#34;_blank&#34; title=&#34;Extension Pack for Java - Visual Studio Marketplace&#34;&gt;Extension Pack for Java&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension vscjava.vscode-java-pack
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これをインストールすると以下のパッケージも併せてインストールされる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=redhat.java&#34; target=&#34;_blank&#34;&gt;Language Support for Java(TM) by Red Hat - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug&#34; target=&#34;_blank&#34;&gt;Debugger for Java - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-test&#34; target=&#34;_blank&#34;&gt;Test Runner for Java - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-maven&#34; target=&#34;_blank&#34;&gt;Maven for Java - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-dependency&#34; target=&#34;_blank&#34;&gt;Project Manager for Java - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode&#34; target=&#34;_blank&#34;&gt;Visual Studio IntelliCode - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これだけあれば基本的な道具は一通り揃う。&lt;/p&gt;
&lt;h3&gt;みんな大好き “Hello, World!”&lt;/h3&gt;
&lt;p&gt;ここで簡単に動作確認しておこう。
以下の手順でプロジェクトの雛形を作成する。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;コマンドパレットから “Java: Create Java Project” を選択する&lt;/li&gt;
&lt;li&gt;プロジェクト・タイプの一覧が表示されるので “No build tools” を選択する&lt;/li&gt;
&lt;li&gt;作業ディレクトリを選択する&lt;/li&gt;
&lt;li&gt;プロジェクト名を指定する（ここでは &lt;code&gt;hello&lt;/code&gt; と入力）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これで&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ tree hello
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hello
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── README.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── lib
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── src
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── App.java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2 directories, 2 files
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;という感じにディレクトリ・ファイルが作成される。
&lt;code&gt;App.java&lt;/code&gt; の中身はこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;App&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;void&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;throws&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Exception&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;out&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Hello, World!&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;エディタ上は&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://text.baldanders.info/hello-java-code.png&#34;&gt;&lt;img src=&#34;./hello-java-code.png&#34; srcset=&#34;./hello-java-code.png 528w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;という感じに表示されているので &lt;code&gt;main()&lt;/code&gt; 関数直上の &lt;code&gt;Run&lt;/code&gt; のリンクをクリックすればコンパイル＆実行してくれる。
Java Process Console に &lt;code&gt;Hello, World!&lt;/code&gt; と表示されれば無問題。&lt;/p&gt;
&lt;h3&gt;Import 補完&lt;/h3&gt;
&lt;p&gt;Java の &lt;code&gt;import&lt;/code&gt; 宣言ってすぐに汚れるよね。
使わない &lt;code&gt;import&lt;/code&gt; とか。
逆に &lt;code&gt;import&lt;/code&gt; が足りなくてエラーになったり。&lt;/p&gt;
&lt;p&gt;こういうときはコマンドパレットから “Organize Imports” でいい感じに整形してくれる。
保存時に自動で整形するには &lt;code&gt;settings.json&lt;/code&gt; に&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;java.saveActions.organizeImports&amp;#34;&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;を追加してやればよい。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-boot-dev-pack&#34; target=&#34;_blank&#34; title=&#34;Spring Boot Extension Pack - Visual Studio Marketplace&#34;&gt;Spring Boot Extension Pack&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension Pivotal.vscode-boot-dev-pack
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これも以下のパッケージを含んでいるようだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-spring-boot&#34; target=&#34;_blank&#34;&gt;Spring Boot Tools - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-spring-initializr&#34; target=&#34;_blank&#34;&gt;Spring Initializr Java Support - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-spring-boot-dashboard&#34; target=&#34;_blank&#34;&gt;Spring Boot Dashboard - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;雛形プロジェクトを作る&lt;/h3&gt;
&lt;p&gt;これも動作確認しておこう。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;コマンドパレットから “Spring Initializr: Generate a Maven Project” を選択する&lt;/li&gt;
&lt;li&gt;Spring Boot のバージョンを選択（2021-08-18 時点の最新は 2.5.3）&lt;/li&gt;
&lt;li&gt;使用言語を選択。もちろん Java で&lt;/li&gt;
&lt;li&gt;Group Id を入力。ここはデフォルトの &lt;code&gt;com.example&lt;/code&gt; のままにしておく&lt;/li&gt;
&lt;li&gt;Artifact Id を入力。ここもデフォルトの &lt;code&gt;demo&lt;/code&gt; のままにしておく&lt;/li&gt;
&lt;li&gt;パッケージタイプを選択。 &lt;code&gt;Jar&lt;/code&gt; と &lt;code&gt;War&lt;/code&gt; がある。とりあえす &lt;code&gt;Jar&lt;/code&gt; にしておこうか&lt;/li&gt;
&lt;li&gt;Java のバージョンを選択。無難に LTS 版の 11 を選択しておくか（JDK のインストールは別途行うこと）&lt;/li&gt;
&lt;li&gt;依存パッケージを選択。 Spring Web と Lombok は必須。あとは必要に応じて
&lt;ul&gt;
&lt;li&gt;Spring Web (必須)&lt;/li&gt;
&lt;li&gt;Lombok (必須)&lt;/li&gt;
&lt;li&gt;Spring Boot DevTools&lt;/li&gt;
&lt;li&gt;Thymeleaf&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://text.baldanders.info/choose-dependencies.png&#34;&gt;&lt;img src=&#34;./choose-dependencies.png&#34; srcset=&#34;./choose-dependencies.png 630w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;あとは作業ディレクトリを指定すれば完了。
作業ディレクトリ直下に Artifact Id で指定した名前でディレクトリが掘られ，ディレクトリ・ファイルが展開される。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ tree demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── HELP.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── mvnw
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── mvnw.cmd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── pom.xml
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── src
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── main
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   ├── java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │   └── com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │       └── example
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │           └── demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │               └── DemoApplication.java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   └── resources
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │       ├── application.properties
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │       ├── static
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │       └── templates
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── test
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        └── java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            └── com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                └── example
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    └── demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        └── DemoApplicationTests.java
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;DemoApplication.java&lt;/code&gt; の中身はこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;com.example.demo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;org.springframework.boot.SpringApplication&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;org.springframework.boot.autoconfigure.SpringBootApplication&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@SpringBootApplication&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;DemoApplication&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;static&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;void&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;		&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SpringApplication&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;run&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DemoApplication&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;args&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;このままだと何も表示できないので controller クラスと対応するテンプレートファイルを用意する。&lt;/p&gt;
&lt;p&gt;まずは &lt;code&gt;demo/src/main/java/com/example/demo/controller/DemoController.java&lt;/code&gt; ファイルを作る。
中身はこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;com.example.demo.controller&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;org.springframework.stereotype.Controller&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;org.springframework.web.bind.annotation.GetMapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@Controller&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;DemoController&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;nd&#34;&gt;@GetMapping&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;String&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;demo&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;		&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;demo&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;	&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次に &lt;code&gt;demo/src/main/resources/templates/demo.html&lt;/code&gt; ファイルを作る。
中身はこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;meta&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;charset&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;Demo&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;head&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;h1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;Hello World!&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;h1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;全体の構成はこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ tree demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── HELP.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── mvnw
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── mvnw.cmd
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── pom.xml
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── src
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── main
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   ├── java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │   └── com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │       └── example
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │           └── demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │               ├── DemoApplication.java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │               └── controller
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   │                   └── DemoController.java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │   └── resources
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │       ├── application.properties
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │       ├── static
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │       └── templates
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    │           └── demo.html
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── test
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        └── java
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            └── com
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                └── example
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    └── demo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        └── DemoApplicationTests.java
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;テストとか端折ってるけどご容赦ね。&lt;/p&gt;
&lt;p&gt;あとは Spring Boot Dashboard から Start すれば OK。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;https://text.baldanders.info/dashboard.png&#34;&gt;&lt;img src=&#34;./dashboard.png&#34; srcset=&#34;./dashboard.png 500w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Web ブラウザから &lt;code&gt;http://localhost:8080/&lt;/code&gt; を叩いて &lt;code&gt;Hello, World!&lt;/code&gt; と表示されれば無問題。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=GabrielBB.vscode-lombok&#34; target=&#34;_blank&#34; title=&#34;Lombok Annotations Support for VS Code - Visual Studio Marketplace&#34;&gt;Lombok Annotations Support for VS Code&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension GabrielBB.vscode-lombok
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;@Getter&lt;/code&gt; とか &lt;code&gt;@Setter&lt;/code&gt; とか &lt;code&gt;@Slf4j&lt;/code&gt; とかの &lt;a href=&#34;https://projectlombok.org/&#34; target=&#34;_blank&#34; title=&#34;Project Lombok&#34;&gt;Lombok&lt;/a&gt; アノテーションを付けると &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; がコードにエラーマークを付けることがある（ビルドはちゃんと通る）。
かなりウザいのでこの拡張機能を入れてみた。
快適！&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureappservice&#34; target=&#34;_blank&#34; title=&#34;Azure App Service - Visual Studio Marketplace&#34;&gt;Azure App Service&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension ms-azuretools.vscode-azureappservice
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;VS code 上から &lt;a href=&#34;https://azure.microsoft.com/ja-jp/services/app-service/web/&#34; target=&#34;_blank&#34; title=&#34;Web App Service | Microsoft Azure&#34;&gt;Azure Web Apps&lt;/a&gt; にお手軽にデプロイ出来ないかなぁ，と思って探したらありました。
やり方は以下のページの後半で紹介している。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://code.visualstudio.com/docs/java/java-webapp&#34; target=&#34;_blank&#34;&gt;Build and Deploy Java Web Apps to the cloud with Visual Studio Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;めがっさ簡単だった。
&lt;a href=&#34;https://docs.microsoft.com/ja-jp/azure/app-service/deploy-github-actions&#34; target=&#34;_blank&#34; title=&#34;GitHub アクションを使用して CI/CD を構成する - Azure App Service | Microsoft Docs&#34;&gt;GitHub Actions を使う&lt;/a&gt;方法とか，何なら &lt;a href=&#34;https://azure.microsoft.com/ja-jp/services/spring-cloud/&#34; target=&#34;_blank&#34; title=&#34;Azure Spring Cloud – Spring Boot アプリの開発 | Microsoft Azure&#34;&gt;Azure Spring Cloud&lt;/a&gt; を契約する手もあるのだが，今回はとにかく JAR か WAR を投げれればよかったので。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/takumi_links/items/fe71cfeb4dfaa76fbe31&#34; target=&#34;_blank&#34;&gt;VSCodeで作るJava開発環境＆Spring Bootアプリケーション入門 - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://spring.pleiades.io/spring-boot/docs/current/reference/html/deployment.html&#34; target=&#34;_blank&#34;&gt;Spring Boot アプリケーションのデプロイ - リファレンス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/koukibuu3/items/77734596483ffd788931&#34; target=&#34;_blank&#34;&gt;SpringBootをVSCodeで使ってみる - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kohei.life/spring-boot-build-deploy/&#34; target=&#34;_blank&#34;&gt;【Maven編】Spring Bootのビルドとデプロイ方法 | こへいブログ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ameblo.jp/kazusa-g/entry-12536838291.html&#34; target=&#34;_blank&#34;&gt;VSCodeとDockerでSpring Boot + PostgreSQL開発環境を作る(2) | Sales8開発者日記&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://learning-collection.com/springboot-%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e7%94%bb%e9%9d%a2%e4%bd%9c%e6%88%90/&#34; target=&#34;_blank&#34;&gt;SpringBoot ログイン画面作成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/t-shin0hara/items/eaf44e4f48341616ab97&#34; target=&#34;_blank&#34;&gt;Spring Boot + Spring Data JPA ～サンプルアプリ実装～ - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://itref.fc2web.com/java/jpa/annotation.html&#34; target=&#34;_blank&#34;&gt;JPA (Java Persistence API)のアノテーション&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/NagaokaKenichi/items/c6d1b76090ef5ef39482&#34; target=&#34;_blank&#34;&gt;Thymeleafチートシート - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://one-it-thing.com/2074/&#34; target=&#34;_blank&#34;&gt;SpringBootアプリにBootstrap4を追加（WebJars使用） – One IT Thing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.codeflow.site/ja/article/spring-boot__spring-boot-slf4j-logging-example&#34; target=&#34;_blank&#34;&gt;SpringブートSLF4Jロギングの例&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ja.getdocs.org/spring-boot-spring-boot-slf4j-logging-example/&#34; target=&#34;_blank&#34;&gt;SpringブートSLF4Jロギングの例 - 開発者ドキュメント&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://m-shige1979.hatenablog.com/entry/2016/11/30/080000&#34; target=&#34;_blank&#34;&gt;Spring bootでHttpSessionを使用する - m_shige1979のささやかな抵抗と欲望の日々&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/t-yama-3/items/572fabc873b4b6a0fc7c&#34; target=&#34;_blank&#34;&gt;Spring Boot で Ajax を実装する単純なサンプル - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/opengl-8080/items/671ffd4bf84fe5e32557&#34; target=&#34;_blank&#34;&gt;Lombok 使い方メモ - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://bitto.jp/posts/%E6%8A%80%E8%A1%93/Windows/vscode-java-organize-import/&#34; target=&#34;_blank&#34;&gt;VScodeでJavaのインポート文をFixしたい | 猫好きが猫以外のことも書く&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://code.visualstudio.com/docs/java/java-on-azure&#34; target=&#34;_blank&#34;&gt;Deploy Java to Azure&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B0893LQ5KY?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51VWsWP87dL._SL160_.jpg&#34; width=&#34;100&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B0893LQ5KY?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Spring Boot 2 入門: 基礎から実演まで&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;原田 けいと (著), 竹田 甘地 (著), Robert Segawa (著)&lt;/dd&gt;
    &lt;dd&gt; 2020-05-22 (Release 2020-05-22)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B0893LQ5KY (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;4&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;Spring Boot を勉強することになって急遽買った本。めっさ分かりやすかった。 PDF 版が欲しいくらい（笑） Spring Boot 3.2 対応にアップデートされていた。素敵！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2024-03-20&#34;&gt;2024-03-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- Spring Boot 2 入門 --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4621303252?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/41WZElZb9eL._SL160_.jpg&#34; width=&#34;128&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4621303252?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Effective Java 第3版&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Joshua Bloch (著), 柴田 芳樹 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;丸善出版 2018-10-30&lt;/dd&gt;
    &lt;dd&gt;単行本（ソフトカバー）&lt;/dd&gt;
    &lt;dd&gt;4621303252 (ASIN), 9784621303252 (EAN), 4621303252 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;4&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;far fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;再勉強中。 Kindle 版のほうがちょっと安いが，勤務先でも使いたかったので紙の本にした。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2021-03-17&#34;&gt;2021-03-17&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- Effective Java 第3版 --&gt;
</content>
	</entry><entry>
		<title>バイナリ・データ・ビュア zetamatta/binview の Linux 用バイナリ登場</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2021/07/binview-for-linux/" />
		<id>tag:text.Baldanders.info,2021-07-07:/remark/2021/07/binview-for-linux/</id>
		<published>2021-07-07T02:24:20+00:00</published>
		<updated>2021-07-07T03:49:50+00:00</updated>
		<summary>CUI なターミナル・エミュレータ上でちょろんと眺めてさくっと編集できる</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;p&gt;バイナリ・データ・ビュアの &lt;a href=&#34;https://github.com/zetamatta/binview&#34; target=&#34;_blank&#34; title=&#34;zetamatta/binview: Binary data viewer on the terminal&#34;&gt;zetamatta/binview&lt;/a&gt; の v0.2.0 がリリースされたのだが，このリリースで Linux 用バイナリも提供されるようになった。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/zetamatta/binview/releases/tag/v0.2.0&#34; target=&#34;_blank&#34;&gt;Release v0.2.0 · zetamatta/binview · GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/zetamatta/binview/releases/tag/v0.2.1&#34; target=&#34;_blank&#34;&gt;Release v0.2.1 · zetamatta/binview · GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もともと &lt;a href=&#34;https://github.com/zetamatta/binview&#34; target=&#34;_blank&#34; title=&#34;zetamatta/binview: Binary data viewer on the terminal&#34;&gt;binview&lt;/a&gt; のバイナリは Windows 用のみの提供だったのだ。
ありがたや。&lt;/p&gt;
&lt;p&gt;若い頃はバイナリ・エディタを使うような仕事も多くて &lt;a href=&#34;https://www.vcraft.jp/soft/bz.html&#34; target=&#34;_blank&#34; title=&#34;Bz - c.mos&#34;&gt;Bz Editor&lt;/a&gt; などのツールのお世話になったものだが&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;，もうバイナリデータを直接イジるような細かい仕事はできなくなりつつあるし，でも CUI なターミナル・エミュレータ上でちょろんと眺めてさくっと編集できるツールがあるといいなぁ，みたいな需要はあるわけですよ。&lt;/p&gt;
&lt;p&gt;ちなみに Linux には xxd というダンプツールがあり&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ xxd -g 1 ./bindata1 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;00000000: a8 03 50 47 50 c3 04 04 03 00 01 c9 38 e7 2d 2f  ..PGP.......8.-/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;00000010: b1 f1 0f c3 ce 55 5d b2 8a 4b e8 4f 43 15 6e 7d  .....U]..K.OC.n}
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;00000020: 90 90 53 6a 9a e3 aa 1c 68 d6 d3 fc 6a 4e 79 a8  ..Sj....h...jNy.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;00000030: e7 b1 a5 87 ea cc cc 99 66 31 ad ff e1 a3 03 b6  ........f1......
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;00000040: 47 85 76 bd 0b                                   G.v..
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;みたいな感じにバイナリデータを眺めることはできる。
あるいは &lt;a href=&#34;https://kaworu.jpn.org/vim/vim%E3%81%A7%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%89%B1%E3%81%86&#34; target=&#34;_blank&#34; title=&#34;vimでバイナリファイルを扱う - neovim/vim入門&#34;&gt;vim と xxd を組み合わせる&lt;/a&gt;ことでバイナリ・エディタのように使うこともできるけど，あんまりお手軽じゃないのよね。
やり方をしょっちゅう忘れるし（笑） なので &lt;a href=&#34;https://github.com/zetamatta/binview&#34; target=&#34;_blank&#34; title=&#34;zetamatta/binview: Binary data viewer on the terminal&#34;&gt;binview&lt;/a&gt; のようなお手軽ツールはありがたいし，最初からマルチプラットフォームな製品として構成されているのもありがたい。&lt;/p&gt;
&lt;p&gt;ファイルを指定して &lt;a href=&#34;https://github.com/zetamatta/binview&#34; target=&#34;_blank&#34; title=&#34;zetamatta/binview: Binary data viewer on the terminal&#34;&gt;binview&lt;/a&gt; を起動するとこんな感じになる。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./binview-start-1.png&#34;&gt;&lt;img src=&#34;./binview-start-1.png&#34; srcset=&#34;./binview-start-1.png 714w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;入力は標準入力からでもOK。
なので前処理をパイプで繋いで&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./binview-start-2.png&#34;&gt;&lt;img src=&#34;./binview-start-2.png&#34; srcset=&#34;./binview-start-2.png 694w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;てな感じにできる。
カーソル位置のコードが UTF-8 (の一部) と判定された場合は下部のステータス行に Unicode 符号点が表示されるのが秀逸である。&lt;/p&gt;
&lt;p&gt;終了する場合は &lt;code&gt;[q]&lt;/code&gt; キー押下で&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./binview-quit.png&#34;&gt;&lt;img src=&#34;./binview-quit.png&#34; srcset=&#34;./binview-quit.png 709w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;のように確認プロンプトが表示されるので &lt;code&gt;[y]&lt;/code&gt; キー押下で終了できる。&lt;/p&gt;
&lt;p&gt;データの保存は &lt;code&gt;[w]&lt;/code&gt; キー押下で&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./binview-write.png&#34;&gt;&lt;img src=&#34;./binview-write.png&#34; srcset=&#34;./binview-write.png 694w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;とプロンプトが出るので，保存先のファイル名を指定して &lt;code&gt;[Enter]&lt;/code&gt; キー押下で確定する。&lt;/p&gt;
&lt;p&gt;これで，たとえば処理結果を標準出力に吐くツールと組み合わせてデータをいったん &lt;a href=&#34;https://github.com/zetamatta/binview&#34; target=&#34;_blank&#34; title=&#34;zetamatta/binview: Binary data viewer on the terminal&#34;&gt;binview&lt;/a&gt; に流し込んで中身を確認してから任意のファイル名に保存する，てなことも簡単にできるわけだ。
うんうん。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[r]&lt;/code&gt; キーを押下するとカーソル位置のコードを変更できる。
こんな感じ。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./binview-replace.png&#34;&gt;&lt;img src=&#34;./binview-replace.png&#34; srcset=&#34;./binview-replace.png 690w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;コマンドキーの一覧は以下の通り。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: center&#34;&gt;キー&lt;/th&gt;
          &lt;th&gt;機能&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;quit&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;replace one byte&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;insert &lt;code&gt;&#39;\0&#39;&lt;/code&gt; on the cursor&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;a&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;append &lt;code&gt;&#39;\0&#39;&lt;/code&gt; at the rightside of the cursor&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;x&lt;/code&gt;, &lt;code&gt;DEL&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;delete and yank one byte on the cursor&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;paste 1 byte the rightside of the cursor&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;P&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;paste 1 byte the leftside of the cursor&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;w&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;output to file&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;[x]&lt;/code&gt; と &lt;code&gt;[p]&lt;/code&gt;/&lt;code&gt;[P]&lt;/code&gt; は対になっていて &lt;code&gt;[x]&lt;/code&gt; で削除したコードを &lt;code&gt;[p]&lt;/code&gt;/&lt;code&gt;[P]&lt;/code&gt; で任意の場所に挿入できるようだ。&lt;/p&gt;
&lt;p&gt;なお &lt;code&gt;[ESC]&lt;/code&gt; キー押下でコマンド前の状態に戻る。
なので，状態がよく分からなくなったら &lt;code&gt;[ESC]&lt;/code&gt; 連打である（vi/vim でありがちな光景w）。&lt;/p&gt;
&lt;p&gt;さらにカーソルの移動には &lt;code&gt;[h]&lt;/code&gt; &lt;code&gt;[j]&lt;/code&gt; &lt;code&gt;[k]&lt;/code&gt; &lt;code&gt;[l]&lt;/code&gt; キーが使える。
私のように vim を起動するとトラウマレベルで指が &lt;code&gt;[h]&lt;/code&gt; &lt;code&gt;[j]&lt;/code&gt; &lt;code&gt;[k]&lt;/code&gt; &lt;code&gt;[l]&lt;/code&gt; キーを押さえてしまう人には朗報だろう（笑）&lt;/p&gt;
&lt;!-- eof --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;今なら&lt;a href=&#34;https://gitlab.com/devill.tamachan/binaryeditorbz/&#34; target=&#34;_blank&#34; title=&#34;devill.tamachan / binaryeditorbz · GitLab&#34;&gt;改造版 Bz&lt;/a&gt; がオススメ。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>Markdown と VS Code</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2021/02/markdown-with-vscode/" />
		<id>tag:text.Baldanders.info,2021-02-28:/remark/2021/02/markdown-with-vscode/</id>
		<published>2021-02-28T03:45:02+00:00</published>
		<updated>2022-04-23T13:45:31+00:00</updated>
		<summary>Preview 機能は個人的に必要ないのでレビューしないが，仕事で使うようなことがあれば，そのうち記事にすることもあるだろう。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/installing-vscode-again/&#34; target=&#34;_blank&#34;&gt;パソコンに Visual Studio Code を導入する（再チャレンジ）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/golang-with-vscode/&#34; target=&#34;_blank&#34;&gt;Go と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/markdown-with-vscode/&#34; target=&#34;_blank&#34;&gt;Markdown と VS Code&lt;/a&gt; ← イマココ&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/08/java-with-vscode/&#34; target=&#34;_blank&#34;&gt;Java と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2022/04/codespaces/&#34; target=&#34;_blank&#34;&gt;やっと Codespaces が使える&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;今回は &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; で markdown テキストを入出力する話。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one&#34; target=&#34;_blank&#34; title=&#34;Markdown All in One - Visual Studio Marketplace&#34;&gt;Markdown All in One&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension yzhang.markdown-all-in-one
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Markdown 関連の拡張機能は色々あるようだが，入力支援に関してはこれで必要十分ぽい。&lt;/p&gt;
&lt;p&gt;お気に入りはテーブル整形の機能で， Linux/Ubuntu なら &lt;code&gt;[Ctrl+Shift+I]&lt;/code&gt; キー（Format Document）押下で綺麗に整形してくれる。&lt;/p&gt;
&lt;p&gt;ところが Windows 版では &lt;code&gt;[Shift+Alt+F]&lt;/code&gt; キーが Format Document に割り当てられているようだ。
プラットフォームによって違うのかよ。&lt;/p&gt;
&lt;p&gt;というわけで Windows 版の方にキー割当を合わせることにした。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Place your key bindings in this file to override the defaults
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;shift+alt+f&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editor.action.formatDocument&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorHasDocumentFormattingProvider &amp;amp;&amp;amp; editorTextFocus &amp;amp;&amp;amp; !editorReadonly &amp;amp;&amp;amp; !inCompositeEditor&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+shift+i&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-editor.action.formatDocument&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorHasDocumentFormattingProvider &amp;amp;&amp;amp; editorTextFocus &amp;amp;&amp;amp; !editorReadonly &amp;amp;&amp;amp; !inCompositeEditor&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;shift+alt+f&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editor.action.formatDocument.none&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorTextFocus &amp;amp;&amp;amp; !editorHasDocumentFormattingProvider &amp;amp;&amp;amp; !editorReadonly&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+shift+i&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-editor.action.formatDocument.none&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorTextFocus &amp;amp;&amp;amp; !editorHasDocumentFormattingProvider &amp;amp;&amp;amp; !editorReadonly&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode&#34; target=&#34;_blank&#34; title=&#34;Prettier - Code formatter - Visual Studio Marketplace&#34;&gt;Prettier - Code formatter&lt;/a&gt; との競合&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension esbenp.prettier-vscode
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Markdown 専用というわけではないが JavaScript/TypeScript, CSS/SCSS/Less, HTML, JSON, GraphQL, YAML など幅広い言語に対応している整形ツールで，しかも plugin 拡張もできるらしい。
もちろん markdown テキストにも対応している。&lt;/p&gt;
&lt;p&gt;で，これと &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one&#34; target=&#34;_blank&#34; title=&#34;Markdown All in One - Visual Studio Marketplace&#34;&gt;Markdown All in One&lt;/a&gt; の整形機能（Format Document）が被るわけですよ。
そこで，どちらの機能を使うか言語ごとに設定できるようになっている。
私は &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one&#34; target=&#34;_blank&#34; title=&#34;Markdown All in One - Visual Studio Marketplace&#34;&gt;Markdown All in One&lt;/a&gt; 優先でこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;[markdown]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.defaultFormatter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;yzhang.markdown-all-in-one&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;さらにファイル保存時に変更した箇所だけを整形する，なんてな設定も言語ごとにできるようだ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;[markdown]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.defaultFormatter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;yzhang.markdown-all-in-one&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.formatOnSave&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.formatOnSaveMode&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;modifications&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ちなみに &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig&#34; target=&#34;_blank&#34; title=&#34;EditorConfig for VS Code - Visual Studio Marketplace&#34;&gt;EditorConfig for VS Code&lt;/a&gt; が有効な場合は &lt;code&gt;.editorconfig&lt;/code&gt; の設定（インデントや改行コードなど）を考慮してくれるようだ。
これを無効にするには “Use Editor Config” の項目を OFF にする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;prettier.useEditorConfig&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ただし， &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig&#34; target=&#34;_blank&#34; title=&#34;EditorConfig for VS Code - Visual Studio Marketplace&#34;&gt;EditorConfig&lt;/a&gt; が有効な場合でも &lt;code&gt;.prettierrc&lt;/code&gt; ファイルなどによる &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode&#34; target=&#34;_blank&#34; title=&#34;Prettier - Code formatter - Visual Studio Marketplace&#34;&gt;Prettier&lt;/a&gt; 独自の設定がある場合は，そちらのほうが優先されるようだ。
ややこしい&amp;hellip;&lt;/p&gt;
&lt;h2&gt;自動補完を有効にする&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; の売りのひとつはスニペットを含む強力な自動補完機能だが，何故か markdown ファイルには自動補完が効かない。
と思ったら，既定で無効になっているらしい。
いや，有効にしとけよ。&lt;/p&gt;
&lt;p&gt;というわけで &lt;code&gt;settings.json&lt;/code&gt; に以下の設定を手動で書き込む。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;[markdown]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.quickSuggestions&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.snippetSuggestions&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;top&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでスニペットを優先して自動補完候補に挙げてくれる。&lt;/p&gt;
&lt;h2&gt;Markdown Preview 機能は必要か&lt;/h2&gt;
&lt;p&gt;私個人で言うなら No で，仕事なら場合によっては Yes かな。&lt;/p&gt;
&lt;p&gt;そもそも markdown テキストってのは，見出しや段落や箇条書き等の文書構造がそのままでも human-readable である点が利点と言える。
さらに言えば，ここのブログは &lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world’s fastest framework for building websites | Hugo&#34;&gt;Hugo&lt;/a&gt; の shortcodes 等で入力自体をカスタマイズしまくってるので，ただの markdown preview なんか使いものにならないのだ（&lt;a href=&#34;https://gohugo.io/&#34; target=&#34;_blank&#34; title=&#34;The world’s fastest framework for building websites | Hugo&#34;&gt;Hugo&lt;/a&gt; はサーバ・モードで起動できるので，リアルタイムでブラウザ表示を確認しながら記事を書いている）。&lt;/p&gt;
&lt;p&gt;一方で， Office ツールなどレガシーな環境を捨てて markdown 等の構造化テキストをベースにしたドキュメンテーションをしようとするなら，それなりにリッチな markdown preview 機能と PDF 等へ「最終出力」するためのツールチェーンが必要となる。&lt;/p&gt;
&lt;p&gt;そのための手段（または道具立て）として &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; をベースに環境を整えるというのは合理的と言えるかもしれない。&lt;/p&gt;
&lt;p&gt;というわけで，以降では PDF 等への「最終出力」を念頭に置いたドキュメントツールとして幾つかの拡張機能を紹介してみる。
上述したように，私個人は全く必要ないのでレビューしないが，仕事で使うようなことがあれば，そのうち記事にすることもあるだろう。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced&#34; target=&#34;_blank&#34; title=&#34;Markdown Preview Enhanced - Visual Studio Marketplace&#34;&gt;Markdown Preview Enhanced&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension shd101wyy.markdown-preview-enhanced
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;TeX の数学記法あるいは &lt;a href=&#34;http://plantuml.com/&#34; target=&#34;_blank&#34; title=&#34;Open-source tool that uses simple textual descriptions to draw UML diagrams.&#34;&gt;PlantUML&lt;/a&gt; や &lt;a href=&#34;https://mermaidjs.github.io/&#34; target=&#34;_blank&#34;&gt;mermaid&lt;/a&gt; 等の記法も認識して preview 表示できるらしい。
&lt;a href=&#34;https://graphviz.gitlab.io/_pages/doc/info/lang.html&#34; target=&#34;_blank&#34; title=&#34;The DOT Language&#34;&gt;DOT&lt;/a&gt; 言語も使えるのか。
CSS をカスタマイズ可能。&lt;/p&gt;
&lt;p&gt;HTML や PDF へ出力できるようだ（PDF 出力は Chrome 経由）。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf&#34; target=&#34;_blank&#34; title=&#34;Markdown PDF - Visual Studio Marketplace&#34;&gt;Markdown PDF&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension yzane.markdown-pdf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;コマンド一発で PDF 変換してくれる。
簡易的な出力しか出来ないのかと思ったら，意外にもかなりカスタマイズできるらしい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/reona396/items/40b234108f7664267db8&#34; target=&#34;_blank&#34;&gt;VSCode と Markdown で技術同人誌書いたので拡張機能とかまとめ - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://h-s-hige.hateblo.jp/entry/20190405/1554467885&#34; target=&#34;_blank&#34;&gt;【Visual Studio Code】Markdown PDF のスタイル(CSS)を変える方法 - Nekonote&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode&#34; target=&#34;_blank&#34; title=&#34;Marp for VS Code - Visual Studio Marketplace&#34;&gt;Marp for VS Code&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension marp-team.marp-vscode
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://marp.app/&#34; target=&#34;_blank&#34; title=&#34;Marp: Markdown Presentation Ecosystem&#34;&gt;Marp&lt;/a&gt; を使って markdown テキストからスライドを生成する。
PDF へエクスポートできるらしい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/tomo_makes/items/aafae4021986553ae1d8&#34; target=&#34;_blank&#34;&gt;【VS Code + Marp】Markdown から爆速・自由自在なデザインで、プレゼンスライドを作る - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=hediet.vscode-drawio&#34; target=&#34;_blank&#34; title=&#34;Draw.io Integration - Visual Studio Marketplace&#34;&gt;Draw.io Integration&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension hediet.vscode-drawio
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://app.diagrams.net/&#34; target=&#34;_blank&#34;&gt;Draw.io (diagrams.net)&lt;/a&gt; を利用した作図ツール。
データはテキストで保持して PNG や SVG へエクスポート可能って感じなのかな。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/riku-shiru/items/5ab7c5aecdfea323ec4e&#34; target=&#34;_blank&#34;&gt;VSCode で Draw.io が使えるようになったらしい！ - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml&#34; target=&#34;_blank&#34; title=&#34;PlantUML - Visual Studio Marketplace&#34;&gt;PlantUML&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension jebbs.plantuml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;http://plantuml.com/&#34; target=&#34;_blank&#34; title=&#34;Open-source tool that uses simple textual descriptions to draw UML diagrams.&#34;&gt;PlantUML&lt;/a&gt; 作図・出力支援。
あらかじめ &lt;a href=&#34;http://plantuml.com/&#34; target=&#34;_blank&#34; title=&#34;Open-source tool that uses simple textual descriptions to draw UML diagrams.&#34;&gt;PlantUML&lt;/a&gt; 作図環境を用意する必要がある（ただし &lt;code&gt;plantuml.jar&lt;/code&gt; ファイルは拡張機能内にあらかじめ格納されている？）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2018/12/plantuml-1/&#34; target=&#34;_blank&#34;&gt;真面目に PlantUML (1) : PlantUML のインストール&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zenn.dev/karaage0703/books/80b6999d429abc8051bb&#34; target=&#34;_blank&#34;&gt;VS Code エディタ入門&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/tfukumori/items/0f2b52088cd39f5c124e&#34; target=&#34;_blank&#34;&gt;(2020 年 12 月 8 日追記)VSCode で Draw.io Integration 使用時にエクスポートできないことがある問題への対処 - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://coffee-nominagara.com/2019-01-25-094628&#34; target=&#34;_blank&#34;&gt;Visual Studio Code で markdown のスニペットを登録する  |  コーヒー飲みながら仕事したい&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zenn.dev/spiegel/articles/20200922-editorconfig&#34; target=&#34;_blank&#34;&gt;インデントおよび行末は EditorConfig で始末する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B08CZ2C3NZ?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51LziyyXRmL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B08CZ2C3NZ?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Software Design (ソフトウェアデザイン) 2020年8月号 [雑誌]&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Software Design 編集部 (編集)&lt;/dd&gt;
    &lt;dd&gt;技術評論社 2020-07-18 (Release 2020-07-18)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B08CZ2C3NZ (ASIN)&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;特集記事は「Vim vs. Visual Studio Code」&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2021-02-28&#34;&gt;2021-02-28&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- Software Design (2020年8月号) --&gt;
</content>
	</entry><entry>
		<title>Go と VS Code</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2021/02/golang-with-vscode/" />
		<id>tag:text.Baldanders.info,2021-02-27:/remark/2021/02/golang-with-vscode/</id>
		<published>2021-02-27T09:47:11+00:00</published>
		<updated>2024-05-10T22:02:32+00:00</updated>
		<summary>ぶっちゃけ ATOM の go-plus よりも出来がいいので，ゆるゆると移行していきますよっと。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;p&gt;どっちのセクションで書こう悩んだが，所詮ツールの話だし，こっち側で。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/installing-vscode-again/&#34; target=&#34;_blank&#34;&gt;パソコンに Visual Studio Code を導入する（再チャレンジ）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/golang-with-vscode/&#34; target=&#34;_blank&#34;&gt;Go と VS Code&lt;/a&gt; ← イマココ&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/markdown-with-vscode/&#34; target=&#34;_blank&#34;&gt;Markdown と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/08/java-with-vscode/&#34; target=&#34;_blank&#34;&gt;Java と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2022/04/codespaces/&#34; target=&#34;_blank&#34;&gt;やっと Codespaces が使える&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;それでは&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/installing-vscode-again/&#34; target=&#34;_blank&#34; title=&#34;パソコンに Visual Studio Code を導入する（再チャレンジ）&#34;&gt;前回&lt;/a&gt;の続き。
&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; に &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go 言語&lt;/a&gt;開発支援環境を入れる。
といっても一択だけどね。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=golang.go&#34; target=&#34;_blank&#34;&gt;Go - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;インストールはこちら。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension golang.go
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;一応 Google が公式に参加している拡張機能らしい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.golang.org/vscode-go&#34; target=&#34;_blank&#34;&gt;The VS Code Go extension joins the Go project - The Go Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://code.visualstudio.com/blogs/2020/06/09/go-extension&#34; target=&#34;_blank&#34;&gt;Visual Studio Code Go extension joins the Go project&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;しかも最近，こちらも事実上のオフィシャルである &lt;a href=&#34;https://pkg.go.dev/golang.org/x/tools/gopls&#34; target=&#34;_blank&#34; title=&#34;gopls · pkg.go.dev&#34;&gt;gopls&lt;/a&gt; が，この拡張機能の既定の &lt;a href=&#34;https://langserver.org/&#34; target=&#34;_blank&#34; title=&#34;Langserver.org&#34;&gt;language server&lt;/a&gt; となったようだ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.golang.org/gopls-vscode-go&#34; target=&#34;_blank&#34;&gt;Gopls on by default in the VS Code Go extension - The Go Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;個人的にひとつだけ気に入らないところがあって，既定の設定のままではプロジェクト・フォルダを開いたときにトップに &lt;code&gt;go.mod&lt;/code&gt; ファイルがないと上手く動かないみたいなんだよね（&lt;a href=&#34;https://zenn.dev/spiegel/articles/20210223-go-module-aware-mode&#34; target=&#34;_blank&#34; title=&#34;Go のモジュール管理【バージョン 1.16 改訂版】&#34;&gt;モジュール対応モード&lt;/a&gt;の場合）。&lt;/p&gt;
&lt;p&gt;最初は拡張機能側の問題かと思っていたが，どうも &lt;a href=&#34;https://pkg.go.dev/golang.org/x/tools/gopls&#34; target=&#34;_blank&#34; title=&#34;gopls · pkg.go.dev&#34;&gt;gopls&lt;/a&gt; の制限らしい。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/golang/tools/blob/master/gopls/doc/workspace.md&#34; target=&#34;_blank&#34;&gt;tools/workspace.md at master · golang/tools · GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一応の回避策はあって &lt;code&gt;settings.json&lt;/code&gt; に以下の&lt;a href=&#34;https://github.com/golang/tools/blob/master/gopls/doc/settings.md#experimentalworkspacemodule-bool&#34; target=&#34;_blank&#34;&gt;オプションを設定&lt;/a&gt;することでトップ以外の複数の &lt;code&gt;go.mod&lt;/code&gt; ファイルに対応できるようだ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;gopls&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;build.experimentalWorkspaceModule&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ただし &lt;code&gt;go.mod&lt;/code&gt; ファイルで定義したモジュール名は開いたプロジェクト・フォルダ内で一意でなければならない。
名前が被ってるとめっさ怒られる。&lt;/p&gt;
&lt;p&gt;まぁ，理屈は分からんでもないが，私の場合，ブログなどのドキュメント環境でサンプルコードを書き散らしていて，それらのモジュール名が大抵 &amp;ldquo;&lt;code&gt;sample&lt;/code&gt;” だったりするので被りまくりなんだよなぁ sigh&amp;hellip;&lt;/p&gt;
&lt;p&gt;ちなみに，この &lt;a href=&#34;https://github.com/golang/tools/blob/master/gopls/doc/settings.md#experimentalworkspacemodule-bool&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;experimentalWorkspaceModule&lt;/code&gt; オプション&lt;/a&gt;は一時的な措置なので将来的にはなくなるようだ。
それまでには何とかするということだろう。&lt;/p&gt;
&lt;p&gt;それ以外の部分ではぶっちゃけ &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34;&gt;ATOM&lt;/a&gt; の &lt;a href=&#34;https://atom.io/packages/go-plus&#34; target=&#34;_blank&#34;&gt;go-plus&lt;/a&gt; よりも出来がいいので，ゆるゆると移行していきますよっと。&lt;/p&gt;
&lt;p&gt;現時点での &lt;code&gt;settings.json&lt;/code&gt; の内容はこんな感じ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.buildOnSave&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;off&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.autocompleteUnimportedPackages&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.formatTool&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;goimports&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.lintTool&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;golangci-lint&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.gotoSymbol.includeGoroot&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.testOnSave&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.coverageOptions&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;showUncoveredCodeOnly&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.coverOnSave&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.coverOnSingleTestFile&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;go.coverageDecorator&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;nt&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;gutter&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;nt&#34;&gt;&amp;#34;gopls&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;		&lt;span class=&#34;nt&#34;&gt;&amp;#34;build.experimentalWorkspaceModule&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;	&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;【2021-03-02 追記】&lt;/h2&gt;
&lt;p&gt;書き忘れていたが，コマンドパレットから&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;Go: Install/Update Tools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;と入力すると関連ツールのインストールおよびアップデートができる。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./update-tools.png&#34;&gt;&lt;img src=&#34;./update-tools.png&#34; srcset=&#34;./update-tools.png 612w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;Go: Install/Update Tools&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./update-tools.png&#34;&gt;Go: Install/Update Tools&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;これを実行すると&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Tools environment: GOPATH=/home/username/go
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing 9 tools at /home/username/go/bin in module mode.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  gopkgs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  go-outline
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  gotests
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  gomodifytags
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  impl
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  goplay
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  dlv
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  golangci-lint
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  gopls
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing github.com/uudashr/gopkgs/v2/cmd/gopkgs (/home/username/go/bin/gopkgs) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing github.com/ramya-rao-a/go-outline (/home/username/go/bin/go-outline) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing github.com/cweill/gotests/... (/home/username/go/bin/gotests) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing github.com/fatih/gomodifytags (/home/username/go/bin/gomodifytags) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing github.com/josharian/impl (/home/username/go/bin/impl) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing github.com/haya14busa/goplay/cmd/goplay (/home/username/go/bin/goplay) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing github.com/go-delve/delve/cmd/dlv (/home/username/go/bin/dlv) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing github.com/golangci/golangci-lint/cmd/golangci-lint (/home/username/go/bin/golangci-lint) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing golang.org/x/tools/gopls (/home/username/go/bin/gopls) SUCCEEDED
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;All tools successfully installed. You are ready to Go :).
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;てな感じで &lt;code&gt;go install&lt;/code&gt; してくれるようだ。
自動でアップデートしてくれるといいのだが&amp;hellip;&lt;/p&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B08CZ2C3NZ?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51LziyyXRmL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B08CZ2C3NZ?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Software Design (ソフトウェアデザイン) 2020年8月号 [雑誌]&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Software Design 編集部 (編集)&lt;/dd&gt;
    &lt;dd&gt;技術評論社 2020-07-18 (Release 2020-07-18)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B08CZ2C3NZ (ASIN)&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;特集記事は「Vim vs. Visual Studio Code」&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2021-02-28&#34;&gt;2021-02-28&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- Software Design (2020年8月号) --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4621300253?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/41meaSLNFfL._SL160_.jpg&#34; width=&#34;122&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4621300253?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;丸善出版 2016-06-20&lt;/dd&gt;
    &lt;dd&gt;単行本（ソフトカバー）&lt;/dd&gt;
    &lt;dd&gt;4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;著者のひとりは（あの「バイブル」とも呼ばれる）通称 “K&amp;amp;R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。と思ったら絶版状態らしい（2025-01 現在）。復刊を望む！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2016-07-13&#34;&gt;2016-07-13&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- プログラミング言語Go --&gt;
</content>
	</entry><entry>
		<title>パソコンに Visual Studio Code を導入する（再チャレンジ）</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2021/02/installing-vscode-again/" />
		<id>tag:text.Baldanders.info,2021-02-27:/remark/2021/02/installing-vscode-again/</id>
		<published>2021-02-27T05:23:23+00:00</published>
		<updated>2024-01-18T23:11:26+00:00</updated>
		<summary>まずはインストールと初期設定</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;p&gt;今の職場では当然のように Windows 10 機を支給されていてテキスト・エディタ等の普段使いのツールであれば割と自由に使わせてくれるのはいいのだが，6 年ほど使い込んで手に馴染んでる筈の &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34;&gt;ATOM&lt;/a&gt; が使えなくてねぇ。
理由は大きく 2 つ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;起動が遅すぎる（もともと遅いが堪えられないほど遅い）&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; 言語開発支援の &lt;a href=&#34;https://atom.io/packages/go-plus&#34; target=&#34;_blank&#34;&gt;go-plus&lt;/a&gt; が実質的に動かない&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;特に 2 番目が致命的。
私の観測範囲が狭いせいか，この手の話をほとんど聞かないのだが Windows で &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34;&gt;ATOM&lt;/a&gt; で &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; で開発をしてる人はいないってことなのかねぇ。&lt;/p&gt;
&lt;p&gt;さらに言うと &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34;&gt;ATOM&lt;/a&gt; を開発している GitHub が &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; を開発している Microsoft に買収され，オフィシャルの Go Language Server である &lt;a href=&#34;https://pkg.go.dev/golang.org/x/tools/gopls&#34; target=&#34;_blank&#34; title=&#34;gopls · pkg.go.dev&#34;&gt;gopls&lt;/a&gt; が，これまた &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=golang.go&#34; target=&#34;_blank&#34; title=&#34;Go - Visual Studio Marketplace&#34;&gt;Google オフィシャルの VS Code 用拡張機能&lt;/a&gt;の&lt;a href=&#34;https://blog.golang.org/gopls-vscode-go&#34; target=&#34;_blank&#34; title=&#34;Gopls on by default in the VS Code Go extension - The Go Blog&#34;&gt;既定の Language Server になった&lt;/a&gt;というのも大きい。
&lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34;&gt;ATOM&lt;/a&gt; の &lt;a href=&#34;https://atom.io/packages/go-plus&#34; target=&#34;_blank&#34;&gt;go-plus&lt;/a&gt; なんて今だに gocode 使ってるんだぜ。
完全に廃れているよなぁ &lt;code&gt;orz&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;というわけで，観念して &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; を導入することにした。&lt;/p&gt;
&lt;p&gt;実は昨年 5 月に自宅の &lt;a href=&#34;https://text.baldanders.info/remark/2020/05/installing-vscode-in-ubuntu/&#34; target=&#34;_blank&#34; title=&#34;Ubuntu に Visual Studio Code を導入する&#34;&gt;Ubuntu 機に VS Code を入れた&lt;/a&gt;んだけど，結局挫折して削除しちゃったんだよねぇ。
今回は職場の Windows 機で先行して導入している。
なので Windows 機と &lt;a href=&#34;https://www.ubuntu.com/&#34; target=&#34;_blank&#34; title=&#34;The leading operating system for PCs, IoT devices, servers and the cloud | Ubuntu&#34;&gt;Ubuntu&lt;/a&gt; 機を比較しながら，何回かに分けて記事を書いていく予定である。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/installing-vscode-again/&#34; target=&#34;_blank&#34;&gt;パソコンに Visual Studio Code を導入する（再チャレンジ）&lt;/a&gt; ← イマココ&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/golang-with-vscode/&#34; target=&#34;_blank&#34;&gt;Go と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/02/markdown-with-vscode/&#34; target=&#34;_blank&#34;&gt;Markdown と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2021/08/java-with-vscode/&#34; target=&#34;_blank&#34;&gt;Java と VS Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2022/04/codespaces/&#34; target=&#34;_blank&#34;&gt;やっと Codespaces が使える&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; のインストール&lt;/h2&gt;
&lt;p&gt;Windows 版のインストールは&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;サイト&lt;/a&gt;からインストーラをダウンロードすればよい。&lt;/p&gt;
&lt;p&gt;問題は &lt;a href=&#34;https://www.ubuntu.com/&#34; target=&#34;_blank&#34; title=&#34;The leading operating system for PCs, IoT devices, servers and the cloud | Ubuntu&#34;&gt;Ubuntu&lt;/a&gt; だが Snap 版と APT 版がある。
昨年の話だが Snap 版を入れたら日本語入力が壊滅してたので，今回も選択肢には入れない。&lt;/p&gt;
&lt;p&gt;APT 版は Microsoft がリポジトリを公開しているので，これを設定してインストールする。&lt;/p&gt;
&lt;figure lang=&#34;en&#34;&gt;
&lt;blockquote class=&#34;nobox&#34; cite=&#34;https://code.visualstudio.com/docs/setup/linux&#34;&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt-get install wget gpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor &amp;gt; packages.microsoft.gpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sh -c &amp;#39;echo &amp;#34;deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main&amp;#34; &amp;gt; /etc/apt/sources.list.d/vscode.list&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rm -f packages.microsoft.gpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install apt-transport-https
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install code # or code-insiders
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;via &lt;q&gt;&lt;a href=&#34;https://code.visualstudio.com/docs/setup/linux&#34;&gt;Running Visual Studio Code on Linux&lt;/a&gt;&lt;/q&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;起動は Shell やコマンド・プロンプト等でファイル名またはディレクトリ名を指定して&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすれば起動する&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;。
Windows 版の &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34;&gt;ATOM&lt;/a&gt; はコマンド・プロンプトから任意の場所を開けなくて往生したんだよなぁ。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; 本体以外の各種ファイルは以下のディレクトリに格納される。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows 版
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;%USERPROFILE%\.vscode\&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;%APPDATA%\Code\&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.ubuntu.com/&#34; target=&#34;_blank&#34; title=&#34;The leading operating system for PCs, IoT devices, servers and the cloud | Ubuntu&#34;&gt;Ubuntu&lt;/a&gt; 版
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$HOME/.vscode/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$HOME/.config/Code/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;settings.json&lt;/code&gt; や &lt;code&gt;keybindings.json&lt;/code&gt; といった設定ファイルやスニペットを格納する &lt;code&gt;snippets/&lt;/code&gt; ディレクトリは &lt;code&gt;Code/User/&lt;/code&gt; ディレクトリ直下にあるので，必要に応じてバックアップを取るのがいいだろう。&lt;/p&gt;
&lt;p&gt;ぶっちゃけ日本語化は不要。
つか，コマンドパレットや検索フィルタを常用するなら下手に日本語化しても混乱するだけだろう。&lt;/p&gt;
&lt;h2&gt;テレメトリの無効化&lt;/h2&gt;
&lt;p&gt;これは任意だが，ベンダ・メーカによるテレメトリを嫌うなら，最初の起動時に無効化の設定をしておく。
具体的には設定画面（&lt;code&gt;[Ctrl+,]&lt;/code&gt; 押下で起動）で &lt;code&gt;telemetry&lt;/code&gt; を入力し，出てきた項目のチェックを外す。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./telemetry.png&#34;&gt;&lt;img src=&#34;./telemetry.png&#34; srcset=&#34;./telemetry.png 1044w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;telemetry&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./telemetry.png&#34;&gt;telemetry&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;テレメトリを無効化すると &lt;code&gt;settings.json&lt;/code&gt; に以下の内容が書き込まれる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;telemetry.enableCrashReporter&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;telemetry.enableTelemetry&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; の設定画面は拡張機能も含めて全てフラットに表示してしまうので，検索フィルタで絞り込まないとめちゃめちゃ使い辛い。
慣れるまでは設定画面で操作しながら &lt;code&gt;settings.json&lt;/code&gt; の内容を確認していく（必要に応じてバックアップ）のがいいだろう。&lt;/p&gt;
&lt;p&gt;こういのが面倒くさいんだよなぁ， &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; って。&lt;/p&gt;
&lt;h2&gt;キー設定&lt;/h2&gt;
&lt;p&gt;まずはキー設定を確認しておく。
キー割当の公式情報が PDF で公開されているので，参考にするとよいだろう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a href=&#34;https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf&#34;&gt;Keyboard Shortcuts for Windows &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a href=&#34;https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf&#34;&gt;Keyboard Shortcuts for Linux &lt;sup&gt;&lt;i class=&#34;far fa-file-pdf&#34;&gt;&lt;/i&gt;&lt;/sup&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;拡張機能に「◯◯ エディタ風」とかまとめて設定できるものもあるが，歳をとるとそういうカスタマイズは面倒になってくる&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;。
今回はできるだけキー割当を変えないで Linux 版と Windows 版で挙動が異なるもののみに注目してチューニングしていく。&lt;/p&gt;
&lt;p&gt;なお，キー割当は “Keyboard Shortcuts” 画面で変更するのが無難で安全である。
&lt;code&gt;settings.json&lt;/code&gt; と同じく，慣れるまでは &lt;code&gt;keybindings.json&lt;/code&gt; の内容を確認しながら必要に応じてバックアップをとるのがいいだろう。&lt;/p&gt;
&lt;h3&gt;コマンドパレット等&lt;/h3&gt;
&lt;p&gt;この辺は最低限おぼえておくべき。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;キー割当&lt;/th&gt;
          &lt;th&gt;機能&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+Shift+P]&lt;/code&gt;&lt;br&gt;&lt;code&gt;[F1]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Show All Commands (コマンドパレット)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+,]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Settings (UI)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+K]&lt;/code&gt; &lt;code&gt;[Ctrl+S]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Open Keyboard Shortcuts&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;最初から &lt;code&gt;[F1]&lt;/code&gt; キーにコマンドパレットが割り当てられているのはありがたい。
まぁ，コマンドパレットさえ使えれば，あとはうろ覚えでも何とかなる（笑）&lt;/p&gt;
&lt;h3&gt;マルチカーソル&lt;/h3&gt;
&lt;p&gt;きょうびのテキスト・エディタでマルチカーソルが使えないのはク ◯ だろう（下品でごめん）。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;キー割当&lt;/th&gt;
          &lt;th&gt;機能&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+Alt+↑]&lt;/code&gt;&lt;br&gt;&lt;code&gt;[Shift+Alt+↑]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Add Cursor Above&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+Alt+↓]&lt;/code&gt;&lt;br&gt;&lt;code&gt;[Shift+Alt+↓]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Add Cursor Below&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+D]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Add Selection To Next Find Match&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+Shift+L]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Select All Occurrences of Find Match&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+F2]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Change All Occurrences&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Shift+Alt+I]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Add Cursors to Line Ends&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Windows 版ではマルチカーソルの追加（上の 2 つの機能ね）が&lt;code&gt;[Ctrl+Alt+↑]&lt;/code&gt; および &lt;code&gt;[Ctrl+Alt+↓]&lt;/code&gt; にしか割り当てられてないんだけど，それやったらうちの環境ではモニタ表示の向きが変わってしまうんだよね。
うちだけの現象なのだろうか。&lt;/p&gt;
&lt;p&gt;ちうわけで Windows 版では &lt;code&gt;[Shift+Alt+↑]&lt;/code&gt;, &lt;code&gt;[Shift+Alt+↓]&lt;/code&gt; に変更する。
&lt;code&gt;keybindings.json&lt;/code&gt; にはこんな感じに設定されるようだ。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Place your key bindings in this file to override the defaultsauto[]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;shift+alt+up&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editor.action.insertCursorAbove&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorTextFocus&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+alt+up&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-editor.action.insertCursorAbove&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorTextFocus&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;shift+alt+down&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editor.action.insertCursorBelow&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorTextFocus&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+alt+down&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-editor.action.insertCursorBelow&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorTextFocus&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;行の 2 重化&lt;/h3&gt;
&lt;p&gt;何故この機能がキーに割り当てられてないのだ！ というわけで &lt;code&gt;[Ctrl+F10]&lt;/code&gt; に割り当てた。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;キー割当&lt;/th&gt;
          &lt;th&gt;機能&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+F10]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Duplicate Selection&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;keybindings.json&lt;/code&gt; にはこんな感じに設定される。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Place your key bindings in this file to override the defaultsauto[]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+f10&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editor.action.duplicateSelection&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;Integrated Terminal&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; には標準でターミナル機能が付いている。
ありがたや。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;キー割当&lt;/th&gt;
          &lt;th&gt;機能&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;[Ctrl+Shift+@]&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Toggle Integrated Terminal&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この機能は頻繁に使うので &lt;code&gt;[Ctrl+F1]&lt;/code&gt; キーに割り当て直す。
&lt;code&gt;keybindings.json&lt;/code&gt; にはこんな感じに設定された。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Place your key bindings in this file to override the defaultsauto[]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+f1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.toggleTerminal&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+shift+[BracketLeft]&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-workbench.action.terminal.toggleTerminal&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Windows 版なら &lt;a href=&#34;https://github.com/nyaosorg/nyagos/&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid UNIXLike Commandline Shell for Windows&#34;&gt;NYAGOS&lt;/a&gt; を shell として使いたいものである。
そこで &lt;code&gt;settings.json&lt;/code&gt; に以下の設定を直接書き込む。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;terminal.integrated.shell.windows&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\\Users\\username\\scoop\\apps\\nyagos\\current\\nyagos.exe&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;（&lt;a href=&#34;https://text.baldanders.info/remark/2020/10/windows-terminal-and-nyagos-and-scoop/&#34; target=&#34;_blank&#34; title=&#34;Windows Terminal × NYAGOS × Scoop ＝ ♥&#34;&gt;Scoop で NYAGOS をインストール&lt;/a&gt;した場合）&lt;/p&gt;
&lt;h3&gt;Search Editor&lt;/h3&gt;
&lt;p&gt;簡単な検索と置換は &lt;code&gt;[Ctrl+F]&lt;/code&gt; と &lt;code&gt;[Ctrl+H]&lt;/code&gt; で可能だがファイルを跨いだ grep や grep 置換を行う場合は &lt;code&gt;[Ctrl+Shift+F]&lt;/code&gt; または &lt;code&gt;[Ctrl+Shift+H]&lt;/code&gt; でサイドバーを検索に切り替えた上で &lt;code&gt;[Ctrl+Shift+J]&lt;/code&gt; で詳細項目を展開する。&lt;/p&gt;
&lt;p&gt;ただサイドバーの操作ってマウス前提だし使い勝手がよくないんだよねぇ。&lt;/p&gt;
&lt;p&gt;と思ったら設定に Search Editor という項目があって，“Search: Mode” 項目を変更することで &lt;code&gt;[Ctrl+Shift+F]&lt;/code&gt; キー押下時にどちらを起動するか選べるようだ。
これを &lt;code&gt;newEditor&lt;/code&gt; に変更したら &lt;code&gt;settings.json&lt;/code&gt; にはこんな感じに設定された。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;search.mode&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;newEditor&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これでサイドバーではなくエディタのタブとして検索画面が開く。
検索結果から検索元のファイル：行にジャンプするには &lt;code&gt;[F12]&lt;/code&gt; キー押下で OK（ソースコードのシンボル定義元へのジャンプと同じ）。&lt;/p&gt;
&lt;p&gt;Grep 置換機能には該当の項目がなくサイドバーから行うしかないようだ。
まぁ，ファイルを跨いでの一括置換処理は滅多にしないけどな（笑）&lt;/p&gt;
&lt;h2&gt;【2021-03-02 追記】ウィンドウの設定&lt;/h2&gt;
&lt;h3&gt;画面起動時のウィンドウ画面サイズ&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; を起動する際のウィンドウ画面は前回時の状態を継承するのだが，そのまま 2 つ目を起動すると何故かウィンドウサイズが既定で起動してしまう。
これがめちゃめちゃストレスだったのだが，何と設定で変えれるらしい。
具体的には&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;window.newWindowDimensions&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;inherit&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすれば 2 つ目以降もウィンドウの状態を「継承」してくれる。
つか，最初からこれを既定にしてくれよ &lt;code&gt;orz&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;ウィンドウのタイトルバーを非表示にする&lt;/h3&gt;
&lt;p&gt;Windows 版は既定でウィンドウのタイトルバーが非表示になっている。
今どきの Windows アプリケーションって大抵そんな見た目なのでそれが普通だと思っていたが，なんか設定で変えれるらしい。
具体的には&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;window.titleBarStyle&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;native&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすれば，タイトルバーが表示されるようになった（&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; 要再起動）。
まぁ，特に嬉しいわけではないのだけど。&lt;/p&gt;
&lt;p&gt;で，実は Linux 版でもこの値を &lt;code&gt;custom&lt;/code&gt; にすることでタイトルバーを非表示にできるようだ。
早速試してみた。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./custom-title-bar-style.png&#34;&gt;&lt;img src=&#34;./custom-title-bar-style.png&#34; srcset=&#34;./custom-title-bar-style.png 1024w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;タイトルバーを非表示に&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./custom-title-bar-style.png&#34;&gt;タイトルバーを非表示に&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;おー，ホンマじゃ。
これは嬉しい。&lt;/p&gt;
&lt;h2&gt;カラー・テーマは&amp;hellip; 入れなくてもいいか&lt;/h2&gt;
&lt;p&gt;歳をとるとだんだん目が弱くなってくる。
Windows にせよ Ubuntu にせよ，パソコンのデスクトップ画面は基本的にダーク・テーマにしているのだが， &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; もこれに合わせて自動的にダークテーマになるようだ。
これならカラー・テーマを別途入れる必要はないか。&lt;/p&gt;
&lt;p&gt;ただし標準のままではカーソル行が分かりにくいので &lt;code&gt;settings.json&lt;/code&gt; に以下の設定を直接書き込む。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;workbench.colorCustomizations&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.lineHighlightBackground&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;#303030&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;よーし，うむうむ，よーし。&lt;/p&gt;
&lt;h2&gt;必須の拡張機能&lt;/h2&gt;
&lt;p&gt;えっと，私にとって「ないと困る機能」だからね。
念のため。&lt;/p&gt;
&lt;p&gt;ちなみに&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension &amp;lt;package name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすることでも拡張機能をインストールできる。
Shell スクリプト（またはバッチ・ファイル）にまとめておけば再インストールの際にちょっとは楽になると思う。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig&#34; target=&#34;_blank&#34; title=&#34;EditorConfig for VS Code - Visual Studio Marketplace&#34;&gt;EditorConfig for VS Code&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension EditorConfig.EditorConfig
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;コード書きなら &lt;a href=&#34;https://editorconfig.org/&#34; target=&#34;_blank&#34;&gt;EditorConfig&lt;/a&gt; は MUST だろう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zenn.dev/spiegel/articles/20200922-editorconfig&#34; target=&#34;_blank&#34;&gt;インデントおよび行末は EditorConfig で始末する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=mosapride.zenkaku&#34; target=&#34;_blank&#34; title=&#34;zenkaku - Visual Studio Marketplace&#34;&gt;zenkaku&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension mosapride.zenkaku
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;全角空白を見やすく表示してくれる優れもの。
つか，滅びろ全角空白！&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=masakit.zenkaku-hankaku&#34; target=&#34;_blank&#34; title=&#34;Zenkaku-Hankaku - Visual Studio Marketplace&#34;&gt;Zenkaku-Hankaku&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension masakit.zenkaku-hankaku
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;全角半角変換。
日本語入力環境では必須。
というか半角カナとか全角英数とかマジで勘弁してほしい。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=medo64.render-crlf&#34; target=&#34;_blank&#34; title=&#34;Render Line Endings - Visual Studio Marketplace&#34;&gt;Render Line Endings&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension medo64.render-crlf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;改行コードの可視化。
色々あったけどユーザが多そうだったのでコレにした。
行末の余分な空白文字も目立たせてくれるスグレモノ。
つか，改行コードを表示するのに拡張機能が必要なのかよ &lt;code&gt;orz&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;settings.json&lt;/code&gt; はこんな感じに設定している。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;code-eol.highlightExtraWhitespace&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;code-eol.highlightNonDefault&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ついでに設定の “Render Control Characters” も ON にしている。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.renderControlCharacters&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=mrmlnc.vscode-duplicate&#34; target=&#34;_blank&#34; title=&#34;Duplicate action - Visual Studio Marketplace&#34;&gt;Duplicate action&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension mrmlnc.vscode-duplicate
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; のファイル・エクスプローラー機能がショボい。
特にファイルの duplicate 機能がないのは不便って思ってたら拡張機能にあった。
何故これを標準装備しないのだ！&lt;/p&gt;
&lt;h2&gt;あるとよさげな拡張機能&lt;/h2&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme&#34; target=&#34;_blank&#34; title=&#34;Material Icon Theme - Visual Studio Marketplace&#34;&gt;Material Icon Theme&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension PKief.material-icon-theme
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;よい。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2&#34; target=&#34;_blank&#34; title=&#34;Bracket Pair Colorizer 2 - Visual Studio Marketplace&#34;&gt;Bracket Pair Colorizer 2&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension CoenraadS.bracket-pair-colorizer-2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;括弧の対応を色付きで見やすくしてくれる。
ホンマに見やすいな。
2 のほうが出来がいいらしい。&lt;/p&gt;
&lt;div class=&#34;box&#34;&gt;&lt;h4&gt;【2021-09-03 追記】&lt;/h4&gt;
&lt;p&gt;[VS Code] 1.60 で括弧類のカラー化がサポートされた。
設定で “Bracket Pair Colorization” の項目を探してチェックを入れるか &lt;code&gt;settings.json&lt;/code&gt; で&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;editor.bracketPairColorization.enabled&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;などとすればいいようだ。
ただ &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer-2&#34; target=&#34;_blank&#34; title=&#34;Bracket Pair Colorizer 2 - Visual Studio Marketplace&#34;&gt;Bracket Pair Colorizer 2&lt;/a&gt; と比べると微妙に見え方が違うので，好みが分かれるかも知れない。&lt;/p&gt;
&lt;/div&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph&#34; target=&#34;_blank&#34; title=&#34;Git Graph - Visual Studio Marketplace&#34;&gt;Git Graph&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension mhutchie.git-graph
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;git commit&lt;/code&gt; などの基本的なコマンドはコマンドパレットから簡単に呼び出せるが， GUI で操作したいときもあるので。
しかも以下のオプションを付ければ電子署名の検証も表示してくれる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;git-graph.repository.commits.showSignatureStatus&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;というわけで採用。
つか，これがあれば他の git GUI ツール要らなくね？&lt;/p&gt;
&lt;p&gt;キーボードで操作しやすいよう &lt;code&gt;[Shift+F1]&lt;/code&gt; キー押下で表示するようにした。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Place your key bindings in this file to override the defaultss
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;shift+f1&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;git-graph.view&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode&#34; target=&#34;_blank&#34; title=&#34;Visual Studio IntelliCode - Visual Studio Marketplace&#34;&gt;Visual Studio IntelliCode&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension VisualStudioExptTeam.vscodeintellicode
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;最初は「別になくてもいいや」と思っていたのだが，使ってみるとめがっさ便利。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens&#34; target=&#34;_blank&#34; title=&#34;GitLens — Git supercharged - Visual Studio Marketplace&#34;&gt;GitLens&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension eamodio.gitlens
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;多分，チーム運用で相互レビューするときなんかには重宝するんだろう。
かなり詳細な情報が見れるんだけど，私個人にはちょっと過剰な機能なんだよなぁ。
とりあえず保留。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=GrapeCity.gc-excelviewer&#34; target=&#34;_blank&#34; title=&#34;Excel Viewer - Visual Studio Marketplace&#34;&gt;Excel Viewer&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code --install-extension GrapeCity.gc-excelviewer
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;GrapeCity が公開してるのか。
どーりで（笑）&lt;/p&gt;
&lt;p&gt;仕事で使うならよさげだけど，個人レベルじゃ特に要らないかな。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://forest.watch.impress.co.jp/docs/review/1046119.html&#34; target=&#34;_blank&#34;&gt;【レビュー】「Visual Studio Code」で Excel スプレッドシートや CSV データを表示「Excel Viewer」 - 窓の杜&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv&#34; target=&#34;_blank&#34; title=&#34;Rainbow CSV - Visual Studio Marketplace&#34;&gt;Rainbow CSV&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;CSV 支援用の拡張機能はいくつかあるが，スプレッドシートにこだわらず，元の状態を維持しつつ分かりやすい。
おすすめ。&lt;/p&gt;
&lt;h2&gt;現在日時を設定するスニペット&lt;/h2&gt;
&lt;p&gt;現在日時をセットする方法はいくつかあるようだが，スニペットを使うのがお手軽な感じである。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Code/User/&lt;/code&gt; ディレクトリ直下に &lt;code&gt;snippets/datetime.code-snippets&lt;/code&gt; というファイルを作って&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;，以下の内容をセットすれば OK。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;Today&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;today&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;$CURRENT_YEAR-$CURRENT_MONTH-$CURRENT_DATE&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Today (RFC3339)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;Now&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;now&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;$CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Now time (local time)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;TodayFull&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;prefix&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;todaytime&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;body&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s2&#34;&gt;&amp;#34;$CURRENT_YEAR-$CURRENT_MONTH-${CURRENT_DATE}T$CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND+09:00&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Today and time (RFC3339)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで &lt;code&gt;today&lt;/code&gt;, &lt;code&gt;now&lt;/code&gt;, &lt;code&gt;todaytime&lt;/code&gt; の補完候補として表示される。
自動で表示されない場合は &lt;code&gt;[Ctrl+space]&lt;/code&gt; で候補一覧が出る。&lt;/p&gt;
&lt;p&gt;単純な置換ならスニペットのほうがお手軽なので積極的に使っていきたいところである。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://iucstscui.hatenablog.com/entry/2021/01/13/080000&#34; target=&#34;_blank&#34;&gt;Visual Studio Code スニペットで簡単日付入力 - はんなりと、ゆるやかに&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/xx2xyyy/items/fd333368db548167f15a&#34; target=&#34;_blank&#34;&gt;VsCode のスニペットのススメ - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://code.visualstudio.com/docs/editor/userdefinedsnippets&#34; target=&#34;_blank&#34;&gt;Snippets in Visual Studio Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zenn.dev/karaage0703/books/80b6999d429abc8051bb&#34; target=&#34;_blank&#34;&gt;VS Code エディタ入門&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zenn.dev/catnose99/scraps/36c04be9fb1209&#34; target=&#34;_blank&#34;&gt;【随時更新】使ってる VSCode の拡張機能のまとめ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://eh-career.com/engineerhub/entry/2019/06/21/103000&#34; target=&#34;_blank&#34;&gt;Visual Studio Code のうれしい機能を使いこなして、初心者を最速で脱出する！《VSCode 実践入門》 - エンジニア Hub ｜若手 Web エンジニアのキャリアを考える！&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://hirocks.jp/vscode-%e3%81%ab%e5%85%a5%e3%82%8c%e3%81%a6%e3%81%84%e3%82%8b%e6%8b%a1%e5%bc%b5%e6%a9%9f%e8%83%bd-2020%e5%b9%b4%e7%89%88/&#34; target=&#34;_blank&#34;&gt;VSCode に入れている拡張機能 2020 年版 – 未来をデザインするマーケティング会社 -ハイロックス&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.geekfeed.co.jp/geekblog/vscode_extension&#34; target=&#34;_blank&#34;&gt;VSCode 使い必見！？使って便利な Visual Studio Code 拡張機能 10 選 | ソフトウェア開発のギークフィード&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://jsstudy.hatenablog.com/entry/How-to-set-a-shortcut-to-enter-the-current-date-and-time-in-Visual-Studio-Code&#34; target=&#34;_blank&#34;&gt;Visual Studio Code で現在の日時を入力するショートカットを設定する方法 - JavaScript 勉強会&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/y-tsutsu/items/cfe89c0168f40a8fb353&#34; target=&#34;_blank&#34;&gt;VSCodeでなるべくマウスを使わない開発環境をがんばる - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=cweijan.vscode-database-client2&#34; target=&#34;_blank&#34;&gt;Database Client - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=ckolkman.vscode-postgres&#34; target=&#34;_blank&#34;&gt;PostgreSQL - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B08CZ2C3NZ?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51LziyyXRmL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B08CZ2C3NZ?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;Software Design (ソフトウェアデザイン) 2020年8月号 [雑誌]&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;Software Design 編集部 (編集)&lt;/dd&gt;
    &lt;dd&gt;技術評論社 2020-07-18 (Release 2020-07-18)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B08CZ2C3NZ (ASIN)&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;特集記事は「Vim vs. Visual Studio Code」&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2021-02-28&#34;&gt;2021-02-28&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- Software Design (2020年8月号) --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Windows 版でコマンド・プロンプトから開くには，インストール時に PATH を通す設定をする必要がある。また Windows 版ではエクスプローラのコンテキスト・メニューから開くオプションもあるので積極的に利用していいだろう。&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;大昔の Mifes や Vz Editor くらいしか選択肢がなかった頃ならともかく，今はいくらでも選択肢があるのにわざわざ「◯◯ エディタ風キーマップ」とかするくらいなら「◯◯ エディタ」を使えよ，と思うのは私だけだろうか。&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;汎用で使うスニペットを定義する場合，拡張子が &lt;code&gt;.code-snippets&lt;/code&gt; なファイルであればいいらしい。&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</content>
	</entry><entry>
		<title>Windows Terminal × NYAGOS × Scoop ＝ ♥</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2020/10/windows-terminal-and-nyagos-and-scoop/" />
		<id>tag:text.Baldanders.info,2020-10-27:/remark/2020/10/windows-terminal-and-nyagos-and-scoop/</id>
		<published>2020-10-27T13:17:46+00:00</published>
		<updated>2023-01-08T06:11:00+00:00</updated>
		<summary>とりあえず ATOM エディタと NYAGOS を入れたい。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;p&gt;アルファ・ベータ・オメガの割り振りはご想像にお任せします &lt;abbr class=&#34;emoji-chars&#34; title=&#34;:smile:&#34;&gt;😄&lt;/abbr&gt; って，そういう話ではない。&lt;/p&gt;
&lt;p&gt;さて，職場で Windows 10 機を支給されたので，とりあえず &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34; title=&#34;Atom&#34;&gt;ATOM&lt;/a&gt; エディタと &lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; を入れたいわけですよ。&lt;/p&gt;
&lt;h2&gt;Windows 10 に &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34; title=&#34;Atom&#34;&gt;ATOM&lt;/a&gt; を入れる&lt;/h2&gt;
&lt;p&gt;まぁこちらはサラッと。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34; title=&#34;Atom&#34;&gt;公式ページ&lt;/a&gt;からインストーラを取ってきて普通にインストールすればいいだけ。
なのだが，何故か Windows 版はコマンドラインからの起動が冷遇されているのよ。
古いバージョンにはあった &lt;code&gt;atom.cmd&lt;/code&gt; がなくなっている。&lt;/p&gt;
&lt;p&gt;じゃあ，どうやって起動するのかというと “System Settings” で&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./atom-system-settings.png&#34;&gt;&lt;img src=&#34;./atom-system-settings.png&#34; srcset=&#34;./atom-system-settings.png 734w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;System Settings in ATOM&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./atom-system-settings.png&#34;&gt;System Settings in ATOM&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;てな感じにエクスプローラ等のコンテキストメニューから開けるように設定できる。
また &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34; title=&#34;Atom&#34;&gt;ATOM&lt;/a&gt; が起動している状態でタスクバーの &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34; title=&#34;Atom&#34;&gt;ATOM&lt;/a&gt; アイコンをピン留めしておけば&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./atom-in-task-bar.png&#34;&gt;&lt;img src=&#34;./atom-in-task-bar.png&#34; srcset=&#34;./atom-in-task-bar.png 525w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;ATOM icon in task bar&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&lt;div&gt;&lt;a href=&#34;./atom-in-task-bar.png&#34;&gt;ATOM icon in task bar&lt;/a&gt;&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;みたいな感じにコンテキストメニューを展開できる。&lt;/p&gt;
&lt;p&gt;困るのが &lt;code&gt;apm&lt;/code&gt; コマンドなのだが，これにはパスを通さずに直接カレントまで降りて操作するしかないだろう。
v1.52.0 なら&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cd C:\Users\username\AppData\Local\atom\app-1.52.0\resources\app\apm\bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;まで降りる。
この場所で apm を使ってログインできる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ apm login
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Welcome to Atom!
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Before you can publish packages, you&amp;#39;ll need an API token.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Visit your account page on Atom.io https://atom.io/account,
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;copy the token and paste it below when prompted.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Press [Enter] to open your account page on Atom.io.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ここで &lt;code&gt;[Enter]&lt;/code&gt; キーを押すと Web ブラウザでアカウントページが開く（要 GitHub アカウント）。
開かない場合は Web ブラウザで直接 &lt;a href=&#34;https://atom.io/account&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;https://atom.io/account&lt;/code&gt;&lt;/a&gt; を開く。
アカウントページに表示されたアクセス・トークンを入力すればログイン完了。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Token&amp;gt; ****************
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Saving token to Keychain done
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;あとは&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ apm stars --install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で &lt;abbr class=&#34;emoji-chars&#34; title=&#34;:star:&#34;&gt;⭐&lt;/abbr&gt; を付けたパッケージをまとめてインストールできる。
ちなみに，どのパッケージに &lt;abbr class=&#34;emoji-chars&#34; title=&#34;:star:&#34;&gt;⭐&lt;/abbr&gt; を付けたかは&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ apm stars
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;で確認できる。
その他の細々した設定は &lt;a href=&#34;https://gist.github.com/spiegel-im-spiegel/e6e9c7340987f1607b2c&#34; target=&#34;_blank&#34; title=&#34;ATOM Editor の設定（カスタマイズ, Windows 環境用）&#34;&gt;Gist に貼り付けておいた&lt;/a&gt;のを流用した。
なんでも取っておくものである &lt;abbr class=&#34;emoji-chars&#34; title=&#34;:smile:&#34;&gt;😄&lt;/abbr&gt;&lt;/p&gt;
&lt;h2&gt;Windows Terminal のインストール&lt;/h2&gt;
&lt;p&gt;これでようやく「メモ帳」から脱することができたので，本格的に環境を作っていこう。&lt;/p&gt;
&lt;p&gt;かつて Windows 7 を使ってた頃はターミナル・エミュレータに ConEmu を使っていたが，本家 Microsoft からようやくまともなターミナル・エミュレータがリリースされた。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://docs.microsoft.com/ja-jp/windows/terminal/&#34; target=&#34;_blank&#34;&gt;Windows ターミナルの概要 | Microsoft Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Windows Terminal は Microsoft Store からインストールできる。
ひとまずこれをインストールして起動し，既定の PowerShell 上で作業する。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; のインストール&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; は Windows 用のパッケージ・マネージャである。
Windows 用のパッケージ・マネージャといえば &lt;a href=&#34;https://chocolatey.org/&#34; target=&#34;_blank&#34; title=&#34;Chocolatey Software | Chocolatey - The package manager for Windows&#34;&gt;Chocolatey&lt;/a&gt; が有名だが，今回は &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; で。
&lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; の特徴は以下の通り。&lt;/p&gt;
&lt;figure&gt;
&lt;blockquote cite=&#34;https://zenn.dev/zetamatta/books/5ac80a9ddb35fef9a146&#34;&gt;&lt;ul&gt;
&lt;li&gt;利用に管理者権限は不要！&lt;/li&gt;
&lt;li&gt;実行ファイルは ~\scoop\shims に集約され、環境変数 PATH の肥大化が抑制される&lt;/li&gt;
&lt;li&gt;インストーラのセットアップが簡単&lt;/li&gt;
&lt;li&gt;nyagos が公式レポジトリにある (Chocolatey にもあるけど）&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;figcaption&gt;&lt;div&gt;&lt;q&gt;&lt;a href=&#34;https://zenn.dev/zetamatta/books/5ac80a9ddb35fef9a146&#34;&gt;scoop / nyagos で始めるコマンドライン生活&lt;/a&gt;&lt;/q&gt;より&lt;/div&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;では早速。&lt;/p&gt;
&lt;p&gt;まずは PowerShell でスクリプトを起動できるよう権限を取得する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PS &amp;gt; Set-ExecutionPolicy RemoteSigned -scope CurrentUser
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;既に許可を取得している場合はこの操作は不要である。
そうしておいて &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; をインストールする。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PS &amp;gt; iwr -useb get.scoop.sh | iex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで OK。
簡単！&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; のインストール&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; のインストールは &lt;code&gt;scoop install&lt;/code&gt; コマンドで一発 OK。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PS &amp;gt; scoop install nyagos
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;よーし，うむうむ，よーし。&lt;/p&gt;
&lt;h3&gt;Windows Terminal に &lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; を登録する&lt;/h3&gt;
&lt;p&gt;Windows Terminal では PowerShell を含む複数の shell を登録できる。&lt;/p&gt;
&lt;p&gt;まずは &lt;code&gt;[Ctrl+,]&lt;/code&gt; で &lt;code&gt;config.json&lt;/code&gt; ファイル（のコピー）がメモ帳で表示される（コメントを端折っているので注意）。
これを編集して &lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; を登録するのだ。
具体的には以下の部分を追記する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;$schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;https://aka.ms/terminal-profiles-schema&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;defaultProfile&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;{61c54bbd-c2c6-5271-96e7-009a87ff44bf}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;copyOnSelect&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;copyFormatting&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;profiles&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;defaults&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;list&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;guid&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;{61c54bbd-c2c6-5271-96e7-009a87ff44bf}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Windows PowerShell&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;commandline&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;powershell.exe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;hidden&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;guid&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;{0caa0dad-35be-5f56-a8ff-afceeeaa6101}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;コマンド プロンプト&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;commandline&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;cmd.exe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;hidden&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;guid&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;{b453ae62-4e3d-5e58-b989-0a998ec441b8}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;hidden&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Azure Cloud Shell&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;source&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Windows.Terminal.Azure&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;guid&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;{19ddaf5e-e045-481a-bf88-37f7ebe66292}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;hidden&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Nihongo Yet Another GOing Shell&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;commandline&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;%USERPROFILE%\\scoop\\apps\\nyagos\\current\\nyagos.exe&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;cursorShape&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;vintage&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line hl&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;nt&#34;&gt;&amp;#34;startingDirectory&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;%USERPROFILE%&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;schemes&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;actions&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;#34;action&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;copy&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;singleLine&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;keys&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+c&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;paste&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;keys&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+v&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;find&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;keys&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ctrl+shift+f&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;action&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;splitPane&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;split&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;auto&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;splitMode&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;duplicate&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;keys&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+shift+d&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ちなみに &lt;code&gt;guid&lt;/code&gt; 項目はローカルマシン内で一意であればなんでもいいのだが（上の記述をそのままコピペしても無問題），気になるのであれば PowerShell の以下のコマンドで取得できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PS &amp;gt; New-Guid
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Guid
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;----
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;6c48ee13-e32b-4937-95a5-7e95a2e88613
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;更に &lt;code&gt;config.json&lt;/code&gt; ファイル（のコピー）の&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;defaultProfile&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;{61c54bbd-c2c6-5271-96e7-009a87ff44bf}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;の部分を &lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; の GUID に書き換えれば&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;defaultProfile&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;{19ddaf5e-e045-481a-bf88-37f7ebe66292}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Windows Terminal の既定の shell を &lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; にできる。&lt;/p&gt;
&lt;p&gt;編集した &lt;code&gt;config.json&lt;/code&gt; ファイル（のコピー）を保存すれば設定が反映される。
ふぃー，よーやくここまでたどり着いた。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/nyaosorg/nyagos&#34; target=&#34;_blank&#34; title=&#34;nyaosorg/nyagos: NYAGOS - The hybrid Commandline Shell betweeeeeeen UNIX &amp;amp; DOS&#34;&gt;NYAGOS&lt;/a&gt; を使った楽しいアレコレは以下の Zenn 本に書かれている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://zenn.dev/zetamatta/books/5ac80a9ddb35fef9a146&#34; target=&#34;_blank&#34;&gt;scoop / nyagos で始めるコマンドライン生活&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上述のセットアップについても，もう少し丁寧に書かれているので，是非どうぞ。&lt;/p&gt;
&lt;h3&gt;&lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; で GUID を取得する&lt;/h3&gt;
&lt;p&gt;そういや &lt;a href=&#34;https://go.dev/&#34; target=&#34;_blank&#34;&gt;Go&lt;/a&gt; の &lt;a href=&#34;https://pkg.go.dev/github.com/google/uuid&#34; target=&#34;_blank&#34;&gt;&lt;code&gt;github.com/google/uuid&lt;/code&gt;&lt;/a&gt; パッケージを使えば &lt;a href=&#34;https://www.rfc-editor.org/rfc/rfc4122.html&#34; target=&#34;_blank&#34; title=&#34;RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace&#34;&gt;UUID&lt;/a&gt; を取得可能だが， UUID は実質 GUID と同じなので，これを利用して&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-go&#34; data-lang=&#34;go&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;package&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;github.com/google/uuid&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;func&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;fmt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Println&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;uuid&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;New&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすれば簡単に UUID/GUID が取れる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ go run sample.go 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;f6bdc505-e417-4b7d-a247-a06504cf03a9
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2&gt;&lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; を使うなら git は必須&lt;/h2&gt;
&lt;p&gt;これでインストールは全て完了だが，今後のためにもう少し &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; で遊んでみよう。&lt;/p&gt;
&lt;p&gt;まず &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; のバージョンを見ようとしたら&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scoop -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Current Scoop version:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git : 用語 &amp;#39;git&amp;#39; は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;発生場所 行:1 文字:1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ git --no-pager log --oneline HEAD -n 1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;+ ~~~
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    + CategoryInfo          : ObjectNotFound: (git:String) [], CommandNotFoundException
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    + FullyQualifiedErrorId : CommandNotFoundException
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;って，どエラ怒られた（笑） どうやら &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; はパッケージ管理を git ベースで行っているらしく，ちゃんと使うなら git の導入が必須のようだ。
ほんじゃあ，まぁ&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scoop install git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Scoop uses Git to update itself. Run &amp;#39;scoop install git&amp;#39; and try again.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;おっ，アップデートした後にもっかいやれって言ってるな。
ならば，アップデートしよう。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scoop update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Updating Scoop...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Updating &amp;#39;main&amp;#39; bucket...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Checking repo... ok
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;The main bucket was added successfully.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Scoop was updated successfully!
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#39;itcode&amp;#34;&amp;#39; は、内部コマンドまたは外部コマンド、
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;操作可能なプログラムまたはバッチ ファイルとして認識されていません。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;exit status 1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;おりょ，また変なエラーが出たよ。
&lt;code&gt;itcode&amp;quot;&lt;/code&gt; 云々というのは PowerShell 絡みらしい。
なので，同じコマンドを PowerShell 上で走らせれば問題なく完了する。&lt;/p&gt;
&lt;p&gt;うむ，次回から気をつけよう。&lt;/p&gt;
&lt;p&gt;これでもっかい&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scoop update git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;とすれば，最新版が取れるわけだ。&lt;/p&gt;
&lt;h2&gt;ついでに &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; で &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; もインストールする&lt;/h2&gt;
&lt;p&gt;ついでに &lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; で &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; もインストールしてみよう。
あるかな？&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scoop search gnupg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#39;main&amp;#39; bucket:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    gnupg (2.2.23)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    gnupg1 (1.4.23)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scoop search gpg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#39;main&amp;#39; bucket:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    gnupg1 (1.4.23) --&amp;gt; includes &amp;#39;gpg.exe&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    gpg (2.2.23)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;どっちだよ（笑）&lt;/p&gt;
&lt;p&gt;実はこれ，中身は同じなのだが別々のパッケージとしてインストールされちゃうようだ。
ふむむー。&lt;/p&gt;
&lt;p&gt;まぁ，いいや。
今回は &lt;code&gt;gnupg&lt;/code&gt; で。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ scoop install gnupg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Installing &amp;#39;gnupg&amp;#39; (2.2.23) [64bit]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Linking ~\scoop\apps\gnupg\current =&amp;gt; ~\scoop\apps\gnupg\2.2.23
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Persisting home
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#39;gnupg&amp;#39; (2.2.23) was installed successfully!
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://scoop.sh/&#34; target=&#34;_blank&#34; title=&#34;Scoop&#34;&gt;Scoop&lt;/a&gt; で提供されるパッケージのうち，シングルバイナリのコマンドは &lt;code&gt;%USERPROFILE%\scoop\shims&lt;/code&gt; フォルダに集められるのだが， &lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; のように複数のバイナリで構成されているものは専用のフォルダを作り環境変数 &lt;code&gt;PATH&lt;/code&gt; にインストールしたフォルダを追加するようだ。
その際に&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Linking ~\scoop\apps\gnupg\current =&amp;gt; ~\scoop\apps\gnupg\2.2.23
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;のように &lt;code&gt;current&lt;/code&gt; フォルダをシンボリックリンクとして設置することで複数のバージョンに対応できるようにしているみたい。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; の動作確認をしておこう。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ gpg --version
gpg (GnuPG) 2.2.23
libgcrypt 1.8.6
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &amp;lt;https://gnu.org/licenses/gpl.html&amp;gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: C:/Users/username/scoop/apps/gnupg/current/home
サポートしているアルゴリズム:
公開鍵: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
暗号方式: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
    CAMELLIA128, CAMELLIA192, CAMELLIA256
ハッシュ: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
圧縮: 無圧縮, ZIP, ZLIB, BZIP2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上述の &lt;code&gt;Home&lt;/code&gt; だが，これもシンボリックリンクが切られていて，実体は &lt;code&gt;%USERPROFILE%\scoop\persist\gnupg\home&lt;/code&gt; にある。&lt;/p&gt;
&lt;div class=&#34;box&#34;&gt;&lt;p&gt;&lt;strong&gt;【2020-11-02 追記】&lt;/strong&gt;
&lt;a href=&#34;https://gnupg.org/&#34; target=&#34;_blank&#34; title=&#34;The GNU Privacy Guard&#34;&gt;GnuPG&lt;/a&gt; については以下の記事でもう少し掘り下げて紹介している。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://text.baldanders.info/openpgp/gnupg-home-in-windows/&#34; target=&#34;_blank&#34;&gt;GnuPG の HOME はどこにある？&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
&lt;h2&gt;今回はここまで&lt;/h2&gt;
&lt;p&gt;おっと。
昼休憩が終わったようだ。
次回があれば，また今度。&lt;/p&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/lukesampson/scoop&#34; target=&#34;_blank&#34;&gt;lukesampson/scoop: A command-line installer for Windows.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/iakio/items/78e7f098047ea0a47d70&#34; target=&#34;_blank&#34;&gt;Windows用のコマンドラインインストーラScoop - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/Dooteeen/items/12dc8fb14042888113d0&#34; target=&#34;_blank&#34;&gt;Scoopを使ったWindows環境構築のススメ - Super!! - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://hogehoge.tk/guid/&#34; target=&#34;_blank&#34;&gt;GUID生成ツール&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://zenn.dev/zetamatta/books/c84cbe23093eee1b5830&#34; target=&#34;_blank&#34;&gt;/bin/shに慣れた人に贈るバッチファイルの書き方&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.satotaichi.info/scoop/index.html&#34; target=&#34;_blank&#34;&gt;ScoopでWindowsにおける開発環境構築を最適化しよう | さにあらず&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/sozaiya/items/fd7ec3000939f0697939&#34; target=&#34;_blank&#34;&gt;scoopを使ったwindows環境構築の実例 - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://blog.isonishi.com/posts/scoop-git-sourcetree/&#34; target=&#34;_blank&#34;&gt;Scoop で Git と SourceTree をインストール - ありふれた備忘録&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;参考図書&lt;/h2&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51ZRZ62WKCL._SL160_.jpg&#34; width=&#34;108&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/4314009071?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号化 プライバシーを救った反乱者たち&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;スティーブン・レビー (著), 斉藤 隆央 (翻訳)&lt;/dd&gt;
    &lt;dd&gt;紀伊國屋書店 2002-02-16&lt;/dd&gt;
    &lt;dd&gt;単行本&lt;/dd&gt;
    &lt;dd&gt;4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;20世紀末，暗号技術の世界で何があったのか。知りたかったらこちらを読むべし！&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-03-09&#34;&gt;2015-03-09&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号化 プライバシーを救った反乱者たち --&gt;
&lt;div class=&#34;hreview&#34;&gt;
  &lt;div class=&#34;photo&#34;&gt;&lt;a href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;&lt;img src=&#34;https://m.media-amazon.com/images/I/51t6yHHVwEL._SL160_.jpg&#34; width=&#34;113&#34; alt=&#34;photo&#34;&gt;&lt;/a&gt;&lt;/div&gt;
  &lt;dl&gt;
    &lt;dt class=&#34;item&#34;&gt;&lt;a class=&#34;fn url&#34; href=&#34;https://www.amazon.co.jp/dp/B015643CPE?tag=baldandersinf-22&amp;amp;linkCode=ogi&amp;amp;th=1&amp;amp;psc=1&#34;&gt;暗号技術入門 第3版　秘密の国のアリス&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;結城 浩 (著)&lt;/dd&gt;
    &lt;dd&gt;SBクリエイティブ 2015-08-25 (Release 2015-09-17)&lt;/dd&gt;
    &lt;dd&gt;Kindle版&lt;/dd&gt;
    &lt;dd&gt;B015643CPE (ASIN)&lt;/dd&gt;
    &lt;dd&gt;評価&lt;abbr class=&#34;rating fa-sm&#34; title=&#34;5&#34;&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&amp;nbsp;&lt;i class=&#34;fas fa-star&#34;&gt;&lt;/i&gt;&lt;/abbr&gt;&lt;/dd&gt;
  &lt;/dl&gt;
  &lt;p class=&#34;description&#34;&gt;SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。&lt;/p&gt;
  &lt;p class=&#34;powered-by&#34;&gt;reviewed by &lt;a href=&#39;#maker&#39; class=&#39;reviewer&#39;&gt;Spiegel&lt;/a&gt; on &lt;abbr class=&#34;dtreviewed&#34; title=&#34;2015-09-20&#34;&gt;2015-09-20&lt;/abbr&gt; (powered by &lt;a href=&#34;https://affiliate.amazon.co.jp/assoc_credentials/home&#34;&gt;PA-APIv5&lt;/a&gt;)&lt;/p&gt;
&lt;/div&gt; &lt;!-- 暗号技術入門 第3版 --&gt;
</content>
	</entry><entry>
		<title>Ubuntu に Visual Studio Code を導入する</title>
		<link rel="alternate" type="text/html" href="https://text.baldanders.info/remark/2020/05/installing-vscode-in-ubuntu/" />
		<id>tag:text.Baldanders.info,2020-05-28:/remark/2020/05/installing-vscode-in-ubuntu/</id>
		<published>2020-05-28T03:31:57+00:00</published>
		<updated>2021-02-20T10:44:48+00:00</updated>
		<summary>継続的に使うなら今後も追記するつもり。</summary>
		<author>
			<name>Spiegel</name>
			<uri>https://baldanders.info/profile/</uri>
		</author>
		
	<link rel="cc:license" type="application/rdf+xml" href="https://creativecommons.org/licenses/by-sa/4.0/rdf" />


		<content type="html" xml:lang="ja-JP" xml:base="https://text.baldanders.info/">&lt;p&gt;&lt;a href=&#34;https://text.baldanders.info/remark/2020/05/x-terminal-with-atom/&#34; target=&#34;_blank&#34; title=&#34;とりあえず ATOM エディタ内ターミナルを x-terminal に乗り換えた&#34;&gt;ちうわけで&lt;/a&gt; &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;Visual Studio Code&lt;/a&gt;を導入して試してみることにした。&lt;/p&gt;
&lt;p&gt;継続的に使うなら今後も追記するつもり。&lt;/p&gt;
&lt;h2&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; のインストール&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://www.ubuntu.com/&#34; target=&#34;_blank&#34; title=&#34;The leading operating system for PCs, IoT devices, servers and the cloud | Ubuntu&#34;&gt;Ubuntu&lt;/a&gt; に &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; をインストールするのであれば &lt;a href=&#34;https://github.com/snapcore/snapd&#34; target=&#34;_blank&#34; title=&#34;snapcore/snapd: The snapd and snap tools enable systems to work with .snap files.&#34;&gt;Snap&lt;/a&gt; を使うのが一番簡単なのだが，うちの環境では何故か &lt;a href=&#34;https://github.com/snapcore/snapd&#34; target=&#34;_blank&#34; title=&#34;snapcore/snapd: The snapd and snap tools enable systems to work with .snap files.&#34;&gt;Snap&lt;/a&gt; 版で日本語入力ができないという致命的な問題があるため，今回は公式サイトから deb ファイルをダウンロードして直接 &lt;code&gt;apt install&lt;/code&gt; した。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt install ./code_1.45.1-1589445302_amd64.deb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;インストールに成功すれば以下のコマンドでバージョンが取得できるはず。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ code -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1.45.1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5763d909d5f12fe19f215cbfdd29a91c0fa9208a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;x64
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;よしよし。
ちゃんと最新バージョンだな。&lt;/p&gt;
&lt;p&gt;実際に &lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; を起動してアプリケーション情報（メニューの &lt;code&gt;Help&lt;/code&gt; → &lt;code&gt;About&lt;/code&gt; を選択）も確認してみる。&lt;/p&gt;
&lt;figure style=&#39;margin:0 auto;text-align:center;&#39;&gt;&lt;a href=&#34;./about-vscode.png&#34;&gt;&lt;img src=&#34;./about-vscode.png&#34; srcset=&#34;./about-vscode.png 524w&#34; sizes=&#34;(min-width:600px) 500px, 80vw&#34; alt=&#34;&#34; loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;うむうむ。&lt;/p&gt;
&lt;div class=&#34;box&#34;&gt;&lt;h3&gt;APT によるインストール【2021-02-20 追記】&lt;/h3&gt;
&lt;p&gt;実は Microsoft から [VS Code] 用の APT リポジトリが提供されている。
これを読み込んでインストールすることもできる。&lt;/p&gt;
&lt;p&gt;まず電子署名鍵のインポートから&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;次にリポジトリの登録を行う。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo add-apt-repository &amp;#34;deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;これで準備完了。
あとは&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ sudo apt install code
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;でインストールできる。&lt;/p&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; のカスタマイズ&lt;/h2&gt;
&lt;p&gt;カスタマイズはメニューの &lt;code&gt;File&lt;/code&gt; → &lt;code&gt;Preferences&lt;/code&gt; から選択できる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;File&lt;/code&gt; → &lt;code&gt;Preferences&lt;/code&gt; → &lt;code&gt;Settings&lt;/code&gt; で設定画面が開く（または &lt;code&gt;Ctrl+,&lt;/code&gt; キー押下）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;File&lt;/code&gt; → &lt;code&gt;Preferences&lt;/code&gt; → &lt;code&gt;Keyboard Shortcuts&lt;/code&gt; でキー割当の確認・変更ができる
&lt;ul&gt;
&lt;li&gt;既定のキー割当は &lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34;&gt;ATOM&lt;/a&gt; とほとんど同じなので悩むところは少なかった&lt;/li&gt;
&lt;li&gt;&lt;code&gt;File&lt;/code&gt; → &lt;code&gt;Preferences&lt;/code&gt; → &lt;code&gt;Keymaps&lt;/code&gt; で他エディタの割当を導入することもできる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;f1&lt;/code&gt; キー押下でもコマンド・パレット（Show All Commands）が開く&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;設定の行方&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; title=&#34;Visual Studio Code - Code Editing. Redefined&#34;&gt;VS Code&lt;/a&gt; は &lt;code&gt;$HOME&lt;/code&gt; ディレクトリに以下の設定ディレクトリを作成する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.vscode/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;~/.config/Code/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このうち，ユーザ設定は &lt;code&gt;~/.config/Code/User/&lt;/code&gt; ディレクトリ直下の以下のファイルに書き込まれる。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;settings.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;keybindings.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最低でもこれらのファイルを保持っておけば再現しやすくなるだろう。&lt;/p&gt;
&lt;h3&gt;とりあえず導入してみた拡張機能&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://atom.io/&#34; target=&#34;_blank&#34;&gt;ATOM&lt;/a&gt; エディタみたいに印を付けておいて纏めてインストールできるといいんだけどねぇ。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig&#34; target=&#34;_blank&#34;&gt;EditorConfig for VS Code - Visual Studio Marketplace&lt;/a&gt; : &lt;a href=&#34;https://editorconfig.org/&#34; target=&#34;_blank&#34;&gt;EditorConfig&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=mosapride.zenkaku&#34; target=&#34;_blank&#34;&gt;zenkaku - Visual Studio Marketplace&lt;/a&gt; : 全角空白文字を色付きで表示できる&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=masakit.zenkaku-hankaku&#34; target=&#34;_blank&#34;&gt;Zenkaku-Hankaku - Visual Studio Marketplace&lt;/a&gt; : 全角⇔半角文字変換&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons&#34; target=&#34;_blank&#34;&gt;vscode-icons - Visual Studio Marketplace&lt;/a&gt; : file icon theme&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=jsynowiec.vscode-insertdatestring&#34; target=&#34;_blank&#34;&gt;Insert Date String - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=ego-digital.vscode-powertools&#34; target=&#34;_blank&#34;&gt;Power Tools - Visual Studio Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;ブックマーク&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://code.visualstudio.com/docs/setup/linux&#34; target=&#34;_blank&#34;&gt;Running Visual Studio Code on Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/yoshiyasu1111/items/e21a77ed68b52cb5f7c8&#34; target=&#34;_blank&#34;&gt;UbuntuにVSCodeをインストールする3つの方法 - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://qiita.com/satokaz/items/cb45d82f6f8f1e24c0d6&#34; target=&#34;_blank&#34;&gt;VS Code でドキュメントの空白文字を見やすくしてみる - Qiita&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.atmarkit.co.jp/ait/articles/1708/23/news026.html&#34; target=&#34;_blank&#34;&gt;Visual Studio Codeの設定「虎の巻」：IDE編 (1/3)：特集：Visual Studio Codeを使いこなそう！ - ＠IT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://linuxize.com/post/how-to-install-visual-studio-code-on-ubuntu-20-04/&#34; target=&#34;_blank&#34;&gt;How to Install Visual Studio Code on Ubuntu 20.04 | Linuxize&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
	</entry>
</feed>
