<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://skillset.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Y</id>
	<title>SkillSet - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://skillset.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Y"/>
	<link rel="alternate" type="text/html" href="https://skillset.wiki/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Y"/>
	<updated>2026-04-28T05:44:52Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.42.5</generator>
	<entry>
		<id>https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11271</id>
		<title>Apache HTTP Server</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11271"/>
		<updated>2026-04-27T00:06:53Z</updated>

		<summary type="html">&lt;p&gt;Y: /* セキュリティ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:apache.png|thumb|Apache|300px]]&lt;br /&gt;
[[ファイル:port.png|thumb|港の配送センター|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache HTTP Server&#039;&#039;&#039; とは手元のマシンを&amp;lt;strong&amp;gt;港 (配送センター)&amp;lt;/strong&amp;gt; にするためのソフトウェア。C言語製。Apache を城に導入してインターネットに広く公開するとその城は「港 / 公開サーバ」になる。WWW の世界は膨大な数のWebマシンたちの膨大な量の働きによって支えられている。&lt;br /&gt;
&lt;br /&gt;
ちなみに、「人気な港」になると日本中から注文リクエストが殺到することになるので、それを効率よくさばくためのチューニングが必要になったりする。&amp;lt;u&amp;gt;高品質な Service を serve する Server/Servant になる&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
* [https://httpd.apache.org/docs/2.4/en/ Apacheドキュメント]&lt;br /&gt;
&lt;br /&gt;
==注文ログ==&lt;br /&gt;
 # cd  /var/log/apache2&lt;br /&gt;
 # tail -f access_log&lt;br /&gt;
&lt;br /&gt;
数分見ているだけで本当に色々な注文がくる。そして正当な注文は少ない笑。&lt;br /&gt;
&lt;br /&gt;
==セキュリティ==&lt;br /&gt;
* security2-module を入れる&lt;br /&gt;
* ServerTokens を Prod にして表示を「Apache」だけにする&lt;br /&gt;
* Options で -Indexes指定してフォルダ一覧を非表示&lt;br /&gt;
* 他マシンからのリソースの使い回し要求を拒否する&lt;br /&gt;
&lt;br /&gt;
===Next.js関係===&lt;br /&gt;
* Next.js を Apache でリバプロしてる場合、evasive 入れるとブラウザからの複数リクエストが Dos扱いになりデータが一部表示されなくなるのでブロックされるので入れない&lt;br /&gt;
&lt;br /&gt;
===WordPress関係===&lt;br /&gt;
xmlrpc攻撃の遮断。めちゃくちゃ接続リクエストくるので /etc/apche2/apache2.conf に追加。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files &amp;quot;xmlrpc.php&amp;quot;&amp;gt;&lt;br /&gt;
   Require all denied&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==キャッシュ==&lt;br /&gt;
キャッシュを使えばサーバが全てのレスポンスに対応する必要がなくなる。つまり、サーバの負担が軽減する。キャッシュは Webサービスの主要な構成要素。&lt;br /&gt;
&lt;br /&gt;
# 共有キャッシュ - 専用サーバなど&lt;br /&gt;
# プライベートキャッシュ - ブラウザ内など&lt;br /&gt;
&lt;br /&gt;
キャッシュには上記２種類があり、サーバに比べていずれもクライアントに近い場所にあるので毎回サーバからダウンロードするよりもレスポンス速度が向上する。&lt;br /&gt;
&lt;br /&gt;
コンテンツの更新頻度とのバランスを考えながら上手にキャッシュを使えば、 高いパフォーマンスを実装できる。&lt;br /&gt;
&lt;br /&gt;
==モジュール==&lt;br /&gt;
===静的モジュール===&lt;br /&gt;
リスト追加&lt;br /&gt;
&lt;br /&gt;
===動的モジュール（DSO）===&lt;br /&gt;
リスト追加&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11270</id>
		<title>Apache HTTP Server</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11270"/>
		<updated>2026-04-27T00:06:32Z</updated>

		<summary type="html">&lt;p&gt;Y: /* WordPress の xmlrpc攻撃の遮断 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:apache.png|thumb|Apache|300px]]&lt;br /&gt;
[[ファイル:port.png|thumb|港の配送センター|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache HTTP Server&#039;&#039;&#039; とは手元のマシンを&amp;lt;strong&amp;gt;港 (配送センター)&amp;lt;/strong&amp;gt; にするためのソフトウェア。C言語製。Apache を城に導入してインターネットに広く公開するとその城は「港 / 公開サーバ」になる。WWW の世界は膨大な数のWebマシンたちの膨大な量の働きによって支えられている。&lt;br /&gt;
&lt;br /&gt;
ちなみに、「人気な港」になると日本中から注文リクエストが殺到することになるので、それを効率よくさばくためのチューニングが必要になったりする。&amp;lt;u&amp;gt;高品質な Service を serve する Server/Servant になる&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
* [https://httpd.apache.org/docs/2.4/en/ Apacheドキュメント]&lt;br /&gt;
&lt;br /&gt;
==注文ログ==&lt;br /&gt;
 # cd  /var/log/apache2&lt;br /&gt;
 # tail -f access_log&lt;br /&gt;
&lt;br /&gt;
数分見ているだけで本当に色々な注文がくる。そして正当な注文は少ない笑。&lt;br /&gt;
&lt;br /&gt;
==セキュリティ==&lt;br /&gt;
* security2-module を入れる&lt;br /&gt;
* ServerTokens を Prod にして表示を「Apache」だけにする&lt;br /&gt;
* Options で -Indexes指定してフォルダ一覧を非表示&lt;br /&gt;
* 他マシンからのリソースの使い回し要求を拒否する&lt;br /&gt;
* Next.js を Apache でリバプロしてる場合、evasive 入れるとブラウザからの複数リクエストが Dos扱いになりデータが一部表示されなくなるのでブロックされるので入れない&lt;br /&gt;
&lt;br /&gt;
===WordPress関係===&lt;br /&gt;
xmlrpc攻撃の遮断。めちゃくちゃ接続リクエストくるので /etc/apche2/apache2.conf に追加。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files &amp;quot;xmlrpc.php&amp;quot;&amp;gt;&lt;br /&gt;
   Require all denied&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==キャッシュ==&lt;br /&gt;
キャッシュを使えばサーバが全てのレスポンスに対応する必要がなくなる。つまり、サーバの負担が軽減する。キャッシュは Webサービスの主要な構成要素。&lt;br /&gt;
&lt;br /&gt;
# 共有キャッシュ - 専用サーバなど&lt;br /&gt;
# プライベートキャッシュ - ブラウザ内など&lt;br /&gt;
&lt;br /&gt;
キャッシュには上記２種類があり、サーバに比べていずれもクライアントに近い場所にあるので毎回サーバからダウンロードするよりもレスポンス速度が向上する。&lt;br /&gt;
&lt;br /&gt;
コンテンツの更新頻度とのバランスを考えながら上手にキャッシュを使えば、 高いパフォーマンスを実装できる。&lt;br /&gt;
&lt;br /&gt;
==モジュール==&lt;br /&gt;
===静的モジュール===&lt;br /&gt;
リスト追加&lt;br /&gt;
&lt;br /&gt;
===動的モジュール（DSO）===&lt;br /&gt;
リスト追加&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11269</id>
		<title>Apache HTTP Server</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11269"/>
		<updated>2026-04-27T00:05:55Z</updated>

		<summary type="html">&lt;p&gt;Y: /* セキュリティ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:apache.png|thumb|Apache|300px]]&lt;br /&gt;
[[ファイル:port.png|thumb|港の配送センター|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache HTTP Server&#039;&#039;&#039; とは手元のマシンを&amp;lt;strong&amp;gt;港 (配送センター)&amp;lt;/strong&amp;gt; にするためのソフトウェア。C言語製。Apache を城に導入してインターネットに広く公開するとその城は「港 / 公開サーバ」になる。WWW の世界は膨大な数のWebマシンたちの膨大な量の働きによって支えられている。&lt;br /&gt;
&lt;br /&gt;
ちなみに、「人気な港」になると日本中から注文リクエストが殺到することになるので、それを効率よくさばくためのチューニングが必要になったりする。&amp;lt;u&amp;gt;高品質な Service を serve する Server/Servant になる&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
* [https://httpd.apache.org/docs/2.4/en/ Apacheドキュメント]&lt;br /&gt;
&lt;br /&gt;
==注文ログ==&lt;br /&gt;
 # cd  /var/log/apache2&lt;br /&gt;
 # tail -f access_log&lt;br /&gt;
&lt;br /&gt;
数分見ているだけで本当に色々な注文がくる。そして正当な注文は少ない笑。&lt;br /&gt;
&lt;br /&gt;
==セキュリティ==&lt;br /&gt;
* security2-module を入れる&lt;br /&gt;
* ServerTokens を Prod にして表示を「Apache」だけにする&lt;br /&gt;
* Options で -Indexes指定してフォルダ一覧を非表示&lt;br /&gt;
* 他マシンからのリソースの使い回し要求を拒否する&lt;br /&gt;
* Next.js を Apache でリバプロしてる場合、evasive 入れるとブラウザからの複数リクエストが Dos扱いになりデータが一部表示されなくなるのでブロックされるので入れない&lt;br /&gt;
&lt;br /&gt;
===WordPress の xmlrpc攻撃の遮断===&lt;br /&gt;
めちゃくちゃ接続リクエストくるので。/etc/apche2/apache2.conf に追加。&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;Files &amp;quot;xmlrpc.php&amp;quot;&amp;gt;&lt;br /&gt;
   Require all denied&lt;br /&gt;
 &amp;lt;/Files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==キャッシュ==&lt;br /&gt;
キャッシュを使えばサーバが全てのレスポンスに対応する必要がなくなる。つまり、サーバの負担が軽減する。キャッシュは Webサービスの主要な構成要素。&lt;br /&gt;
&lt;br /&gt;
# 共有キャッシュ - 専用サーバなど&lt;br /&gt;
# プライベートキャッシュ - ブラウザ内など&lt;br /&gt;
&lt;br /&gt;
キャッシュには上記２種類があり、サーバに比べていずれもクライアントに近い場所にあるので毎回サーバからダウンロードするよりもレスポンス速度が向上する。&lt;br /&gt;
&lt;br /&gt;
コンテンツの更新頻度とのバランスを考えながら上手にキャッシュを使えば、 高いパフォーマンスを実装できる。&lt;br /&gt;
&lt;br /&gt;
==モジュール==&lt;br /&gt;
===静的モジュール===&lt;br /&gt;
リスト追加&lt;br /&gt;
&lt;br /&gt;
===動的モジュール（DSO）===&lt;br /&gt;
リスト追加&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=A%E3%83%A9%E3%83%B3%E3%82%AF%E3%83%BB%E3%83%9C%E3%83%87%E3%82%A3&amp;diff=11268</id>
		<title>Aランク・ボディ</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=A%E3%83%A9%E3%83%B3%E3%82%AF%E3%83%BB%E3%83%9C%E3%83%87%E3%82%A3&amp;diff=11268"/>
		<updated>2026-04-26T00:32:45Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:cha hyun seung.jpg|thumb|フィジカル100|400px]]&lt;br /&gt;
&lt;br /&gt;
自分の身体を「Aランク」にリコンポ（鍛え上げ）、維持するゲーム。&amp;lt;br&amp;gt;&lt;br /&gt;
せっかくだし&amp;lt;u&amp;gt;&amp;lt;strong&amp;gt;人生で１度くらいは&amp;lt;/strong&amp;gt;「Aランク」ボディーを手に入れて、維持&amp;lt;/u&amp;gt;してみる。&lt;br /&gt;
&lt;br /&gt;
文武両道すぎる。2025/08/17&lt;br /&gt;
&lt;br /&gt;
==基本的な考え方==&lt;br /&gt;
* 経過をシンプルで分かりやすくするために「&amp;lt;u&amp;gt;定数で固定（変数を少なく）&amp;lt;/u&amp;gt;」する。生活スタイルや食事内容など&lt;br /&gt;
* Aランク・ボディーの実現と維持に最適化された１日スタイルを設計し、ただそれを繰り返す&lt;br /&gt;
* ３ヶ月スパンくらいで結果が目に見えてくる&lt;br /&gt;
&lt;br /&gt;
==リコンポの基本戦略==&lt;br /&gt;
脂肪を落としつつ、筋肉をつける｢Body recomposition｣の基本戦略について。&amp;lt;br&amp;gt;&lt;br /&gt;
要は、以下が基本ルート💪&lt;br /&gt;
&lt;br /&gt;
# 何よりも、筋トレ/ラン の順番で運動量アップと脂肪燃焼&lt;br /&gt;
# 高タンパク食事（炭水化物、脂質も適量）で筋肉量アップ&lt;br /&gt;
# 食事カロリーはちょい下げ&lt;br /&gt;
# Uber運動で基礎運動と足筋も&lt;br /&gt;
&lt;br /&gt;
＊リコンポの基本的な考え方は [https://www.youtube.com/watch?v=5m5cBdijz3g こちら] や [https://www.esquire.com/jp/menshealth/fitness/a63096475/how-to-lose-your-fat-and-gain-muscle/ こちら]&lt;br /&gt;
&lt;br /&gt;
===1. 消費kcal ＞ 摂取kcal===&lt;br /&gt;
* 活動量より食事量を少し少なくする。つまり、活動量より 200〜300kcal くらい食事量を少なく。&lt;br /&gt;
* ただ、&amp;lt;u&amp;gt;摂取タンパク質を減らすと筋肉量が減る&amp;lt;/u&amp;gt;。タンパク質は毎日コンスタントに摂取&lt;br /&gt;
&lt;br /&gt;
===2. １日に摂取する栄養===&lt;br /&gt;
* タンパク質：100g/日（毎日摂取。実際に筋肥大が起こるのは休日なので）。鶏むね肉 or ササミ、どっちでもいい&lt;br /&gt;
* 脂質：全体の20~25%くらい（少なめ。ホルモン維持、関節のために必要）&lt;br /&gt;
* 炭水化物：残りkcalはここ（筋トレ日は普通に、それ以外は少なめ）&lt;br /&gt;
* &amp;lt;u&amp;gt;トレ後30分以内に炭水化物（グリコーゲン）補充で筋肉分解を防ぐ&amp;lt;/u&amp;gt;&lt;br /&gt;
* １回の食事で摂取できるタンパク質は40g程度なので２回に分ける&lt;br /&gt;
* 鶏肉は比較的消化が速い (腸内滞在時間が短い) ので、牛肉よりも鶏肉を食べる&lt;br /&gt;
&lt;br /&gt;
タンパク質は筋肉だけじゃなくて、酵素・ホルモン・免疫細胞の材料にもなるから、&amp;lt;u&amp;gt;毎日一定量が大事&amp;lt;/u&amp;gt;。ちなみに「おにぎり1個＝筋肉のセーフティネット」みたいなもん。&lt;br /&gt;
&lt;br /&gt;
===3. トレーニング===&lt;br /&gt;
# Uber運動：基礎代謝UP、ベアフットで足筋肉アップ&lt;br /&gt;
# 筋トレ：強度強めで週2,3回。先に筋トレしてから有酸素ラン。まずはグリコーゲンを消費するため&lt;br /&gt;
# 有酸素ラン：目的はリコンポなので心肺を追い込む必要はない。グリコーゲンが少ないと脂肪が燃焼されやすい&lt;br /&gt;
&lt;br /&gt;
===4. 睡眠と回復===&lt;br /&gt;
* しっかり運動した日は睡眠の質が上がる。目覚めもスッキリ&lt;br /&gt;
* 睡眠不足は筋肉合成↓・脂肪蓄積↑&lt;br /&gt;
&lt;br /&gt;
===5. フィードバック===&lt;br /&gt;
* 体重計ではなく鏡とウエスト周りのサイズ感で判断&lt;br /&gt;
&lt;br /&gt;
==具体的なプラン==&lt;br /&gt;
&amp;lt;u&amp;gt;毎日 タンパク質100g は死守&amp;lt;/u&amp;gt;、炭水化物を日によって調整、ってのが王道。&lt;br /&gt;
&lt;br /&gt;
===Uber運動だけの日===&lt;br /&gt;
&amp;lt;u&amp;gt;炭水化物は抑えめ&amp;lt;/u&amp;gt;。脂肪燃焼モードに。&lt;br /&gt;
&lt;br /&gt;
* 昼食：ロイホ・鉄板チキングリル単品 (タンパク質58g)&lt;br /&gt;
* 夕食：鶏むね肉200g (タンパク質44g)、豆腐サラダ、キムチ納豆１パック&lt;br /&gt;
* 軽食：ナッツ、ドライマンゴー、など&lt;br /&gt;
* 2,000kcal/日くらい&lt;br /&gt;
&lt;br /&gt;
===トレーニングもする日===&lt;br /&gt;
運動前後に「&amp;lt;u&amp;gt;炭水化物もふつうに摂る&amp;lt;/u&amp;gt;」と筋肉の低下を防げる。&lt;br /&gt;
&lt;br /&gt;
* 昼食：ロイホ・鉄板チキングリル単品 (タンパク質58g)&lt;br /&gt;
* 筋トレ：筋肉が適度に壊れるまで（下記参照）&lt;br /&gt;
* 低負荷の有酸素ラン：20分&lt;br /&gt;
* 夕食：鶏むね肉200g (タンパク質44g)、低GI炭水化物、豆腐サラダ、キムチ納豆１パック&lt;br /&gt;
* 軽食：豆乳バナナ小松菜ジュース (夏は氷入り)、ナッツ、ドライマンゴー、など&lt;br /&gt;
* 2,500kcal/日くらい&lt;br /&gt;
&lt;br /&gt;
===サボり日===&lt;br /&gt;
* いつもの感じで１.５食&lt;br /&gt;
&lt;br /&gt;
==筋トレメニュー==&lt;br /&gt;
スケートエリアで。&lt;br /&gt;
&lt;br /&gt;
* 腕立てインクライン：30回&lt;br /&gt;
* スター・クランチ：30回&lt;br /&gt;
* 片足スクワット：各10回&lt;br /&gt;
* 懸垂：20回&lt;br /&gt;
* パンチ・キック：20回&lt;br /&gt;
* プランク：2分&lt;br /&gt;
&lt;br /&gt;
これを２周（サーキット形式）。&amp;lt;br&amp;gt;&lt;br /&gt;
キツくなったら間に有酸素運動（[https://melos.media/training/47334/ アクティブレスト]）挟む。&lt;br /&gt;
&lt;br /&gt;
* 最後に：レッグレイズ：好きな回数&lt;br /&gt;
&lt;br /&gt;
===トレーニング頻度===&lt;br /&gt;
* 毎日：Uber運動（ベースの有酸素＆足筋＆活動量アップ）&lt;br /&gt;
* 週３以上：Uber運動＋筋トレ/ランの日 → 筋肉痛が出るくらいしっかり追い込む&lt;br /&gt;
* 筋肉痛ひどい日：休養、Uber運動だけ。落ち着いたら再開&lt;br /&gt;
&lt;br /&gt;
===筋肉痛7,8割回復で再開OK===&lt;br /&gt;
筋肉痛が完全に抜けるのを待つより、&amp;lt;u&amp;gt;痛みが軽くなったら再刺激の方が筋肥大にも効率的&amp;lt;/u&amp;gt;だし長く続けやすい。&amp;lt;br&amp;gt;&lt;br /&gt;
筋肉痛は「筋線維に微細なダメージが入って炎症してる」状態なので、普通のケガとは違う。&lt;br /&gt;
&lt;br /&gt;
* 筋肉痛MAX（動けないレベル10） → 組織ダメージ大きい → 休むべき&lt;br /&gt;
* 筋肉痛2,3割（ちょっと張ってる・重い感じ） → 血流を良くすると回復が早まる&lt;br /&gt;
* 軽いトレーニングや有酸素運動はむしろ「リカバリー効果」がある&lt;br /&gt;
&lt;br /&gt;
らしい、、まぁやってみて様子見。&lt;br /&gt;
&lt;br /&gt;
==ポイント==&lt;br /&gt;
* 筋トレ/ランが 2〜3回/週 できれば十分効果出る。筋トレを高頻度で、を意識&lt;br /&gt;
* 主食鶏肉300g＋アルファで タンパク質100g/日 を維持して筋肉を強く育てる&lt;br /&gt;
* 筋トレメニューは強度をアップしていく工夫（フォーム・回数・負荷追加）を少しずつ&lt;br /&gt;
* 今のプラン（高タンパク・自然食・運動ペース）を3か月守れば、見た目は確実に変わる&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;まずはこの生活（と、その結果のボディ）がベースラインとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
まずは「Aランク・ボディ」ベースを作って、維持してみる&amp;lt;/u&amp;gt;。&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=A%E3%83%A9%E3%83%B3%E3%82%AF%E3%83%BB%E3%83%9C%E3%83%87%E3%82%A3&amp;diff=11267</id>
		<title>Aランク・ボディ</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=A%E3%83%A9%E3%83%B3%E3%82%AF%E3%83%BB%E3%83%9C%E3%83%87%E3%82%A3&amp;diff=11267"/>
		<updated>2026-04-26T00:32:39Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:cha hyun seung.jpg|thumb|フィジカル100|400px]]&lt;br /&gt;
&lt;br /&gt;
自分の身体を「Aランク」にリコンポ（鍛え上げ）、維持するゲーム。&amp;lt;br&amp;gt;&lt;br /&gt;
せっかくだし&amp;lt;u&amp;gt;&amp;lt;strong&amp;gt;人生で１度くらいは&amp;lt;/strong&amp;gt;「Aランク」ボディーを手に入れて、維持&amp;lt;/u&amp;gt;してみる。&lt;br /&gt;
&lt;br /&gt;
文武両道すぎる。2025/08/27&lt;br /&gt;
&lt;br /&gt;
==基本的な考え方==&lt;br /&gt;
* 経過をシンプルで分かりやすくするために「&amp;lt;u&amp;gt;定数で固定（変数を少なく）&amp;lt;/u&amp;gt;」する。生活スタイルや食事内容など&lt;br /&gt;
* Aランク・ボディーの実現と維持に最適化された１日スタイルを設計し、ただそれを繰り返す&lt;br /&gt;
* ３ヶ月スパンくらいで結果が目に見えてくる&lt;br /&gt;
&lt;br /&gt;
==リコンポの基本戦略==&lt;br /&gt;
脂肪を落としつつ、筋肉をつける｢Body recomposition｣の基本戦略について。&amp;lt;br&amp;gt;&lt;br /&gt;
要は、以下が基本ルート💪&lt;br /&gt;
&lt;br /&gt;
# 何よりも、筋トレ/ラン の順番で運動量アップと脂肪燃焼&lt;br /&gt;
# 高タンパク食事（炭水化物、脂質も適量）で筋肉量アップ&lt;br /&gt;
# 食事カロリーはちょい下げ&lt;br /&gt;
# Uber運動で基礎運動と足筋も&lt;br /&gt;
&lt;br /&gt;
＊リコンポの基本的な考え方は [https://www.youtube.com/watch?v=5m5cBdijz3g こちら] や [https://www.esquire.com/jp/menshealth/fitness/a63096475/how-to-lose-your-fat-and-gain-muscle/ こちら]&lt;br /&gt;
&lt;br /&gt;
===1. 消費kcal ＞ 摂取kcal===&lt;br /&gt;
* 活動量より食事量を少し少なくする。つまり、活動量より 200〜300kcal くらい食事量を少なく。&lt;br /&gt;
* ただ、&amp;lt;u&amp;gt;摂取タンパク質を減らすと筋肉量が減る&amp;lt;/u&amp;gt;。タンパク質は毎日コンスタントに摂取&lt;br /&gt;
&lt;br /&gt;
===2. １日に摂取する栄養===&lt;br /&gt;
* タンパク質：100g/日（毎日摂取。実際に筋肥大が起こるのは休日なので）。鶏むね肉 or ササミ、どっちでもいい&lt;br /&gt;
* 脂質：全体の20~25%くらい（少なめ。ホルモン維持、関節のために必要）&lt;br /&gt;
* 炭水化物：残りkcalはここ（筋トレ日は普通に、それ以外は少なめ）&lt;br /&gt;
* &amp;lt;u&amp;gt;トレ後30分以内に炭水化物（グリコーゲン）補充で筋肉分解を防ぐ&amp;lt;/u&amp;gt;&lt;br /&gt;
* １回の食事で摂取できるタンパク質は40g程度なので２回に分ける&lt;br /&gt;
* 鶏肉は比較的消化が速い (腸内滞在時間が短い) ので、牛肉よりも鶏肉を食べる&lt;br /&gt;
&lt;br /&gt;
タンパク質は筋肉だけじゃなくて、酵素・ホルモン・免疫細胞の材料にもなるから、&amp;lt;u&amp;gt;毎日一定量が大事&amp;lt;/u&amp;gt;。ちなみに「おにぎり1個＝筋肉のセーフティネット」みたいなもん。&lt;br /&gt;
&lt;br /&gt;
===3. トレーニング===&lt;br /&gt;
# Uber運動：基礎代謝UP、ベアフットで足筋肉アップ&lt;br /&gt;
# 筋トレ：強度強めで週2,3回。先に筋トレしてから有酸素ラン。まずはグリコーゲンを消費するため&lt;br /&gt;
# 有酸素ラン：目的はリコンポなので心肺を追い込む必要はない。グリコーゲンが少ないと脂肪が燃焼されやすい&lt;br /&gt;
&lt;br /&gt;
===4. 睡眠と回復===&lt;br /&gt;
* しっかり運動した日は睡眠の質が上がる。目覚めもスッキリ&lt;br /&gt;
* 睡眠不足は筋肉合成↓・脂肪蓄積↑&lt;br /&gt;
&lt;br /&gt;
===5. フィードバック===&lt;br /&gt;
* 体重計ではなく鏡とウエスト周りのサイズ感で判断&lt;br /&gt;
&lt;br /&gt;
==具体的なプラン==&lt;br /&gt;
&amp;lt;u&amp;gt;毎日 タンパク質100g は死守&amp;lt;/u&amp;gt;、炭水化物を日によって調整、ってのが王道。&lt;br /&gt;
&lt;br /&gt;
===Uber運動だけの日===&lt;br /&gt;
&amp;lt;u&amp;gt;炭水化物は抑えめ&amp;lt;/u&amp;gt;。脂肪燃焼モードに。&lt;br /&gt;
&lt;br /&gt;
* 昼食：ロイホ・鉄板チキングリル単品 (タンパク質58g)&lt;br /&gt;
* 夕食：鶏むね肉200g (タンパク質44g)、豆腐サラダ、キムチ納豆１パック&lt;br /&gt;
* 軽食：ナッツ、ドライマンゴー、など&lt;br /&gt;
* 2,000kcal/日くらい&lt;br /&gt;
&lt;br /&gt;
===トレーニングもする日===&lt;br /&gt;
運動前後に「&amp;lt;u&amp;gt;炭水化物もふつうに摂る&amp;lt;/u&amp;gt;」と筋肉の低下を防げる。&lt;br /&gt;
&lt;br /&gt;
* 昼食：ロイホ・鉄板チキングリル単品 (タンパク質58g)&lt;br /&gt;
* 筋トレ：筋肉が適度に壊れるまで（下記参照）&lt;br /&gt;
* 低負荷の有酸素ラン：20分&lt;br /&gt;
* 夕食：鶏むね肉200g (タンパク質44g)、低GI炭水化物、豆腐サラダ、キムチ納豆１パック&lt;br /&gt;
* 軽食：豆乳バナナ小松菜ジュース (夏は氷入り)、ナッツ、ドライマンゴー、など&lt;br /&gt;
* 2,500kcal/日くらい&lt;br /&gt;
&lt;br /&gt;
===サボり日===&lt;br /&gt;
* いつもの感じで１.５食&lt;br /&gt;
&lt;br /&gt;
==筋トレメニュー==&lt;br /&gt;
スケートエリアで。&lt;br /&gt;
&lt;br /&gt;
* 腕立てインクライン：30回&lt;br /&gt;
* スター・クランチ：30回&lt;br /&gt;
* 片足スクワット：各10回&lt;br /&gt;
* 懸垂：20回&lt;br /&gt;
* パンチ・キック：20回&lt;br /&gt;
* プランク：2分&lt;br /&gt;
&lt;br /&gt;
これを２周（サーキット形式）。&amp;lt;br&amp;gt;&lt;br /&gt;
キツくなったら間に有酸素運動（[https://melos.media/training/47334/ アクティブレスト]）挟む。&lt;br /&gt;
&lt;br /&gt;
* 最後に：レッグレイズ：好きな回数&lt;br /&gt;
&lt;br /&gt;
===トレーニング頻度===&lt;br /&gt;
* 毎日：Uber運動（ベースの有酸素＆足筋＆活動量アップ）&lt;br /&gt;
* 週３以上：Uber運動＋筋トレ/ランの日 → 筋肉痛が出るくらいしっかり追い込む&lt;br /&gt;
* 筋肉痛ひどい日：休養、Uber運動だけ。落ち着いたら再開&lt;br /&gt;
&lt;br /&gt;
===筋肉痛7,8割回復で再開OK===&lt;br /&gt;
筋肉痛が完全に抜けるのを待つより、&amp;lt;u&amp;gt;痛みが軽くなったら再刺激の方が筋肥大にも効率的&amp;lt;/u&amp;gt;だし長く続けやすい。&amp;lt;br&amp;gt;&lt;br /&gt;
筋肉痛は「筋線維に微細なダメージが入って炎症してる」状態なので、普通のケガとは違う。&lt;br /&gt;
&lt;br /&gt;
* 筋肉痛MAX（動けないレベル10） → 組織ダメージ大きい → 休むべき&lt;br /&gt;
* 筋肉痛2,3割（ちょっと張ってる・重い感じ） → 血流を良くすると回復が早まる&lt;br /&gt;
* 軽いトレーニングや有酸素運動はむしろ「リカバリー効果」がある&lt;br /&gt;
&lt;br /&gt;
らしい、、まぁやってみて様子見。&lt;br /&gt;
&lt;br /&gt;
==ポイント==&lt;br /&gt;
* 筋トレ/ランが 2〜3回/週 できれば十分効果出る。筋トレを高頻度で、を意識&lt;br /&gt;
* 主食鶏肉300g＋アルファで タンパク質100g/日 を維持して筋肉を強く育てる&lt;br /&gt;
* 筋トレメニューは強度をアップしていく工夫（フォーム・回数・負荷追加）を少しずつ&lt;br /&gt;
* 今のプラン（高タンパク・自然食・運動ペース）を3か月守れば、見た目は確実に変わる&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;まずはこの生活（と、その結果のボディ）がベースラインとなる。&amp;lt;br&amp;gt;&lt;br /&gt;
まずは「Aランク・ボディ」ベースを作って、維持してみる&amp;lt;/u&amp;gt;。&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11266</id>
		<title>Git/GitHub</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11266"/>
		<updated>2026-04-23T01:21:03Z</updated>

		<summary type="html">&lt;p&gt;Y: /* よく使う操作 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:github-logo.jpeg|thumb|Git/GitHub|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039; はLinuxを作ったリーナスによって、カーネルの&amp;lt;strong&amp;gt;バージョン管理のため&amp;lt;/strong&amp;gt;に開発された。&lt;br /&gt;
&lt;br /&gt;
* ブランチ/マージを繰り返しながら&amp;lt;u&amp;gt;気軽に開発や最適化の試行錯誤&amp;lt;/u&amp;gt;ができる&lt;br /&gt;
* ブランチを繰り返しmasterから階層が離れるほど不安定バージョンになる&lt;br /&gt;
* ディレクトリを指定した場合は、そのディレクトリ以下にあるすべてのファイルを再帰的に追加&lt;br /&gt;
* GitHub は&amp;lt;u&amp;gt;Web上のバックアップ&amp;lt;/u&amp;gt;としても使える&lt;br /&gt;
&lt;br /&gt;
==TIPs==&lt;br /&gt;
* 別ブランチのファイルをチラ見したい「git show sub:client/components/MyComponent.tsx」&lt;br /&gt;
* 最初からコミットルール統一しないと後々rebaseの時にコンフリクトが大量発生してrebaseできない&lt;br /&gt;
&lt;br /&gt;
==よく使う操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;gitコマンド&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --list&amp;lt;/code&amp;gt; || 設定オプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global alias.bv &#039;branch -v&#039;&amp;lt;/code&amp;gt; || エイリアスを設定&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global --unset alias.bv&amp;lt;/code&amp;gt; || エイリアスの解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git help&amp;lt;/code&amp;gt; || ヘルプの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || ステージの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status -s&amp;lt;/code&amp;gt; || ステージの現状（簡略版）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || 過去の変更履歴を閲覧。HEADポインタの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log -p -2&amp;lt;/code&amp;gt; || 変更履歴の詳細を２件表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --stat&amp;lt;/code&amp;gt; || 変更履歴の分量を統計的に表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git last&amp;lt;/code&amp;gt; || &#039;log -1 HEAD&#039;エイリアス。直近のログ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull --rebase&amp;lt;/code&amp;gt; || pull してベースを合わせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || 新規・変更・削除されたファイルをステージ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add -u&amp;lt;/code&amp;gt; || 既存ファイルの変更・削除のみステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -m &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || ステージング済み変更をコミット&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -am &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 変更が既存ファイルのみの場合に add を省略&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend&amp;lt;/code&amp;gt; || 変更を直前コミットに吸収。コメントも編集可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend --no-edit&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rebase -i HEAD~10&amp;lt;/code&amp;gt; || log10行表示。先頭rでメッセージ変更可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git unstage &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || reset HEAD のエイリアス。fileをステージから外す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -- &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || 変更の巻き戻し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rm&amp;lt;/code&amp;gt; || ファイルの追跡を中止（次回コミット時に反映される）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git mv&amp;lt;/code&amp;gt; || git にファイル名の変更を知らせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || ブランチの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -v&amp;lt;/code&amp;gt; || 各ブランチの直近のコミットコメントを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch --no-merged&amp;lt;/code&amp;gt; || マージされた事のないブランチ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch hoge&amp;lt;/code&amp;gt; || ブランチの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout hoge&amp;lt;/code&amp;gt; || hogeブランチへ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -b fuga&amp;lt;/code&amp;gt; || fugaブランチを作成しつつ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --oneline --decorate --graph --all&amp;lt;/code&amp;gt; || マージの歴史&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git merge hoge&amp;lt;/code&amp;gt; || ブランチをマージ（通常はmasterでマージする）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -d hoge&amp;lt;/code&amp;gt; || ブランチの削除（通常はマージ後に不要になる為）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || 直近ステージ済みとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || 直近コミットとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git tag&amp;lt;/code&amp;gt; || タグの確認（リリースポイントとして活用など）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===リモート操作===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;リモート操作&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone --bare my_project my_project.git&amp;lt;/code&amp;gt; || サーバ用リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone &amp;lt;URL&amp;gt;&amp;lt;/code&amp;gt; || 指定のプロジェクトをクローン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote -v&amp;lt;code&amp;gt; || 登録されているリモートプロジェクトを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote add pb &amp;lt;nowiki&amp;gt;https://github.com/paulboone/ticgit&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || 「pb」でアクセスできるようにする&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rename pb paul&amp;lt;/code&amp;gt; || 「pb」を「paul」にリネーム&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rm paul&amp;lt;/code&amp;gt; || リモート「paul」を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; || 「origin」からプロジェクトの変更情報を取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull origin&amp;lt;/code&amp;gt; || 「origin」からの変更情報のマージを試みる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git push [remote-name] [branch-name]&amp;lt;/code&amp;gt; || 修正内容をリモートにプッシュ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;参考：https://git-scm.com/book/ja/v2&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11265</id>
		<title>Git/GitHub</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11265"/>
		<updated>2026-04-23T01:20:32Z</updated>

		<summary type="html">&lt;p&gt;Y: /* よく使う操作 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:github-logo.jpeg|thumb|Git/GitHub|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039; はLinuxを作ったリーナスによって、カーネルの&amp;lt;strong&amp;gt;バージョン管理のため&amp;lt;/strong&amp;gt;に開発された。&lt;br /&gt;
&lt;br /&gt;
* ブランチ/マージを繰り返しながら&amp;lt;u&amp;gt;気軽に開発や最適化の試行錯誤&amp;lt;/u&amp;gt;ができる&lt;br /&gt;
* ブランチを繰り返しmasterから階層が離れるほど不安定バージョンになる&lt;br /&gt;
* ディレクトリを指定した場合は、そのディレクトリ以下にあるすべてのファイルを再帰的に追加&lt;br /&gt;
* GitHub は&amp;lt;u&amp;gt;Web上のバックアップ&amp;lt;/u&amp;gt;としても使える&lt;br /&gt;
&lt;br /&gt;
==TIPs==&lt;br /&gt;
* 別ブランチのファイルをチラ見したい「git show sub:client/components/MyComponent.tsx」&lt;br /&gt;
* 最初からコミットルール統一しないと後々rebaseの時にコンフリクトが大量発生してrebaseできない&lt;br /&gt;
&lt;br /&gt;
==よく使う操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;gitコマンド&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --list&amp;lt;/code&amp;gt; || 設定オプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global alias.bv &#039;branch -v&#039;&amp;lt;/code&amp;gt; || エイリアスを設定&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global --unset alias.bv&amp;lt;/code&amp;gt; || エイリアスの解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git help&amp;lt;/code&amp;gt; || ヘルプの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || ステージの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status -s&amp;lt;/code&amp;gt; || ステージの現状（簡略版）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || 過去の変更履歴を閲覧。HEADポインタの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log -p -2&amp;lt;/code&amp;gt; || 変更履歴の詳細を２件表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --stat&amp;lt;/code&amp;gt; || 変更履歴の分量を統計的に表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git last&amp;lt;/code&amp;gt; || &#039;log -1 HEAD&#039;エイリアス。直近のログ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull --rebase&amp;lt;/code&amp;gt; || pull してベースを合わせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || 新規・変更・削除されたファイルをステージ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add -u&amp;lt;/code&amp;gt; || 既存ファイルの変更・削除のみステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -m &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || ステージング済み変更をコミット&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -am &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 変更が既存ファイルのみの場合に add を省略&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend&amp;lt;/code&amp;gt; || 変更を直前コミットに吸収。コメントも編集可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend --no-edit&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rebase -i HEAD~30&amp;lt;/code&amp;gt; || logを30行表示。先頭に r でメッセージ変更可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git unstage &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || reset HEAD のエイリアス。fileをステージから外す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -- &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || 変更の巻き戻し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rm&amp;lt;/code&amp;gt; || ファイルの追跡を中止（次回コミット時に反映される）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git mv&amp;lt;/code&amp;gt; || git にファイル名の変更を知らせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || ブランチの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -v&amp;lt;/code&amp;gt; || 各ブランチの直近のコミットコメントを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch --no-merged&amp;lt;/code&amp;gt; || マージされた事のないブランチ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch hoge&amp;lt;/code&amp;gt; || ブランチの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout hoge&amp;lt;/code&amp;gt; || hogeブランチへ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -b fuga&amp;lt;/code&amp;gt; || fugaブランチを作成しつつ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --oneline --decorate --graph --all&amp;lt;/code&amp;gt; || マージの歴史&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git merge hoge&amp;lt;/code&amp;gt; || ブランチをマージ（通常はmasterでマージする）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -d hoge&amp;lt;/code&amp;gt; || ブランチの削除（通常はマージ後に不要になる為）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || 直近ステージ済みとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || 直近コミットとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git tag&amp;lt;/code&amp;gt; || タグの確認（リリースポイントとして活用など）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===リモート操作===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;リモート操作&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone --bare my_project my_project.git&amp;lt;/code&amp;gt; || サーバ用リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone &amp;lt;URL&amp;gt;&amp;lt;/code&amp;gt; || 指定のプロジェクトをクローン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote -v&amp;lt;code&amp;gt; || 登録されているリモートプロジェクトを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote add pb &amp;lt;nowiki&amp;gt;https://github.com/paulboone/ticgit&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || 「pb」でアクセスできるようにする&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rename pb paul&amp;lt;/code&amp;gt; || 「pb」を「paul」にリネーム&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rm paul&amp;lt;/code&amp;gt; || リモート「paul」を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; || 「origin」からプロジェクトの変更情報を取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull origin&amp;lt;/code&amp;gt; || 「origin」からの変更情報のマージを試みる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git push [remote-name] [branch-name]&amp;lt;/code&amp;gt; || 修正内容をリモートにプッシュ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;参考：https://git-scm.com/book/ja/v2&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11264</id>
		<title>Git/GitHub</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11264"/>
		<updated>2026-04-23T01:16:17Z</updated>

		<summary type="html">&lt;p&gt;Y: /* よく使う操作 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:github-logo.jpeg|thumb|Git/GitHub|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039; はLinuxを作ったリーナスによって、カーネルの&amp;lt;strong&amp;gt;バージョン管理のため&amp;lt;/strong&amp;gt;に開発された。&lt;br /&gt;
&lt;br /&gt;
* ブランチ/マージを繰り返しながら&amp;lt;u&amp;gt;気軽に開発や最適化の試行錯誤&amp;lt;/u&amp;gt;ができる&lt;br /&gt;
* ブランチを繰り返しmasterから階層が離れるほど不安定バージョンになる&lt;br /&gt;
* ディレクトリを指定した場合は、そのディレクトリ以下にあるすべてのファイルを再帰的に追加&lt;br /&gt;
* GitHub は&amp;lt;u&amp;gt;Web上のバックアップ&amp;lt;/u&amp;gt;としても使える&lt;br /&gt;
&lt;br /&gt;
==TIPs==&lt;br /&gt;
* 別ブランチのファイルをチラ見したい「git show sub:client/components/MyComponent.tsx」&lt;br /&gt;
* 最初からコミットルール統一しないと後々rebaseの時にコンフリクトが大量発生してrebaseできない&lt;br /&gt;
&lt;br /&gt;
==よく使う操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;gitコマンド&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --list&amp;lt;/code&amp;gt; || 設定オプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global alias.bv &#039;branch -v&#039;&amp;lt;/code&amp;gt; || エイリアスを設定&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global --unset alias.bv&amp;lt;/code&amp;gt; || エイリアスの解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git help&amp;lt;/code&amp;gt; || ヘルプの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || ステージの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status -s&amp;lt;/code&amp;gt; || ステージの現状（簡略版）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || 過去の変更履歴を閲覧。HEADポインタの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log -p -2&amp;lt;/code&amp;gt; || 変更履歴の詳細を２件表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --stat&amp;lt;/code&amp;gt; || 変更履歴の分量を統計的に表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git last&amp;lt;/code&amp;gt; || &#039;log -1 HEAD&#039;エイリアス。直近のログ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull --rebase&amp;lt;/code&amp;gt; || pull してベースを合わせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || 新規・変更・削除されたファイルをステージ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add -u&amp;lt;/code&amp;gt; || 既存ファイルの変更・削除のみステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -m &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || ステージング済み変更をコミット&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -am &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 変更が既存ファイルのみの場合に add を省略&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend&amp;lt;/code&amp;gt; || 変更を直前コミットに吸収。コメントも編集可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend --no-edit&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git unstage &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || reset HEAD のエイリアス。fileをステージから外す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -- &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || 変更の巻き戻し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rm&amp;lt;/code&amp;gt; || ファイルの追跡を中止（次回コミット時に反映される）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git mv&amp;lt;/code&amp;gt; || git にファイル名の変更を知らせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || ブランチの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -v&amp;lt;/code&amp;gt; || 各ブランチの直近のコミットコメントを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch --no-merged&amp;lt;/code&amp;gt; || マージされた事のないブランチ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch hoge&amp;lt;/code&amp;gt; || ブランチの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout hoge&amp;lt;/code&amp;gt; || hogeブランチへ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -b fuga&amp;lt;/code&amp;gt; || fugaブランチを作成しつつ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --oneline --decorate --graph --all&amp;lt;/code&amp;gt; || マージの歴史&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git merge hoge&amp;lt;/code&amp;gt; || ブランチをマージ（通常はmasterでマージする）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -d hoge&amp;lt;/code&amp;gt; || ブランチの削除（通常はマージ後に不要になる為）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || 直近ステージ済みとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || 直近コミットとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git tag&amp;lt;/code&amp;gt; || タグの確認（リリースポイントとして活用など）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===リモート操作===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;リモート操作&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone --bare my_project my_project.git&amp;lt;/code&amp;gt; || サーバ用リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone &amp;lt;URL&amp;gt;&amp;lt;/code&amp;gt; || 指定のプロジェクトをクローン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote -v&amp;lt;code&amp;gt; || 登録されているリモートプロジェクトを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote add pb &amp;lt;nowiki&amp;gt;https://github.com/paulboone/ticgit&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || 「pb」でアクセスできるようにする&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rename pb paul&amp;lt;/code&amp;gt; || 「pb」を「paul」にリネーム&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rm paul&amp;lt;/code&amp;gt; || リモート「paul」を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; || 「origin」からプロジェクトの変更情報を取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull origin&amp;lt;/code&amp;gt; || 「origin」からの変更情報のマージを試みる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git push [remote-name] [branch-name]&amp;lt;/code&amp;gt; || 修正内容をリモートにプッシュ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;参考：https://git-scm.com/book/ja/v2&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Neovim&amp;diff=11263</id>
		<title>Neovim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Neovim&amp;diff=11263"/>
		<updated>2026-04-22T23:26:59Z</updated>

		<summary type="html">&lt;p&gt;Y: /* 導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:neovim.webp|thumb|Neovim|200px]]&lt;br /&gt;
&lt;br /&gt;
vim の後継でデファクトスタンダード。自分で仕様を学んだり改造できたりする最高のエディタでIDE。&lt;br /&gt;
&lt;br /&gt;
==導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim (公式からの方が早くて軽い)&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter、LSPの導入===&lt;br /&gt;
* 従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる&lt;br /&gt;
* TSやHTMLなどの「LSP」を導入すれば、その言語サーバを参照してくれるようになるのでジャンプや補完機能などが高機能になる&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;zR&amp;lt;/code&amp;gt; || 折りたたみを全て展開&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11262</id>
		<title>Git/GitHub</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11262"/>
		<updated>2026-04-22T23:18:22Z</updated>

		<summary type="html">&lt;p&gt;Y: /* よく使う操作 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:github-logo.jpeg|thumb|Git/GitHub|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039; はLinuxを作ったリーナスによって、カーネルの&amp;lt;strong&amp;gt;バージョン管理のため&amp;lt;/strong&amp;gt;に開発された。&lt;br /&gt;
&lt;br /&gt;
* ブランチ/マージを繰り返しながら&amp;lt;u&amp;gt;気軽に開発や最適化の試行錯誤&amp;lt;/u&amp;gt;ができる&lt;br /&gt;
* ブランチを繰り返しmasterから階層が離れるほど不安定バージョンになる&lt;br /&gt;
* ディレクトリを指定した場合は、そのディレクトリ以下にあるすべてのファイルを再帰的に追加&lt;br /&gt;
* GitHub は&amp;lt;u&amp;gt;Web上のバックアップ&amp;lt;/u&amp;gt;としても使える&lt;br /&gt;
&lt;br /&gt;
==TIPs==&lt;br /&gt;
* 別ブランチのファイルをチラ見したい「git show sub:client/components/MyComponent.tsx」&lt;br /&gt;
* 最初からコミットルール統一しないと後々rebaseの時にコンフリクトが大量発生してrebaseできない&lt;br /&gt;
&lt;br /&gt;
==よく使う操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;gitコマンド&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --list&amp;lt;/code&amp;gt; || 設定オプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global alias.bv &#039;branch -v&#039;&amp;lt;/code&amp;gt; || エイリアスを設定&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global --unset alias.bv&amp;lt;/code&amp;gt; || エイリアスの解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git help&amp;lt;/code&amp;gt; || ヘルプの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || ステージの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status -s&amp;lt;/code&amp;gt; || ステージの現状（簡略版）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || 過去の変更履歴を閲覧。HEADポインタの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log -p -2&amp;lt;/code&amp;gt; || 変更履歴の詳細を２件表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --stat&amp;lt;/code&amp;gt; || 変更履歴の分量を統計的に表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git last&amp;lt;/code&amp;gt; || &#039;log -1 HEAD&#039;エイリアス。直近のログ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull --rebase&amp;lt;/code&amp;gt; || pull してベースを合わせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || 新規・変更・削除されたファイルをステージ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add -u&amp;lt;/code&amp;gt; || 既存ファイルの変更・削除のみステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -m &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || ステージング済み変更をコミット&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -am &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 変更が既存ファイルのみの場合に add を省略&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend&amp;lt;/code&amp;gt; || 変更を直前のコミットに吸収。コメントも編集可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend --no-edit&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git unstage &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || reset HEAD のエイリアス。fileをステージから外す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -- &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || 変更の巻き戻し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rm&amp;lt;/code&amp;gt; || ファイルの追跡を中止（次回コミット時に反映される）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git mv&amp;lt;/code&amp;gt; || git にファイル名の変更を知らせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || ブランチの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -v&amp;lt;/code&amp;gt; || 各ブランチの直近のコミットコメントを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch --no-merged&amp;lt;/code&amp;gt; || マージされた事のないブランチ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch hoge&amp;lt;/code&amp;gt; || ブランチの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout hoge&amp;lt;/code&amp;gt; || hogeブランチへ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -b fuga&amp;lt;/code&amp;gt; || fugaブランチを作成しつつ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --oneline --decorate --graph --all&amp;lt;/code&amp;gt; || マージの歴史&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git merge hoge&amp;lt;/code&amp;gt; || ブランチをマージ（通常はmasterでマージする）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -d hoge&amp;lt;/code&amp;gt; || ブランチの削除（通常はマージ後に不要になる為）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || 直近ステージ済みとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || 直近コミットとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git tag&amp;lt;/code&amp;gt; || タグの確認（リリースポイントとして活用など）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===リモート操作===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;リモート操作&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone --bare my_project my_project.git&amp;lt;/code&amp;gt; || サーバ用リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone &amp;lt;URL&amp;gt;&amp;lt;/code&amp;gt; || 指定のプロジェクトをクローン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote -v&amp;lt;code&amp;gt; || 登録されているリモートプロジェクトを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote add pb &amp;lt;nowiki&amp;gt;https://github.com/paulboone/ticgit&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || 「pb」でアクセスできるようにする&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rename pb paul&amp;lt;/code&amp;gt; || 「pb」を「paul」にリネーム&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rm paul&amp;lt;/code&amp;gt; || リモート「paul」を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; || 「origin」からプロジェクトの変更情報を取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull origin&amp;lt;/code&amp;gt; || 「origin」からの変更情報のマージを試みる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git push [remote-name] [branch-name]&amp;lt;/code&amp;gt; || 修正内容をリモートにプッシュ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;参考：https://git-scm.com/book/ja/v2&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11261</id>
		<title>Git/GitHub</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11261"/>
		<updated>2026-04-22T23:18:09Z</updated>

		<summary type="html">&lt;p&gt;Y: /* よく使う操作 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:github-logo.jpeg|thumb|Git/GitHub|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039; はLinuxを作ったリーナスによって、カーネルの&amp;lt;strong&amp;gt;バージョン管理のため&amp;lt;/strong&amp;gt;に開発された。&lt;br /&gt;
&lt;br /&gt;
* ブランチ/マージを繰り返しながら&amp;lt;u&amp;gt;気軽に開発や最適化の試行錯誤&amp;lt;/u&amp;gt;ができる&lt;br /&gt;
* ブランチを繰り返しmasterから階層が離れるほど不安定バージョンになる&lt;br /&gt;
* ディレクトリを指定した場合は、そのディレクトリ以下にあるすべてのファイルを再帰的に追加&lt;br /&gt;
* GitHub は&amp;lt;u&amp;gt;Web上のバックアップ&amp;lt;/u&amp;gt;としても使える&lt;br /&gt;
&lt;br /&gt;
==TIPs==&lt;br /&gt;
* 別ブランチのファイルをチラ見したい「git show sub:client/components/MyComponent.tsx」&lt;br /&gt;
* 最初からコミットルール統一しないと後々rebaseの時にコンフリクトが大量発生してrebaseできない&lt;br /&gt;
&lt;br /&gt;
==よく使う操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;gitコマンド&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --list&amp;lt;/code&amp;gt; || 設定オプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global alias.bv &#039;branch -v&#039;&amp;lt;/code&amp;gt; || エイリアスを設定&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global --unset alias.bv&amp;lt;/code&amp;gt; || エイリアスの解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git help&amp;lt;/code&amp;gt; || ヘルプの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || ステージの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status -s&amp;lt;/code&amp;gt; || ステージの現状（簡略版）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || 過去の変更履歴を閲覧。HEADポインタの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log -p -2&amp;lt;/code&amp;gt; || 変更履歴の詳細を２件表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --stat&amp;lt;/code&amp;gt; || 変更履歴の分量を統計的に表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git last&amp;lt;/code&amp;gt; || &#039;log -1 HEAD&#039;エイリアス。直近のログ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull --rebase&amp;lt;/code&amp;gt; || pull してベースを合わせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || 新規・変更・削除されたファイルをステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add -u&amp;lt;/code&amp;gt; || 既存ファイルの変更・削除のみステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -m &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || ステージング済み変更をコミット&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -am &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 変更が既存ファイルのみの場合に add を省略&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend&amp;lt;/code&amp;gt; || 変更を直前のコミットに吸収。コメントも編集可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend --no-edit&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git unstage &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || reset HEAD のエイリアス。fileをステージから外す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -- &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || 変更の巻き戻し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rm&amp;lt;/code&amp;gt; || ファイルの追跡を中止（次回コミット時に反映される）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git mv&amp;lt;/code&amp;gt; || git にファイル名の変更を知らせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || ブランチの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -v&amp;lt;/code&amp;gt; || 各ブランチの直近のコミットコメントを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch --no-merged&amp;lt;/code&amp;gt; || マージされた事のないブランチ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch hoge&amp;lt;/code&amp;gt; || ブランチの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout hoge&amp;lt;/code&amp;gt; || hogeブランチへ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -b fuga&amp;lt;/code&amp;gt; || fugaブランチを作成しつつ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --oneline --decorate --graph --all&amp;lt;/code&amp;gt; || マージの歴史&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git merge hoge&amp;lt;/code&amp;gt; || ブランチをマージ（通常はmasterでマージする）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -d hoge&amp;lt;/code&amp;gt; || ブランチの削除（通常はマージ後に不要になる為）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || 直近ステージ済みとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || 直近コミットとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git tag&amp;lt;/code&amp;gt; || タグの確認（リリースポイントとして活用など）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===リモート操作===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;リモート操作&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone --bare my_project my_project.git&amp;lt;/code&amp;gt; || サーバ用リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone &amp;lt;URL&amp;gt;&amp;lt;/code&amp;gt; || 指定のプロジェクトをクローン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote -v&amp;lt;code&amp;gt; || 登録されているリモートプロジェクトを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote add pb &amp;lt;nowiki&amp;gt;https://github.com/paulboone/ticgit&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || 「pb」でアクセスできるようにする&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rename pb paul&amp;lt;/code&amp;gt; || 「pb」を「paul」にリネーム&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rm paul&amp;lt;/code&amp;gt; || リモート「paul」を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; || 「origin」からプロジェクトの変更情報を取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull origin&amp;lt;/code&amp;gt; || 「origin」からの変更情報のマージを試みる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git push [remote-name] [branch-name]&amp;lt;/code&amp;gt; || 修正内容をリモートにプッシュ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;参考：https://git-scm.com/book/ja/v2&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11260</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11260"/>
		<updated>2026-04-22T22:28:58Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** 僕の目的|僕の目的&lt;br /&gt;
** Aランク・ボディ|Aランク・ボディ&lt;br /&gt;
* 基盤&lt;br /&gt;
** プログラミング・スタンス|開発スタンス&lt;br /&gt;
** MariaDB|MariaDB&lt;br /&gt;
** PouchDB|PouchDB&lt;br /&gt;
** Debian|Debian港&lt;br /&gt;
* モダン開発&lt;br /&gt;
** Neovim|Neovim&lt;br /&gt;
** Next.js|Next.js&lt;br /&gt;
** Git/GitHub|Git/GitHub&lt;br /&gt;
** ChatGPT|ChatGPT&lt;br /&gt;
* ユーティリティ&lt;br /&gt;
** Lv.up App|Lv.up App&lt;br /&gt;
** vi/vim|vi/vim&lt;br /&gt;
** MediaWiki|MediaWiki&lt;br /&gt;
** WordPress|WordPress&lt;br /&gt;
*  Web配送センター&lt;br /&gt;
** Apache HTTP Server|Apache&lt;br /&gt;
** PHP|PHP&lt;br /&gt;
** HTML|HTML&lt;br /&gt;
** CSS|CSS&lt;br /&gt;
* ゲーム&lt;br /&gt;
** Minecraft|Minecraft&lt;br /&gt;
** the Isle|the Isle&lt;br /&gt;
** WiPo10|WiPo10&lt;br /&gt;
** 荒野行動|荒野行動&lt;br /&gt;
* 興味/関心&lt;br /&gt;
** Binaryシステム|Binaryシステム&lt;br /&gt;
** JavaScript|JavaScript&lt;br /&gt;
** Node.js|Node.js&lt;br /&gt;
** Unix/Linux|Unix/Linux&lt;br /&gt;
** RaspberryPi|ラズパイ&lt;br /&gt;
** Darwin|Darwin&lt;br /&gt;
** Kali|Kali&lt;br /&gt;
** Java|Java&lt;br /&gt;
** Swift|Swift&lt;br /&gt;
** Xcode|Xcode&lt;br /&gt;
** Python|Python&lt;br /&gt;
** Caddy|Caddy&lt;br /&gt;
* その他&lt;br /&gt;
** toBrain|toBrain&lt;br /&gt;
** toGenius|toGenius&lt;br /&gt;
** English|English&lt;br /&gt;
** Android|Android&lt;br /&gt;
** VirtualBox|VirtualBox&lt;br /&gt;
** Nginx|Nginx&lt;br /&gt;
** 正規表現|正規表現&lt;br /&gt;
** 書籍の要約|書籍の要約&lt;br /&gt;
** 参考文献|参考文献&lt;br /&gt;
** https://www.mediawiki.org/wiki/Help:Contents/ja|公式help&lt;br /&gt;
* Adobe製品&lt;br /&gt;
** Photoshop|Photoshop&lt;br /&gt;
** Illustrator|Illustrator&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11259</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11259"/>
		<updated>2026-04-22T22:28:20Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** 僕の目的|僕の目的&lt;br /&gt;
** Aランク・ボディ|Aランク・ボディ&lt;br /&gt;
* 基盤&lt;br /&gt;
** プログラミング・スタンス|開発スタンス&lt;br /&gt;
** MariaDB|MariaDB&lt;br /&gt;
** PouchDB|PouchDB&lt;br /&gt;
** Debian|Debian港&lt;br /&gt;
* モダン開発&lt;br /&gt;
** Neovim|Neovim&lt;br /&gt;
** Next.js|Next.js&lt;br /&gt;
** Git/GitHub|Git/GitHub&lt;br /&gt;
** ChatGPT|ChatGPT&lt;br /&gt;
* ユーティリティ&lt;br /&gt;
** Lv.up App|Lv.up App&lt;br /&gt;
** vi/vim|vi/vim&lt;br /&gt;
** MediaWiki|MediaWiki&lt;br /&gt;
** WordPress|WordPress&lt;br /&gt;
*  Web配送センター&lt;br /&gt;
** Apache HTTP Server|Apache&lt;br /&gt;
** PHP|PHP&lt;br /&gt;
** HTML|HTML&lt;br /&gt;
** CSS|CSS&lt;br /&gt;
* ゲーム&lt;br /&gt;
** Minecraft|Minecraft&lt;br /&gt;
** the Isle|the Isle&lt;br /&gt;
** WiPo10|WiPo10&lt;br /&gt;
* 興味/関心&lt;br /&gt;
** Binaryシステム|Binaryシステム&lt;br /&gt;
** JavaScript|JavaScript&lt;br /&gt;
** Node.js|Node.js&lt;br /&gt;
** Unix/Linux|Unix/Linux&lt;br /&gt;
** RaspberryPi|ラズパイ&lt;br /&gt;
** Darwin|Darwin&lt;br /&gt;
** Kali|Kali&lt;br /&gt;
** Java|Java&lt;br /&gt;
** Swift|Swift&lt;br /&gt;
** Xcode|Xcode&lt;br /&gt;
** Python|Python&lt;br /&gt;
** Caddy|Caddy&lt;br /&gt;
* その他&lt;br /&gt;
** toBrain|toBrain&lt;br /&gt;
** toGenius|toGenius&lt;br /&gt;
** English|English&lt;br /&gt;
** Android|Android&lt;br /&gt;
** VirtualBox|VirtualBox&lt;br /&gt;
** Nginx|Nginx&lt;br /&gt;
** 正規表現|正規表現&lt;br /&gt;
** 書籍の要約|書籍の要約&lt;br /&gt;
** 参考文献|参考文献&lt;br /&gt;
** 荒野行動|荒野行動&lt;br /&gt;
** https://www.mediawiki.org/wiki/Help:Contents/ja|公式help&lt;br /&gt;
* Adobe製品&lt;br /&gt;
** Photoshop|Photoshop&lt;br /&gt;
** Illustrator|Illustrator&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Neovim&amp;diff=11258</id>
		<title>Neovim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Neovim&amp;diff=11258"/>
		<updated>2026-04-22T22:27:05Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Tree-sitter、LSPの導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:neovim.webp|thumb|Neovim|200px]]&lt;br /&gt;
&lt;br /&gt;
vim の後継でデファクトスタンダード。自分で仕様を学んだり改造できたりする最高のエディタでIDE。&lt;br /&gt;
&lt;br /&gt;
==導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter、LSPの導入===&lt;br /&gt;
* 従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる&lt;br /&gt;
* TSやHTMLなどの「LSP」を導入すれば、その言語サーバを参照してくれるようになるのでジャンプや補完機能などが高機能になる&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;zR&amp;lt;/code&amp;gt; || 折りたたみを全て展開&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Neovim&amp;diff=11257</id>
		<title>Neovim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Neovim&amp;diff=11257"/>
		<updated>2026-04-22T22:26:56Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Tree-sitter、LSPの導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:neovim.webp|thumb|Neovim|200px]]&lt;br /&gt;
&lt;br /&gt;
vim の後継でデファクトスタンダード。自分で仕様を学んだり改造できたりする最高のエディタでIDE。&lt;br /&gt;
&lt;br /&gt;
==導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter、LSPの導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
TSやHTMLなどの「LSP」を導入すれば、その言語サーバを参照してくれるようになるのでジャンプや補完機能などが高機能になる。&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;zR&amp;lt;/code&amp;gt; || 折りたたみを全て展開&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Neovim&amp;diff=11256</id>
		<title>Neovim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Neovim&amp;diff=11256"/>
		<updated>2026-04-22T22:25:25Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Tree-sitter等の導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:neovim.webp|thumb|Neovim|200px]]&lt;br /&gt;
&lt;br /&gt;
vim の後継でデファクトスタンダード。自分で仕様を学んだり改造できたりする最高のエディタでIDE。&lt;br /&gt;
&lt;br /&gt;
==導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter、LSPの導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;zR&amp;lt;/code&amp;gt; || 折りたたみを全て展開&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Neovim&amp;diff=11255</id>
		<title>Neovim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Neovim&amp;diff=11255"/>
		<updated>2026-04-22T22:25:08Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Tree-sitter等の導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:neovim.webp|thumb|Neovim|200px]]&lt;br /&gt;
&lt;br /&gt;
vim の後継でデファクトスタンダード。自分で仕様を学んだり改造できたりする最高のエディタでIDE。&lt;br /&gt;
&lt;br /&gt;
==導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;zR&amp;lt;/code&amp;gt; || 折りたたみを全て展開&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Neovim&amp;diff=11254</id>
		<title>Neovim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Neovim&amp;diff=11254"/>
		<updated>2026-04-22T22:23:18Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:neovim.webp|thumb|Neovim|200px]]&lt;br /&gt;
&lt;br /&gt;
vim の後継でデファクトスタンダード。自分で仕様を学んだり改造できたりする最高のエディタでIDE。&lt;br /&gt;
&lt;br /&gt;
==導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:neovim.webp&amp;diff=11253</id>
		<title>ファイル:neovim.webp</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:neovim.webp&amp;diff=11253"/>
		<updated>2026-04-22T22:22:39Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11252</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11252"/>
		<updated>2026-04-22T22:22:20Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** 僕の目的|僕の目的&lt;br /&gt;
** Aランク・ボディ|Aランク・ボディ&lt;br /&gt;
* 基盤&lt;br /&gt;
** プログラミング・スタンス|開発スタンス&lt;br /&gt;
** MariaDB|MariaDB&lt;br /&gt;
** PouchDB|PouchDB&lt;br /&gt;
** Debian|Debian港&lt;br /&gt;
* モダン開発&lt;br /&gt;
** Neovim|Neovim&lt;br /&gt;
** Next.js|Next.js&lt;br /&gt;
** Node.js|Node.js&lt;br /&gt;
** JavaScript|JavaScript&lt;br /&gt;
** ChatGPT|ChatGPT&lt;br /&gt;
* ユーティリティ&lt;br /&gt;
** Lv.up App|Lv.up App&lt;br /&gt;
** vi/vim|vi/vim&lt;br /&gt;
** Git/GitHub|Git/GitHub&lt;br /&gt;
** MediaWiki|MediaWiki&lt;br /&gt;
** WordPress|WordPress&lt;br /&gt;
*  Web配送センター&lt;br /&gt;
** Apache HTTP Server|Apache&lt;br /&gt;
** PHP|PHP&lt;br /&gt;
** HTML|HTML&lt;br /&gt;
** CSS|CSS&lt;br /&gt;
* ゲーム&lt;br /&gt;
** Minecraft|Minecraft&lt;br /&gt;
** the Isle|the Isle&lt;br /&gt;
** WiPo10|WiPo10&lt;br /&gt;
* 興味/関心&lt;br /&gt;
** Binaryシステム|Binaryシステム&lt;br /&gt;
** Unix/Linux|Unix/Linux&lt;br /&gt;
** RaspberryPi|ラズパイ&lt;br /&gt;
** Darwin|Darwin&lt;br /&gt;
** Kali|Kali&lt;br /&gt;
** Java|Java&lt;br /&gt;
** Swift|Swift&lt;br /&gt;
** Xcode|Xcode&lt;br /&gt;
** Python|Python&lt;br /&gt;
** Caddy|Caddy&lt;br /&gt;
* その他&lt;br /&gt;
** toBrain|toBrain&lt;br /&gt;
** toGenius|toGenius&lt;br /&gt;
** English|English&lt;br /&gt;
** Android|Android&lt;br /&gt;
** VirtualBox|VirtualBox&lt;br /&gt;
** Nginx|Nginx&lt;br /&gt;
** 正規表現|正規表現&lt;br /&gt;
** 書籍の要約|書籍の要約&lt;br /&gt;
** 参考文献|参考文献&lt;br /&gt;
** 荒野行動|荒野行動&lt;br /&gt;
** https://www.mediawiki.org/wiki/Help:Contents/ja|公式help&lt;br /&gt;
* Adobe製品&lt;br /&gt;
** Photoshop|Photoshop&lt;br /&gt;
** Illustrator|Illustrator&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Neovim&amp;diff=11251</id>
		<title>Neovim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Neovim&amp;diff=11251"/>
		<updated>2026-04-22T22:21:11Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;vim の後継でデファクトスタンダード。自分で仕様を学んだり改造できたりする最高のエディタでIDE。&lt;br /&gt;
&lt;br /&gt;
==導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Neovim&amp;diff=11250</id>
		<title>Neovim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Neovim&amp;diff=11250"/>
		<updated>2026-04-22T22:20:17Z</updated>

		<summary type="html">&lt;p&gt;Y: ページの作成:「==Neovim導入== 今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。  導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス…」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11249</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11249"/>
		<updated>2026-04-22T22:20:03Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11248</id>
		<title>Git/GitHub</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11248"/>
		<updated>2026-04-22T21:59:32Z</updated>

		<summary type="html">&lt;p&gt;Y: /* よく使う操作 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:github-logo.jpeg|thumb|Git/GitHub|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039; はLinuxを作ったリーナスによって、カーネルの&amp;lt;strong&amp;gt;バージョン管理のため&amp;lt;/strong&amp;gt;に開発された。&lt;br /&gt;
&lt;br /&gt;
* ブランチ/マージを繰り返しながら&amp;lt;u&amp;gt;気軽に開発や最適化の試行錯誤&amp;lt;/u&amp;gt;ができる&lt;br /&gt;
* ブランチを繰り返しmasterから階層が離れるほど不安定バージョンになる&lt;br /&gt;
* ディレクトリを指定した場合は、そのディレクトリ以下にあるすべてのファイルを再帰的に追加&lt;br /&gt;
* GitHub は&amp;lt;u&amp;gt;Web上のバックアップ&amp;lt;/u&amp;gt;としても使える&lt;br /&gt;
&lt;br /&gt;
==TIPs==&lt;br /&gt;
* 別ブランチのファイルをチラ見したい「git show sub:client/components/MyComponent.tsx」&lt;br /&gt;
* 最初からコミットルール統一しないと後々rebaseの時にコンフリクトが大量発生してrebaseできない&lt;br /&gt;
&lt;br /&gt;
==よく使う操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;gitコマンド&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --list&amp;lt;/code&amp;gt; || 設定オプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global alias.bv &#039;branch -v&#039;&amp;lt;/code&amp;gt; || エイリアスを設定&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global --unset alias.bv&amp;lt;/code&amp;gt; || エイリアスの解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git help&amp;lt;/code&amp;gt; || ヘルプの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || ステージの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status -s&amp;lt;/code&amp;gt; || ステージの現状（簡略版）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || 過去の変更履歴を閲覧。HEADポインタの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log -p -2&amp;lt;/code&amp;gt; || 変更履歴の詳細を２件表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --stat&amp;lt;/code&amp;gt; || 変更履歴の分量を統計的に表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git last&amp;lt;/code&amp;gt; || &#039;log -1 HEAD&#039;エイリアス。直近のログ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || 新規・変更・削除されたファイルをステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add -u&amp;lt;/code&amp;gt; || 既存ファイルの変更・削除のみステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -m &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || ステージング済み変更をコミット&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -am &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 変更が既存ファイルのみの場合に add を省略&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend&amp;lt;/code&amp;gt; || 変更を直前のコミットに吸収。コメントも編集可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -a --amend --no-edit&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git unstage &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || reset HEAD のエイリアス。fileをステージから外す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -- &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || 変更の巻き戻し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rm&amp;lt;/code&amp;gt; || ファイルの追跡を中止（次回コミット時に反映される）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git mv&amp;lt;/code&amp;gt; || git にファイル名の変更を知らせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || ブランチの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -v&amp;lt;/code&amp;gt; || 各ブランチの直近のコミットコメントを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch --no-merged&amp;lt;/code&amp;gt; || マージされた事のないブランチ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch hoge&amp;lt;/code&amp;gt; || ブランチの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout hoge&amp;lt;/code&amp;gt; || hogeブランチへ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -b fuga&amp;lt;/code&amp;gt; || fugaブランチを作成しつつ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --oneline --decorate --graph --all&amp;lt;/code&amp;gt; || マージの歴史&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git merge hoge&amp;lt;/code&amp;gt; || ブランチをマージ（通常はmasterでマージする）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -d hoge&amp;lt;/code&amp;gt; || ブランチの削除（通常はマージ後に不要になる為）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || 直近ステージ済みとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || 直近コミットとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git tag&amp;lt;/code&amp;gt; || タグの確認（リリースポイントとして活用など）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===リモート操作===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;リモート操作&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone --bare my_project my_project.git&amp;lt;/code&amp;gt; || サーバ用リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone &amp;lt;URL&amp;gt;&amp;lt;/code&amp;gt; || 指定のプロジェクトをクローン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote -v&amp;lt;code&amp;gt; || 登録されているリモートプロジェクトを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote add pb &amp;lt;nowiki&amp;gt;https://github.com/paulboone/ticgit&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || 「pb」でアクセスできるようにする&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rename pb paul&amp;lt;/code&amp;gt; || 「pb」を「paul」にリネーム&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rm paul&amp;lt;/code&amp;gt; || リモート「paul」を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; || 「origin」からプロジェクトの変更情報を取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull origin&amp;lt;/code&amp;gt; || 「origin」からの変更情報のマージを試みる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git push [remote-name] [branch-name]&amp;lt;/code&amp;gt; || 修正内容をリモートにプッシュ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;参考：https://git-scm.com/book/ja/v2&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11247</id>
		<title>Git/GitHub</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11247"/>
		<updated>2026-04-22T21:48:28Z</updated>

		<summary type="html">&lt;p&gt;Y: /* よく使う操作 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:github-logo.jpeg|thumb|Git/GitHub|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039; はLinuxを作ったリーナスによって、カーネルの&amp;lt;strong&amp;gt;バージョン管理のため&amp;lt;/strong&amp;gt;に開発された。&lt;br /&gt;
&lt;br /&gt;
* ブランチ/マージを繰り返しながら&amp;lt;u&amp;gt;気軽に開発や最適化の試行錯誤&amp;lt;/u&amp;gt;ができる&lt;br /&gt;
* ブランチを繰り返しmasterから階層が離れるほど不安定バージョンになる&lt;br /&gt;
* ディレクトリを指定した場合は、そのディレクトリ以下にあるすべてのファイルを再帰的に追加&lt;br /&gt;
* GitHub は&amp;lt;u&amp;gt;Web上のバックアップ&amp;lt;/u&amp;gt;としても使える&lt;br /&gt;
&lt;br /&gt;
==TIPs==&lt;br /&gt;
* 別ブランチのファイルをチラ見したい「git show sub:client/components/MyComponent.tsx」&lt;br /&gt;
* 最初からコミットルール統一しないと後々rebaseの時にコンフリクトが大量発生してrebaseできない&lt;br /&gt;
&lt;br /&gt;
==よく使う操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;gitコマンド&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --list&amp;lt;/code&amp;gt; || 設定オプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global alias.bv &#039;branch -v&#039;&amp;lt;/code&amp;gt; || エイリアスを設定&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global --unset alias.bv&amp;lt;/code&amp;gt; || エイリアスの解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git help&amp;lt;/code&amp;gt; || ヘルプの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || ステージの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status -s&amp;lt;/code&amp;gt; || ステージの現状（簡略版）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || 過去の変更履歴を閲覧。HEADポインタの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log -p -2&amp;lt;/code&amp;gt; || 変更履歴の詳細を２件表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --stat&amp;lt;/code&amp;gt; || 変更履歴の分量を統計的に表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git last&amp;lt;/code&amp;gt; || &#039;log -1 HEAD&#039;エイリアス。直近のログ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || 新規・変更・削除されたファイルをステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add -u&amp;lt;/code&amp;gt; || 既存ファイルの変更・削除のみステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -m &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || ステージング済み変更をコミット&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -am &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 変更が既存ファイルのみの場合に add を省略&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit --amend&amp;lt;/code&amp;gt; || 変更を直前のコミットに吸収。コメントも編集可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit --amend --no-edit&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git unstage &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || reset HEAD のエイリアス。fileをステージから外す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -- &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || 変更の巻き戻し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rm&amp;lt;/code&amp;gt; || ファイルの追跡を中止（次回コミット時に反映される）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git mv&amp;lt;/code&amp;gt; || git にファイル名の変更を知らせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || ブランチの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -v&amp;lt;/code&amp;gt; || 各ブランチの直近のコミットコメントを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch --no-merged&amp;lt;/code&amp;gt; || マージされた事のないブランチ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch hoge&amp;lt;/code&amp;gt; || ブランチの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout hoge&amp;lt;/code&amp;gt; || hogeブランチへ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -b fuga&amp;lt;/code&amp;gt; || fugaブランチを作成しつつ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --oneline --decorate --graph --all&amp;lt;/code&amp;gt; || マージの歴史&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git merge hoge&amp;lt;/code&amp;gt; || ブランチをマージ（通常はmasterでマージする）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -d hoge&amp;lt;/code&amp;gt; || ブランチの削除（通常はマージ後に不要になる為）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || 直近ステージ済みとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || 直近コミットとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git tag&amp;lt;/code&amp;gt; || タグの確認（リリースポイントとして活用など）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===リモート操作===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;リモート操作&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone --bare my_project my_project.git&amp;lt;/code&amp;gt; || サーバ用リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone &amp;lt;URL&amp;gt;&amp;lt;/code&amp;gt; || 指定のプロジェクトをクローン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote -v&amp;lt;code&amp;gt; || 登録されているリモートプロジェクトを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote add pb &amp;lt;nowiki&amp;gt;https://github.com/paulboone/ticgit&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || 「pb」でアクセスできるようにする&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rename pb paul&amp;lt;/code&amp;gt; || 「pb」を「paul」にリネーム&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rm paul&amp;lt;/code&amp;gt; || リモート「paul」を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; || 「origin」からプロジェクトの変更情報を取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull origin&amp;lt;/code&amp;gt; || 「origin」からの変更情報のマージを試みる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git push [remote-name] [branch-name]&amp;lt;/code&amp;gt; || 修正内容をリモートにプッシュ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;参考：https://git-scm.com/book/ja/v2&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11246</id>
		<title>Git/GitHub</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Git/GitHub&amp;diff=11246"/>
		<updated>2026-04-22T21:44:24Z</updated>

		<summary type="html">&lt;p&gt;Y: /* よく使う操作 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:github-logo.jpeg|thumb|Git/GitHub|400px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Git&#039;&#039;&#039; はLinuxを作ったリーナスによって、カーネルの&amp;lt;strong&amp;gt;バージョン管理のため&amp;lt;/strong&amp;gt;に開発された。&lt;br /&gt;
&lt;br /&gt;
* ブランチ/マージを繰り返しながら&amp;lt;u&amp;gt;気軽に開発や最適化の試行錯誤&amp;lt;/u&amp;gt;ができる&lt;br /&gt;
* ブランチを繰り返しmasterから階層が離れるほど不安定バージョンになる&lt;br /&gt;
* ディレクトリを指定した場合は、そのディレクトリ以下にあるすべてのファイルを再帰的に追加&lt;br /&gt;
* GitHub は&amp;lt;u&amp;gt;Web上のバックアップ&amp;lt;/u&amp;gt;としても使える&lt;br /&gt;
&lt;br /&gt;
==TIPs==&lt;br /&gt;
* 別ブランチのファイルをチラ見したい「git show sub:client/components/MyComponent.tsx」&lt;br /&gt;
* 最初からコミットルール統一しないと後々rebaseの時にコンフリクトが大量発生してrebaseできない&lt;br /&gt;
&lt;br /&gt;
==よく使う操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;gitコマンド&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --list&amp;lt;/code&amp;gt; || 設定オプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global alias.bv &#039;branch -v&#039;&amp;lt;/code&amp;gt; || エイリアスを設定&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git config --global --unset alias.bv&amp;lt;/code&amp;gt; || エイリアスの解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git help&amp;lt;/code&amp;gt; || ヘルプの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || ステージの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git status -s&amp;lt;/code&amp;gt; || ステージの現状（簡略版）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log&amp;lt;/code&amp;gt; || 過去の変更履歴を閲覧。HEADポインタの表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log -p -2&amp;lt;/code&amp;gt; || 変更履歴の詳細を２件表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --stat&amp;lt;/code&amp;gt; || 変更履歴の分量を統計的に表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git last&amp;lt;/code&amp;gt; || &#039;log -1 HEAD&#039;エイリアス。直近のログ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || 新規・変更・削除されたファイルをステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git add -u&amp;lt;/code&amp;gt; || 既存ファイルの変更・削除のみステージング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -am &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 「-a」は既存ファイル限定の自動add。既存ファイルを修正後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit -m &amp;quot;Comment&amp;quot;&amp;lt;/code&amp;gt; || 変更のコミット&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit --amend&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収。コメントも編集可&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git commit --amend --no-edit&amp;lt;/code&amp;gt; || 修正を直前のコミットに吸収&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git unstage &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || reset HEAD のエイリアス。fileをステージから外す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -- &amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; || 変更の巻き戻し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git rm&amp;lt;/code&amp;gt; || ファイルの追跡を中止（次回コミット時に反映される）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git mv&amp;lt;/code&amp;gt; || git にファイル名の変更を知らせる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || ブランチの現状&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -v&amp;lt;/code&amp;gt; || 各ブランチの直近のコミットコメントを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch --no-merged&amp;lt;/code&amp;gt; || マージされた事のないブランチ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch hoge&amp;lt;/code&amp;gt; || ブランチの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout hoge&amp;lt;/code&amp;gt; || hogeブランチへ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git checkout -b fuga&amp;lt;/code&amp;gt; || fugaブランチを作成しつつ切り替え&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git log --oneline --decorate --graph --all&amp;lt;/code&amp;gt; || マージの歴史&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git merge hoge&amp;lt;/code&amp;gt; || ブランチをマージ（通常はmasterでマージする）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git branch -d hoge&amp;lt;/code&amp;gt; || ブランチの削除（通常はマージ後に不要になる為）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || 直近ステージ済みとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || 直近コミットとの差分を確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git tag&amp;lt;/code&amp;gt; || タグの確認（リリースポイントとして活用など）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===リモート操作===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;リモート操作&amp;quot;&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone --bare my_project my_project.git&amp;lt;/code&amp;gt; || サーバ用リポジトリの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git clone &amp;lt;URL&amp;gt;&amp;lt;/code&amp;gt; || 指定のプロジェクトをクローン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote -v&amp;lt;code&amp;gt; || 登録されているリモートプロジェクトを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote add pb &amp;lt;nowiki&amp;gt;https://github.com/paulboone/ticgit&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; || 「pb」でアクセスできるようにする&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rename pb paul&amp;lt;/code&amp;gt; || 「pb」を「paul」にリネーム&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git remote rm paul&amp;lt;/code&amp;gt; || リモート「paul」を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git fetch origin&amp;lt;/code&amp;gt; || 「origin」からプロジェクトの変更情報を取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git pull origin&amp;lt;/code&amp;gt; || 「origin」からの変更情報のマージを試みる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;git push [remote-name] [branch-name]&amp;lt;/code&amp;gt; || 修正内容をリモートにプッシュ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;small&amp;gt;参考：https://git-scm.com/book/ja/v2&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11245</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11245"/>
		<updated>2026-04-21T07:07:50Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim、Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11244</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11244"/>
		<updated>2026-04-19T10:27:11Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim。Next.jsアプリ開発環境は Neovim という使い分けが良さそう。ちなみに、VSCode はマウス使ってチームで開発したい時に初めて使う。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11243</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11243"/>
		<updated>2026-04-19T10:26:33Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
導入のキッカケは ubadata-site の app/page.tsx の表示遅延。サーバは vim。Next.jsアプリ開発環境は Neovim という使い分けが良さそう。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11242</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11242"/>
		<updated>2026-04-19T10:23:58Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
サーバは vim。Next.jsアプリ開発環境は Neovim という使い分けが良さそう。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11241</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11241"/>
		<updated>2026-04-19T09:53:02Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
サーバは vim。開発環境は Neovim という使い分けが良さそう。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11240</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11240"/>
		<updated>2026-04-19T09:52:54Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。ちなみに vim はベテラン中高年のサーバ畑の人が使ってるイメージ。vimの設定でそのまま導入できる。サーバは vim。開発環境は Neovim という使い分けが良さそう。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
===Tree-sitter等の導入===&lt;br /&gt;
従来の正規表現解析より賢い構文解析になるため、色分けやハイライトが賢くなり、TSやJSXなどが混在する.jsxファイルもかなり見やすくなる。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11239</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11239"/>
		<updated>2026-04-19T09:41:57Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
 $ brew install neovim&lt;br /&gt;
 $ nvim --version&lt;br /&gt;
 $ cp ~/.vimrc ~/.config/nvim/init.vim&lt;br /&gt;
 $ echo &#039;alias nvi=&amp;quot;nvim&amp;quot;&#039; &amp;gt;&amp;gt; ~/.zshrc&lt;br /&gt;
 $ source ~/.zshrc&lt;br /&gt;
 $ git config --global core.editor &amp;quot;nvim&amp;quot;&lt;br /&gt;
 $ mkdir -p ~/.local/share/nvim/site/autoload&lt;br /&gt;
 $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \&lt;br /&gt;
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim&lt;br /&gt;
 $ nvi&lt;br /&gt;
 :PlugInstall&lt;br /&gt;
&lt;br /&gt;
プラグインの保存先は vim-plug のNeovim向けインストール場所で、公式READMEでも推奨。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11238</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11238"/>
		<updated>2026-04-19T09:38:29Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Neovim導入 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=vi/vim&amp;diff=11237</id>
		<title>vi/vim</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=vi/vim&amp;diff=11237"/>
		<updated>2026-04-19T09:38:18Z</updated>

		<summary type="html">&lt;p&gt;Y: /* 初期設定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:vim.png|thumb|Vi IMproved|200px]]&lt;br /&gt;
天才ビル・ジョイが自身のプログラミングのために作ったエディタ。進化系はvim。港の管理運営のために必須。&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Neovim導入==&lt;br /&gt;
Neovim 今時のフロントエンド開発者のIDEとしてスタンダードになりつつある vim の後継。vimの設定でそのまま導入できる。&lt;br /&gt;
&lt;br /&gt;
==初期設定==&lt;br /&gt;
ChatGPTが真っ先に教えてくれた設定。&lt;br /&gt;
&lt;br /&gt;
 # vim .vimrc&lt;br /&gt;
 &amp;quot; ========== 基本設定 ==========                                                                                                                                                                                                  &lt;br /&gt;
 set number          &amp;quot; 行番号を表示&lt;br /&gt;
 set showcmd         &amp;quot; 入力中のコマンドを表示&lt;br /&gt;
 set wildmenu        &amp;quot; コマンド補完を強化&lt;br /&gt;
 set ruler           &amp;quot; ステータスラインにカーソル位置を表示&lt;br /&gt;
 set laststatus=2    &amp;quot; ステータスラインを常に表示&lt;br /&gt;
 let mapleader = &amp;quot; &amp;quot;     &amp;quot; スペースキーをリーダーキーに設定&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== タブ・インデント ==========                                                                                                                                                                                          &lt;br /&gt;
 set expandtab       &amp;quot; タブをスペースに変換&lt;br /&gt;
 set tabstop=2       &amp;quot; タブ幅を4スペース&lt;br /&gt;
 set shiftwidth=2    &amp;quot; 自動インデントも4スペース&lt;br /&gt;
 set autoindent      &amp;quot; 自動インデントを有効化&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 検設定 ==========&lt;br /&gt;
 set hlsearch        &amp;quot; 検索結果をハイライト&lt;br /&gt;
 set incsearch       &amp;quot; 入力と同時に検索&lt;br /&gt;
 set ignorecase      &amp;quot; 検索時に大文字小文字を無視&lt;br /&gt;
 set smartcase       &amp;quot; 大文字を含めたら区別&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 表示設定 ==========&lt;br /&gt;
 set nowrap          &amp;quot; テキストの折り返しを無効化&lt;br /&gt;
 set background=dark &amp;quot; ダークテーマ用の配色&lt;br /&gt;
 syntax on       &amp;quot; シンタックスハイライトを有効化&lt;br /&gt;
 colorscheme desert  &amp;quot; カラースキームを desert に。default もある&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== プラグイン ==========&lt;br /&gt;
 call plug#begin(&#039;~/.vim/plugged&#039;)&lt;br /&gt;
 &amp;quot; ステータスライン&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline&#039;&lt;br /&gt;
 Plug &#039;vim-airline/vim-airline-themes&#039;&lt;br /&gt;
 &amp;quot; ファイルエクスプローラー&lt;br /&gt;
 Plug &#039;preservim/nerdtree&#039;&lt;br /&gt;
 &amp;quot; ファイル検索 / grep&lt;br /&gt;
 Plug &#039;junegunn/fzf&#039;&lt;br /&gt;
 Plug &#039;junegunn/fzf.vim&#039;&lt;br /&gt;
 &amp;quot; JS開発&lt;br /&gt;
 Plug &#039;neoclide/coc.nvim&#039;, {&#039;branch&#039;: &#039;release&#039;}&lt;br /&gt;
 Plug &#039;maxmellon/vim-jsx-pretty&#039;&lt;br /&gt;
 call plug#end()&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot; ========== 便利なキーマッピング ==========&lt;br /&gt;
 inoremap jj &amp;lt;Esc&amp;gt;&lt;br /&gt;
 inoremap &amp;lt;silent&amp;gt;&amp;lt;expr&amp;gt; &amp;lt;CR&amp;gt; pumvisible() ? coc#pum#confirm() : &amp;quot;\&amp;lt;CR&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-n&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;Tab&amp;gt;&amp;quot;&lt;br /&gt;
 inoremap &amp;lt;expr&amp;gt; &amp;lt;S-Tab&amp;gt; pumvisible() ? &amp;quot;\&amp;lt;C-p&amp;gt;&amp;quot; : &amp;quot;\&amp;lt;S-Tab&amp;gt;&amp;quot;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;s :w&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;q :q&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;leader&amp;gt;r :execute &#039;Rg &#039; . expand(&#039;&amp;lt;cword&amp;gt;&#039;)&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-g&amp;gt; :Rg&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-f&amp;gt; :Files&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-b&amp;gt; :Buffers&amp;lt;CR&amp;gt;&lt;br /&gt;
 nnoremap &amp;lt;C-n&amp;gt; :NERDTreeToggle&amp;lt;CR&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
* :source ~/.vimrc で設定を適用&lt;br /&gt;
&lt;br /&gt;
==プラグイン==&lt;br /&gt;
vimプラグインを使えば「軽量なデフォルトvim」をベースに「自分好みのIDE」にできる。軽量なまま。軽めのプログラミング言語なら重量級のIDEに課金して90%の機能を無駄にするより、vim使ったほうがスマート。&lt;br /&gt;
&lt;br /&gt;
 # GPTおすすめのプラグイン&lt;br /&gt;
 1. fzf.vim（超高速ファイル・単語検索）&lt;br /&gt;
 2. vim-airline（軽量なステータスバー）&lt;br /&gt;
 3. nerdtree（ファイルエクスプローラー）&lt;br /&gt;
 4. vim-gitgutter（git 連携）&lt;br /&gt;
 5. coc.nvim（VSCode 並みの補完・LSP。PHPも補完できる）&lt;br /&gt;
&lt;br /&gt;
 :PlugInstall    # .vimrc に設定を追記した後で&lt;br /&gt;
&lt;br /&gt;
==環境とシェル==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;環境とシェル&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set&amp;lt;/code&amp;gt; || 現在セッションのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set shiftwidth=4&amp;lt;/code&amp;gt; || インデントシフトの初期値&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set autoindent &amp;lt;/code&amp;gt; || 自動インデントモード&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set hlsearch&amp;lt;/code&amp;gt; || 検索時のハイライト表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set wrap&amp;lt;/code&amp;gt; || 長文を折り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set showmatch&amp;lt;/code&amp;gt; || ()や{}の対応表示をオン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set list&amp;lt;/code&amp;gt; || タグや空白などの見えない文字が確認できる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:set all&amp;lt;/code&amp;gt; || 全てのオプションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:sh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^D&amp;lt;/code&amp;gt; || シェルを起動、終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:!command&amp;lt;/code&amp;gt; || コマンドを実行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n,m!command&amp;lt;/code&amp;gt; || n行目から m行目まで command でフィルタ処理&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r !date&amp;lt;/code&amp;gt; || 日時情報がカレント行に書き込まれる&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動とファイル操作==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;起動とファイル操作&amp;quot;&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vi file1 file2 file3&amp;lt;/code&amp;gt; || file1とfile2をオープン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:r file1&amp;lt;/code&amp;gt; || 現在行直下にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5r file1&amp;lt;/code&amp;gt; || 5行目にfile1を全てコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w! newfile&amp;lt;/code&amp;gt; || 書き込み権限がない場合の一時しのぎ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==画面分割==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;画面分割&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:sp file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(split) file を横分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:vs file&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Verticle Split) file を縦分割で開く&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w o&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:on&amp;lt;/code&amp;gt; || (only) 編集中ファイル以外を全て閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w q&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在のウィンドウを閉じる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + j/k/l/h&amp;lt;/code&amp;gt;&lt;br /&gt;
|下／上／右／左のウィンドウに移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [+/-]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの横軸を1行広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w + [3&amp;gt;/3&amp;lt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|ウィンドウの縦軸を３つ広げる／縮める&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ar&amp;lt;/code&amp;gt; || 起動中のファイルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:n&amp;lt;/code&amp;gt; || (next) 次のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:rew&amp;lt;/code&amp;gt; || 先頭のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:last&amp;lt;/code&amp;gt; || 最後のファイルへ移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e file2&amp;lt;/code&amp;gt; || file2を編集する&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e#&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + ^&amp;lt;/code&amp;gt; || 直前のファイル編集へ戻る&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テキスト移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テキスト移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;j&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;k&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;l&amp;lt;/code&amp;gt;&lt;br /&gt;
|左、下、上、右&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;W&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
|前、後の単語（大文字は大きいジャンプ）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;e&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;E&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語の末尾（大文字は大きいジャンプ)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の文章へ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
|次、前の空行で区切られたブロックへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
|括弧移動&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==行移動==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行移動&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|次の行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の先頭、文字先頭、末尾&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
|下の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
|上の行の文字先頭&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Head) 画面の最上行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;M&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Middle) 画面の中央行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt;&lt;br /&gt;
|(Lass) 画面の最下行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;nH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nL&amp;lt;/code&amp;gt;&lt;br /&gt;
|上、下から n行目&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z[Enter]&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番上に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z.&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面中央に&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;z-&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル位置を画面の一番下に&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==スクロール==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スクロール&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + e&amp;lt;/code&amp;gt;&lt;br /&gt;
|1行ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt;&lt;br /&gt;
|半画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + b&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + f&amp;lt;/code&amp;gt;&lt;br /&gt;
|1画面ずつ上、下にスクロール&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==検索==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;検索&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Tx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x の直前にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより後方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Fx&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行内でカーソルより前方にある x にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の文字検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|前方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;?pattern&amp;lt;/code&amp;gt;&lt;br /&gt;
|後方にパターンを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
|カーソル上のテキストを検索&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;N&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の検索を前方、後方に繰り返す&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==置換==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;置換&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の最初の old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|5行目の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:23,44s/old/new/g&amp;lt;/code&amp;gt;&lt;br /&gt;
|23~44行目内の全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:1,$s/old/new/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を new に置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/old/new/c&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル全ての old を逐一確認しながら new に変換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:%s/\(That\) or \(this\)/\2 or \1/&amp;lt;/code&amp;gt;&lt;br /&gt;
|ホールドバッファ1,2によりthis or That と置換&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
|大文字／小文字に変換&lt;br /&gt;
|}&lt;br /&gt;
パターンマッチング（正規表現）による高度な置換は『vi入門83~107p』を確認&lt;br /&gt;
&lt;br /&gt;
==ジャンプ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;行番号とマークによるジャンプ&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル名、状態、カレント行番号の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;gg&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;G&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル末尾にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;23G&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:23&amp;lt;/code&amp;gt;&lt;br /&gt;
|23行目にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mx&amp;lt;/code&amp;gt;&lt;br /&gt;
|現在位置を x でマーク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x がある行の先頭にジャンプ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;`x&amp;lt;/code&amp;gt;&lt;br /&gt;
|x にジャンプ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==挿入と変更==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;挿入と変更&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; || カーソルの前、後にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; || 行の先頭、末尾にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o&amp;lt;/code&amp;gt; || カーソルの上、下にテキストを挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt; || １文字、カレント行をテキストに変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt; || 一文字変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cw&amp;lt;/code&amp;gt; || 単語変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cc&amp;lt;/code&amp;gt; || カレント行を変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + [motion]&amp;lt;/code&amp;gt; || モーションで指定した場所までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;c + nG&amp;lt;/code&amp;gt; || カレント行からn行目までを変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;C&amp;lt;/code&amp;gt; || 行末まで変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;R&amp;lt;/code&amp;gt; || 重ね書き&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;10i#-&amp;lt;/code&amp;gt; || #- の組み合わせを１０回入力。Vim によるテキスト編集はプログラミング&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + t&amp;lt;/code&amp;gt; || （挿入モード）右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + d&amp;lt;/code&amp;gt; || （挿入モード）左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; || 右にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;3&amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 3行まとめて左にインデント&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:5,10 &amp;lt;&amp;lt;&amp;lt;/code&amp;gt; || 5~10行まとめて右に2インデント&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==削除とヤンク==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;削除とヤンク&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^u&amp;lt;/code&amp;gt;&lt;br /&gt;
|入力中の単語を削除。入力中の行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字を前方、後方に削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語を直後の空白とセットで削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;de&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のみを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;D&amp;lt;/code&amp;gt;&lt;br /&gt;
|行末までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;d + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%d&amp;lt;/code&amp;gt;&lt;br /&gt;
|全て削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yw&amp;lt;/code&amp;gt;&lt;br /&gt;
|単語のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;yy&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行のヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + [motion]&amp;lt;/code&amp;gt;&lt;br /&gt;
|モーションで指定した場所までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;y + 7G&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行から7行目までをヤンク&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
|削除、ヤンクしたテキストをカーソルの前、後にペースト&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==レジスタの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;レジスタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:reg&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタ一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;a5Y&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行から５行を登録&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;AY&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタa にカレント行を追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;quot;bp&amp;lt;/code&amp;gt;&lt;br /&gt;
|レジスタb の内容をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r + a&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）レジスタa をペースト&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;^r +&amp;lt;/code&amp;gt;&lt;br /&gt;
|（挿入モードで）クリップボードをペースト&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Exモードの活用==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;exエディタの活用&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1,$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全ての行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイルの先頭、カレント行、最終行&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行前&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;x+n&amp;lt;/code&amp;gt;&lt;br /&gt;
|xのn行後&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;&lt;br /&gt;
|exエディタを起動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:vi&amp;lt;/code&amp;gt;&lt;br /&gt;
|viモードへ戻る&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5d&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:.,$d&amp;lt;/code&amp;gt;&lt;br /&gt;
|カレント行からファイル最終行までを削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m0&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目をファイル先頭に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5m10&amp;lt;/code&amp;gt;&lt;br /&gt;
|３行目〜５行目を１０行目に移動&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:13i&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; || 13行目に text を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:12c&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|(change) 12行目を text で置き換える&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==その他==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;その他&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
|直近の編集コマンドの繰り返し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
|文字、行の選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ggVG&amp;lt;/code&amp;gt;&lt;br /&gt;
|ファイル内全てを選択&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;u&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
|アンドゥ、カレント行の復元&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;Ctrl + r&amp;lt;/code&amp;gt;&lt;br /&gt;
|リドゥ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt;&lt;br /&gt;
|２行の連結&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語の一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:ab IBM International Business Machines&amp;lt;/code&amp;gt;&lt;br /&gt;
|IBM を入力すると勝手に正式名称を展開してくれる&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:unab&amp;lt;/code&amp;gt;&lt;br /&gt;
|ab に登録されている略語を解除&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==保存と終了==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;保存と終了&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ESC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ctrl + [&amp;lt;/code&amp;gt;&lt;br /&gt;
|挿入モードへ&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:e!&amp;lt;/code&amp;gt;&lt;br /&gt;
|一番最初の状態へ戻す&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:w&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:w!&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:wa&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存、強制的に保存、オープンしているファイルを全て保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w newfile&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を newfile として保存&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:3,5w&amp;gt;&amp;gt;file&amp;lt;/code&amp;gt;&lt;br /&gt;
|３〜５行目を file に追記&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ZZ&amp;lt;/code&amp;gt;&lt;br /&gt;
|保存して終了&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;:q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;:q!&amp;lt;/code&amp;gt;&lt;br /&gt;
|終了、変更を破棄して終了&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11236</id>
		<title>Apache HTTP Server</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11236"/>
		<updated>2026-04-16T06:02:18Z</updated>

		<summary type="html">&lt;p&gt;Y: /* セキュリティ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:apache.png|thumb|Apache|300px]]&lt;br /&gt;
[[ファイル:port.png|thumb|港の配送センター|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache HTTP Server&#039;&#039;&#039; とは手元のマシンを&amp;lt;strong&amp;gt;港 (配送センター)&amp;lt;/strong&amp;gt; にするためのソフトウェア。C言語製。Apache を城に導入してインターネットに広く公開するとその城は「港 / 公開サーバ」になる。WWW の世界は膨大な数のWebマシンたちの膨大な量の働きによって支えられている。&lt;br /&gt;
&lt;br /&gt;
ちなみに、「人気な港」になると日本中から注文リクエストが殺到することになるので、それを効率よくさばくためのチューニングが必要になったりする。&amp;lt;u&amp;gt;高品質な Service を serve する Server/Servant になる&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
* [https://httpd.apache.org/docs/2.4/en/ Apacheドキュメント]&lt;br /&gt;
&lt;br /&gt;
==注文ログ==&lt;br /&gt;
 # cd  /var/log/apache2&lt;br /&gt;
 # tail -f access_log&lt;br /&gt;
&lt;br /&gt;
数分見ているだけで本当に色々な注文がくる。そして正当な注文は少ない笑。&lt;br /&gt;
&lt;br /&gt;
==セキュリティ==&lt;br /&gt;
* security2-module を入れる&lt;br /&gt;
* ServerTokens を Prod にして表示を「Apache」だけにする&lt;br /&gt;
* Options で -Indexes指定してフォルダ一覧を非表示&lt;br /&gt;
* 他マシンからのリソースの使い回し要求を拒否する&lt;br /&gt;
* Next.js を Apache でリバプロしてる場合、evasive 入れるとブラウザからの複数リクエストが Dos扱いになりデータが一部表示されなくなるのでブロックされるので入れない&lt;br /&gt;
&lt;br /&gt;
==キャッシュ==&lt;br /&gt;
キャッシュを使えばサーバが全てのレスポンスに対応する必要がなくなる。つまり、サーバの負担が軽減する。キャッシュは Webサービスの主要な構成要素。&lt;br /&gt;
&lt;br /&gt;
# 共有キャッシュ - 専用サーバなど&lt;br /&gt;
# プライベートキャッシュ - ブラウザ内など&lt;br /&gt;
&lt;br /&gt;
キャッシュには上記２種類があり、サーバに比べていずれもクライアントに近い場所にあるので毎回サーバからダウンロードするよりもレスポンス速度が向上する。&lt;br /&gt;
&lt;br /&gt;
コンテンツの更新頻度とのバランスを考えながら上手にキャッシュを使えば、 高いパフォーマンスを実装できる。&lt;br /&gt;
&lt;br /&gt;
==モジュール==&lt;br /&gt;
===静的モジュール===&lt;br /&gt;
リスト追加&lt;br /&gt;
&lt;br /&gt;
===動的モジュール（DSO）===&lt;br /&gt;
リスト追加&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11235</id>
		<title>Apache HTTP Server</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11235"/>
		<updated>2026-04-16T06:01:40Z</updated>

		<summary type="html">&lt;p&gt;Y: /* セキュリティ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:apache.png|thumb|Apache|300px]]&lt;br /&gt;
[[ファイル:port.png|thumb|港の配送センター|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache HTTP Server&#039;&#039;&#039; とは手元のマシンを&amp;lt;strong&amp;gt;港 (配送センター)&amp;lt;/strong&amp;gt; にするためのソフトウェア。C言語製。Apache を城に導入してインターネットに広く公開するとその城は「港 / 公開サーバ」になる。WWW の世界は膨大な数のWebマシンたちの膨大な量の働きによって支えられている。&lt;br /&gt;
&lt;br /&gt;
ちなみに、「人気な港」になると日本中から注文リクエストが殺到することになるので、それを効率よくさばくためのチューニングが必要になったりする。&amp;lt;u&amp;gt;高品質な Service を serve する Server/Servant になる&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
* [https://httpd.apache.org/docs/2.4/en/ Apacheドキュメント]&lt;br /&gt;
&lt;br /&gt;
==注文ログ==&lt;br /&gt;
 # cd  /var/log/apache2&lt;br /&gt;
 # tail -f access_log&lt;br /&gt;
&lt;br /&gt;
数分見ているだけで本当に色々な注文がくる。そして正当な注文は少ない笑。&lt;br /&gt;
&lt;br /&gt;
==セキュリティ==&lt;br /&gt;
* security2-module を入れる&lt;br /&gt;
* ServerTokens を Prod にして表示を「Apache」だけにする&lt;br /&gt;
* Options で -Indexes指定してフォルダ一覧を非表示&lt;br /&gt;
* 他マシンからのリソースの使い回し要求を拒否する&lt;br /&gt;
* Next.js を Apache でリバプロしてる場合、evasive 入れるとブラウザからの複数リクエストが Dos扱いになり表示されなくなるのでブロックされるので入れない&lt;br /&gt;
&lt;br /&gt;
==キャッシュ==&lt;br /&gt;
キャッシュを使えばサーバが全てのレスポンスに対応する必要がなくなる。つまり、サーバの負担が軽減する。キャッシュは Webサービスの主要な構成要素。&lt;br /&gt;
&lt;br /&gt;
# 共有キャッシュ - 専用サーバなど&lt;br /&gt;
# プライベートキャッシュ - ブラウザ内など&lt;br /&gt;
&lt;br /&gt;
キャッシュには上記２種類があり、サーバに比べていずれもクライアントに近い場所にあるので毎回サーバからダウンロードするよりもレスポンス速度が向上する。&lt;br /&gt;
&lt;br /&gt;
コンテンツの更新頻度とのバランスを考えながら上手にキャッシュを使えば、 高いパフォーマンスを実装できる。&lt;br /&gt;
&lt;br /&gt;
==モジュール==&lt;br /&gt;
===静的モジュール===&lt;br /&gt;
リスト追加&lt;br /&gt;
&lt;br /&gt;
===動的モジュール（DSO）===&lt;br /&gt;
リスト追加&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11234</id>
		<title>Apache HTTP Server</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Apache_HTTP_Server&amp;diff=11234"/>
		<updated>2026-04-16T06:01:02Z</updated>

		<summary type="html">&lt;p&gt;Y: /* セキュリティ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:apache.png|thumb|Apache|300px]]&lt;br /&gt;
[[ファイル:port.png|thumb|港の配送センター|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Apache HTTP Server&#039;&#039;&#039; とは手元のマシンを&amp;lt;strong&amp;gt;港 (配送センター)&amp;lt;/strong&amp;gt; にするためのソフトウェア。C言語製。Apache を城に導入してインターネットに広く公開するとその城は「港 / 公開サーバ」になる。WWW の世界は膨大な数のWebマシンたちの膨大な量の働きによって支えられている。&lt;br /&gt;
&lt;br /&gt;
ちなみに、「人気な港」になると日本中から注文リクエストが殺到することになるので、それを効率よくさばくためのチューニングが必要になったりする。&amp;lt;u&amp;gt;高品質な Service を serve する Server/Servant になる&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
* [https://httpd.apache.org/docs/2.4/en/ Apacheドキュメント]&lt;br /&gt;
&lt;br /&gt;
==注文ログ==&lt;br /&gt;
 # cd  /var/log/apache2&lt;br /&gt;
 # tail -f access_log&lt;br /&gt;
&lt;br /&gt;
数分見ているだけで本当に色々な注文がくる。そして正当な注文は少ない笑。&lt;br /&gt;
&lt;br /&gt;
==セキュリティ==&lt;br /&gt;
* security2-module を入れる&lt;br /&gt;
* ServerTokens を Prod にして表示を「Apache」だけにする&lt;br /&gt;
* Options で -Indexes指定してフォルダ一覧を非表示&lt;br /&gt;
* 他マシンからのリソースの使い回し要求を拒否する&lt;br /&gt;
* evasive 入れるとブラウザからの複数が Dos扱いになりブロックされるので入れない&lt;br /&gt;
&lt;br /&gt;
==キャッシュ==&lt;br /&gt;
キャッシュを使えばサーバが全てのレスポンスに対応する必要がなくなる。つまり、サーバの負担が軽減する。キャッシュは Webサービスの主要な構成要素。&lt;br /&gt;
&lt;br /&gt;
# 共有キャッシュ - 専用サーバなど&lt;br /&gt;
# プライベートキャッシュ - ブラウザ内など&lt;br /&gt;
&lt;br /&gt;
キャッシュには上記２種類があり、サーバに比べていずれもクライアントに近い場所にあるので毎回サーバからダウンロードするよりもレスポンス速度が向上する。&lt;br /&gt;
&lt;br /&gt;
コンテンツの更新頻度とのバランスを考えながら上手にキャッシュを使えば、 高いパフォーマンスを実装できる。&lt;br /&gt;
&lt;br /&gt;
==モジュール==&lt;br /&gt;
===静的モジュール===&lt;br /&gt;
リスト追加&lt;br /&gt;
&lt;br /&gt;
===動的モジュール（DSO）===&lt;br /&gt;
リスト追加&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9&amp;diff=11233</id>
		<title>プログラミング・スタンス</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9&amp;diff=11233"/>
		<updated>2026-03-19T02:34:02Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;昔と違って、今はマシンリソースを節約するために奮闘する必要はなくなったが、人間の限界に配慮して、可読性を高めて保守しやすい状態にしておくことは今でも必須なので&amp;lt;u&amp;gt;適切な&amp;lt;/u&amp;gt;プログラミング・スタンスはとても大切。&lt;br /&gt;
&lt;br /&gt;
==プログラミングは目的じゃない==&lt;br /&gt;
そもそも1番重要なことは、手段を目的にしないこと。つまりアプリは「作るため」じゃなくて「&amp;lt;u&amp;gt;使うため&amp;lt;/u&amp;gt;」に作るはず。ゆえに、&amp;lt;strong&amp;gt;プログラミングの醍醐味は作ったアプリを使い倒すこと&amp;lt;/strong&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
だからコードの整理や最適化は程々に。&lt;br /&gt;
&lt;br /&gt;
==アプリ開発の起点はデータベース==&lt;br /&gt;
まさにこれが本質。&amp;lt;u&amp;gt;この思想はフルスタックエンジニアの魂&amp;lt;/u&amp;gt;そのもの。&lt;br /&gt;
&lt;br /&gt;
* データは「資産」&lt;br /&gt;
* データの形＝アプリの設計思想&lt;br /&gt;
* データの流れを握ってないと、アプリの本質を握ってない&lt;br /&gt;
&lt;br /&gt;
だからこそ、🔐「自分のDBは自分で持つ」＝アプリの心臓をコントロールするってこと。&lt;br /&gt;
&lt;br /&gt;
FirebaseとかSupabaseとか、楽なのは事実だけど、裏側のDB構造や最適化、複雑なJOIN、パフォーマンスチューニングは見えない＝ブラックボックスになる。&lt;br /&gt;
&lt;br /&gt;
==リファクタリング==&lt;br /&gt;
* GPTで作って動くようになったアプリを、更にGPTでリファクタリングするのは今は厳しいらしい&lt;br /&gt;
* リファクタリング、つまりコードの整理と最適化は全体情報を的確に把握しているからこそできる&lt;br /&gt;
* ゆえにリファクタリングは、言語やアプリの全体情報や挙動をしっかりと把握してから取り組むべき作業&lt;br /&gt;
* GPTが書いてくれたコードを理解するには別途それなりに言語の勉強が必要&lt;br /&gt;
* そのアプリがちゃんと動くならそれはそれで「十分に完成品」。&amp;lt;u&amp;gt;リファクタリングは趣味にとどめる&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
backup2.sh みたいに、やりたいことが一目で分かる「説明的コード」にする。「難解パズル問題コード」じゃなくて。説明的コードにするためなら多少の効率は犠牲にする。コメントもめっちゃ大切。&lt;br /&gt;
&lt;br /&gt;
==手続き型 vs OOP==&lt;br /&gt;
* 手続き型は軽量で速い。OOPは大き目で遅い&lt;br /&gt;
* 手続き型は「脚本」的なまとめ方。OOPは「擬人化」的なまとめ方&lt;br /&gt;
* OOPコード(プログラム)は擬人化のために余計な記述をしなくちゃいけない&lt;br /&gt;
* ただ手続き型も OOP 的なまとめ方はできる。ディレクトリ構造とか&lt;br /&gt;
* 手続き型は「脚本的」になりがち。ゆえにスパゲッティ化に流れがち&lt;br /&gt;
* OOP は「擬人化」のためにディレクトリやコードの整理をいい意味で強制される&lt;br /&gt;
* OOP の醍醐味は「擬人化」ゆえの感情移入、把握、管理のしやすさ&lt;br /&gt;
* OOP と言うよりは、ROP(Role-Oriented Programing)。役割指向プログラミング&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;要はトレードオフ&amp;lt;/strong&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
軽さと速さを犠牲にしてでもOOPの「拡張/再利用/保守性」の高さが欲しいならOOP。OOPでスピードも求めるなら、それなりのマシンスペックやチューニングが必要になってくる。これはコーディングじゃない部分。&lt;br /&gt;
&lt;br /&gt;
==ChatGPT で OOP==&lt;br /&gt;
ChatGPT は自分のコーディングスキルを２、３倍にしてくれる感じ。そもそも一定のスキルがないと底上げされない。&lt;br /&gt;
&lt;br /&gt;
* まずファイル構成や命名をしっかり練る。GPT に伝える&lt;br /&gt;
* それぞれのクラスたちにやらせたい動きや連携関係をしっかり把握&lt;br /&gt;
* それぞれのファイルにコメントで具体的な動き(処理を記述)&lt;br /&gt;
* ChatGPTに「コメントを参考にしてOOPで書いて」と言う&lt;br /&gt;
* まず手続き型でコメント付きのコードを書いてもらう。そのコメントを再利用する感じ&lt;br /&gt;
* Instanceの使い回し、SQLクエリの節約、キャッシュ利用など、工夫したい旨も伝える&lt;br /&gt;
* ChatGPT は最高のコーダーなので、彼が作ってくれた&amp;lt;u&amp;gt;完成コードを読んで色々と勉強する&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
これで、うまくいく。&lt;br /&gt;
&lt;br /&gt;
==命名規則==&lt;br /&gt;
# 後になってからの変数名の変更はとても面倒なので一番最初に「永久に決定」されるものとする&lt;br /&gt;
# クラスには体を表す命名を。フィールドには属性を表す名詞を、メソッドには動きを表す動詞を付ける&lt;br /&gt;
# メソッドはpublicで外部利用。privateで内部利用。オーバーライドを希望する時はabstractを付ける&lt;br /&gt;
# インスタンス変数名は宣言されてる型の方のクラスのイニシャルを利用（PreparedStatement: ps）&lt;br /&gt;
# イニシャルだと変数名が１文字になってしまう場合に限り子音３文字にする（Connect: cnc）&lt;br /&gt;
# ２体目のインスタンスから変数名の後に数字をつけ始める（ps2）&lt;br /&gt;
# 自作クラスのインスタンス名は先頭３文字にする（Monster: mon）&lt;br /&gt;
# 配列変数名は複数形(s)にする。配列には複数のデータが格納されているので&lt;br /&gt;
# その他の変数名は格納データの内容を適切に表すものにする&lt;br /&gt;
# プリミティブ型の変数名は１文字（String: s, int: i）&lt;br /&gt;
# データ格納変数名は名詞。動詞はメソッドのためにある&lt;br /&gt;
# Mapを格納する変数名は「tableBunch」のように内部データが分かるものにする&lt;br /&gt;
&lt;br /&gt;
==備忘メモ==&lt;br /&gt;
* オブジェクト指向の真髄：&amp;lt;strong&amp;gt;コードの徹底した重複排除＋クラスの擬人化&amp;lt;/strong&amp;gt;&lt;br /&gt;
* 似てる箇所がある → 整合整理できる。もっとまとめて再利用できる&lt;br /&gt;
* ただ、少し冗長でもコードの意図や分かりやすさも大切なのでバランスをとる&lt;br /&gt;
* 沢山のエラーが発生してカオスにならないように最小単位ずつ進める&lt;br /&gt;
* 全て英語。シンプルで美しく脳に正しいイメージを伝える英語を使う&lt;br /&gt;
* ロジックを１文ずつしっかり読み、流れ全体を完全に理解していればエラーは必ず直せる&lt;br /&gt;
* toString で節目節目の流れを確認しながら進めていけばエラーの原因は特定できる&lt;br /&gt;
&lt;br /&gt;
==クラスの整理==&lt;br /&gt;
===ファイル===&lt;br /&gt;
* フォルダ1 (SuperClass) -&amp;gt; フォルダ2 (SuperClass) -&amp;gt; SubClassファイル群と階層整理ができる&lt;br /&gt;
* 階層整理をすると各クラス群の役割状況、ポリモやメソッド等の使い回し状況などがtreeで俯瞰できる&lt;br /&gt;
&lt;br /&gt;
===メンバ===&lt;br /&gt;
* 静的メンバ → フィールド → コンストラクタ → メソッド → 定石オーバーライド/ゲッタセッタ&lt;br /&gt;
&lt;br /&gt;
==オーバーライド==&lt;br /&gt;
* &amp;lt;u&amp;gt;toString&amp;lt;/u&amp;gt;：自作クラスのカスタマイズ情報を手軽に参照できるようになる&lt;br /&gt;
* &amp;lt;u&amp;gt;equals&amp;lt;/u&amp;gt;：自作クラスをコレクションに格納するときはオーバーライド&lt;br /&gt;
* &amp;lt;u&amp;gt;hashCode&amp;lt;/u&amp;gt;：HashSetなどが上手く動作しない時にはオーバーライド&lt;br /&gt;
* &amp;lt;u&amp;gt;compareTo&amp;lt;/u&amp;gt;：Comparable を実装すると、[[Collections]].sort が使える&lt;br /&gt;
* &amp;lt;u&amp;gt;clone&amp;lt;/u&amp;gt;：Cloneble を実装すると、インスタンスを複製できるようになる&lt;br /&gt;
&amp;lt;small&amp;gt;＊オーバーライドの定石は[[Object]]を参照&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==外部リソース==&lt;br /&gt;
* ファイルを読み書きするときは[[java.io のクラスたち#バッファリング部門|バッファリング]]を併用&lt;br /&gt;
&lt;br /&gt;
==チェックリスト==&lt;br /&gt;
* 等価判定される自作クラスのequalsは全てオーバーライドされているか？&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=SkillSet&amp;diff=11232</id>
		<title>SkillSet</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=SkillSet&amp;diff=11232"/>
		<updated>2026-03-19T02:32:08Z</updated>

		<summary type="html">&lt;p&gt;Y: /* 公式の説明書 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;父の悲願に貢献するために僕が活用する全マシン/サービス群を &amp;lt;u&amp;gt;Unix哲学的にほぼ無駄なく全把握し最適に構築/運用する&amp;lt;/u&amp;gt;ためのスキルセット。Simple is the BEST.&lt;br /&gt;
&lt;br /&gt;
==SkillSet についてて==&lt;br /&gt;
* この Wiki は僕が&amp;lt;u&amp;gt;[[僕の目的|人生の目的]]を達成するために&amp;lt;/u&amp;gt;必要なITスキルセット/手段の知識を整理&lt;br /&gt;
* ノイズなく綺麗に整理された情報セットは&amp;lt;strong&amp;gt;暗記プロセスをスリム化&amp;lt;/strong&amp;gt;する&lt;br /&gt;
* &amp;lt;u&amp;gt;全てを暗記する必要はない&amp;lt;/u&amp;gt;。「よく使う道」がこの wiki に綺麗に整理されてれば良い&lt;br /&gt;
* ちなみに、&#039;&#039;&#039;ChatGPT&#039;&#039;&#039; (WWW集合知)、ブックマーク、本棚、自室の内装なども僕の脳の「外付けメモリー」&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
効率的に「目的地」へ向かいたいなら『急がば学べ』。ゲームやシステムの全体像を事前にザックリとでも把握していれば&amp;lt;strong&amp;gt;視野がグッと広くなる&amp;lt;/strong&amp;gt;。[[Cities:Skylines]] がいい例。&lt;br /&gt;
&lt;br /&gt;
* 公式の説明書は必ず一通り目を通しておく&lt;br /&gt;
* &amp;lt;u&amp;gt;ChatGPT に質問するための起点情報&amp;lt;/u&amp;gt;を増やしとく&lt;br /&gt;
* ただ公式はザックリ把握でいい。必要じゃない冗長な説明も多いので&lt;br /&gt;
* あくまで学習の母は「必要」なので、その都度GPTに聞いた方が効率的&lt;br /&gt;
* サードパーティ本は補足、補強に利用する&lt;br /&gt;
&lt;br /&gt;
以上の点は、聖書も、Debianも、ゲームも、人間も同じ。&lt;br /&gt;
&lt;br /&gt;
==効率的学習のコツ==&lt;br /&gt;
* &amp;lt;strong&amp;gt;必要は学習/発明の母&amp;lt;/strong&amp;gt;。切実な必要があるからこそ、脳は学習/発明に対して貪欲になれる。発明&amp;lt;=&amp;gt;学習&lt;br /&gt;
* 自分のパラダイム/価値観に基づいた対象への「&amp;lt;u&amp;gt;強い自己同化&amp;lt;/u&amp;gt;」と「&amp;lt;u&amp;gt;全体把握&amp;lt;/u&amp;gt;」。これが「常勝没頭」への道&lt;br /&gt;
* 没頭によるマネジメント放棄/夢中集中を起こしながら勉強することがカギ&lt;br /&gt;
* 単なる読書よりも&amp;lt;strong&amp;gt;自己整理やテストを多用する&amp;lt;/strong&amp;gt;。入力情報よりも出力情報の方が記憶に定着しやすい&lt;br /&gt;
* 読んで覚えるインプット時間「1」に対して、記憶から検索/アウトプットする時間は「2」&lt;br /&gt;
* 復習は基本的に翌日、１週間後、２週間後、１ヶ月後。間隔を徐々に広げて２ヶ月で定着&lt;br /&gt;
* 同じ情報量ブロックを繰り返す。脳が食べやすい大きさの暗記ブロックに区切って繰り返す&lt;br /&gt;
* 忘却曲線を意識して知識を計画的かつ効率的に長期記憶へと移行させる（計画的暗記）&lt;br /&gt;
* 日常的に有酸素運動＋技術運動をすると「記憶用ニューロン」が作られ&amp;lt;strong&amp;gt;学習効率が３５％もUP！&amp;lt;/strong&amp;gt;&lt;br /&gt;
* インターリーブを織り交ぜて脳の退屈（同領域の長時間発火）を防止する。文脈対照効果も&lt;br /&gt;
* 海馬は「楽しいを感じさせてくれる情報」「何度も入ってくる情報」を重要だと判断&lt;br /&gt;
* 海馬が情報の長期記憶行きを判断する主な基準は「楽しむ（生きる）ために必要か？」&lt;br /&gt;
* 一時記憶の有効期間は約１ヶ月。最低でも１ヶ月以内に１度は復習しないと情報は消失する&lt;br /&gt;
* &amp;lt;u&amp;gt;学習と暗記プロセスをとことん効率化するアプリを早く作る&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
参照-『[http://s-park.wao.ne.jp/archives/1962 こうすれば記憶力は高まる！]』&lt;br /&gt;
&lt;br /&gt;
===θ波20倍速モード=== &lt;br /&gt;
子供の「遊び没頭」をイメージ。シータ波が出ている脳（海馬）では１回の刺激で大量ドーパミンが放出されるので少ない反復で長期記憶(暗記)が起こる。うまくやれば１０分の１の反復数ですむ。&lt;br /&gt;
* 脳は「これ得意 / 楽しい！」が大好き - &amp;lt;strong&amp;gt;さっさと全体を俯瞰して中級者&amp;lt;/strong&amp;gt;になってしまう&lt;br /&gt;
* 脳は「創作」と相性が良い - 創作活動は常勝による有能感連鎖が発生しやすく没頭しやすい&lt;br /&gt;
* 脳は「少食」を好む - 空腹時にはグレリンが胃から放出され長期記憶への移行が促進される&lt;br /&gt;
* 脳は人間を重視 - 覚える知識を擬人化させて、それに大きく感情移入すると効果は絶大&lt;br /&gt;
* 脳は出力を重視 - 海馬は入力回数よりも出力回数（検索頻度）の方で長期記憶行きの可否を判断&lt;br /&gt;
* 脳は多様刺激を重視 - 一度にいろいろな刺激を一緒に送る。映像つき、音読、書き写す等&lt;br /&gt;
&lt;br /&gt;
==旧: 整理の指針==&lt;br /&gt;
* どの分野を整理するにしても&amp;lt;u&amp;gt;「全体」を一通り把握/俯瞰してから&amp;lt;/u&amp;gt;特定の部分へ踏み込むべきか検討する&lt;br /&gt;
* ある程度は記憶しておかないと想起もできない。&amp;lt;strong&amp;gt;記録しておかないと知識はいずれ失われる&amp;lt;/strong&amp;gt;&lt;br /&gt;
* 本質的かつ良質な知識（公式情報や上流にいる専門家の知識）を主軸に整理&lt;br /&gt;
* &amp;lt;strong&amp;gt;最低３冊（公式文書+他+他）&amp;lt;/strong&amp;gt;を使って説明ロスのカバーと復習。&amp;lt;u&amp;gt;本質的な説明をしてくれる他に当たれば幸運&amp;lt;/u&amp;gt;&lt;br /&gt;
* 似たような説明の書籍２冊より、全く反対の視点から説明する書籍２冊の方が立体視がしやすい&lt;br /&gt;
* 自作したアプリ等の作成方法やマニュアルも繰り返せるように綺麗にまとめておく&lt;br /&gt;
* コスパ最大化のため『KISS哲学』を意識。「&amp;lt;u&amp;gt;Keep it short and Simple&amp;lt;/u&amp;gt;」 「Keep it Simple, Stupid!」&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=SkillSet&amp;diff=11231</id>
		<title>SkillSet</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=SkillSet&amp;diff=11231"/>
		<updated>2026-03-19T02:32:03Z</updated>

		<summary type="html">&lt;p&gt;Y: /* 公式の説明書 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;父の悲願に貢献するために僕が活用する全マシン/サービス群を &amp;lt;u&amp;gt;Unix哲学的にほぼ無駄なく全把握し最適に構築/運用する&amp;lt;/u&amp;gt;ためのスキルセット。Simple is the BEST.&lt;br /&gt;
&lt;br /&gt;
==SkillSet についてて==&lt;br /&gt;
* この Wiki は僕が&amp;lt;u&amp;gt;[[僕の目的|人生の目的]]を達成するために&amp;lt;/u&amp;gt;必要なITスキルセット/手段の知識を整理&lt;br /&gt;
* ノイズなく綺麗に整理された情報セットは&amp;lt;strong&amp;gt;暗記プロセスをスリム化&amp;lt;/strong&amp;gt;する&lt;br /&gt;
* &amp;lt;u&amp;gt;全てを暗記する必要はない&amp;lt;/u&amp;gt;。「よく使う道」がこの wiki に綺麗に整理されてれば良い&lt;br /&gt;
* ちなみに、&#039;&#039;&#039;ChatGPT&#039;&#039;&#039; (WWW集合知)、ブックマーク、本棚、自室の内装なども僕の脳の「外付けメモリー」&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
効率的に「目的地」へ向かいたいなら『急がば学べ』。ゲームやシステムの全体像を事前にザックリとでも把握していれば&amp;lt;strong&amp;gt;視野がグッと広くなる&amp;lt;/strong&amp;gt;。[[Cities:Skylines]] がいい例。&lt;br /&gt;
&lt;br /&gt;
* 公式の説明書は必ず一通り目を通しておく&lt;br /&gt;
* &amp;lt;u&amp;gt;ChatGPT に質問するための起点情報&amp;lt;/u&amp;gt;を増やしとく&lt;br /&gt;
* ただ公式はザックリ把握でいい。必要じゃない冗長な説明も多いので&lt;br /&gt;
* あくまで学習の母は「必要」なので、その都度GPTに聞いた方が効率的&lt;br /&gt;
* サードパーティ著書は補足、補強に利用する&lt;br /&gt;
&lt;br /&gt;
以上の点は、聖書も、Debianも、ゲームも、人間も同じ。&lt;br /&gt;
&lt;br /&gt;
==効率的学習のコツ==&lt;br /&gt;
* &amp;lt;strong&amp;gt;必要は学習/発明の母&amp;lt;/strong&amp;gt;。切実な必要があるからこそ、脳は学習/発明に対して貪欲になれる。発明&amp;lt;=&amp;gt;学習&lt;br /&gt;
* 自分のパラダイム/価値観に基づいた対象への「&amp;lt;u&amp;gt;強い自己同化&amp;lt;/u&amp;gt;」と「&amp;lt;u&amp;gt;全体把握&amp;lt;/u&amp;gt;」。これが「常勝没頭」への道&lt;br /&gt;
* 没頭によるマネジメント放棄/夢中集中を起こしながら勉強することがカギ&lt;br /&gt;
* 単なる読書よりも&amp;lt;strong&amp;gt;自己整理やテストを多用する&amp;lt;/strong&amp;gt;。入力情報よりも出力情報の方が記憶に定着しやすい&lt;br /&gt;
* 読んで覚えるインプット時間「1」に対して、記憶から検索/アウトプットする時間は「2」&lt;br /&gt;
* 復習は基本的に翌日、１週間後、２週間後、１ヶ月後。間隔を徐々に広げて２ヶ月で定着&lt;br /&gt;
* 同じ情報量ブロックを繰り返す。脳が食べやすい大きさの暗記ブロックに区切って繰り返す&lt;br /&gt;
* 忘却曲線を意識して知識を計画的かつ効率的に長期記憶へと移行させる（計画的暗記）&lt;br /&gt;
* 日常的に有酸素運動＋技術運動をすると「記憶用ニューロン」が作られ&amp;lt;strong&amp;gt;学習効率が３５％もUP！&amp;lt;/strong&amp;gt;&lt;br /&gt;
* インターリーブを織り交ぜて脳の退屈（同領域の長時間発火）を防止する。文脈対照効果も&lt;br /&gt;
* 海馬は「楽しいを感じさせてくれる情報」「何度も入ってくる情報」を重要だと判断&lt;br /&gt;
* 海馬が情報の長期記憶行きを判断する主な基準は「楽しむ（生きる）ために必要か？」&lt;br /&gt;
* 一時記憶の有効期間は約１ヶ月。最低でも１ヶ月以内に１度は復習しないと情報は消失する&lt;br /&gt;
* &amp;lt;u&amp;gt;学習と暗記プロセスをとことん効率化するアプリを早く作る&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
参照-『[http://s-park.wao.ne.jp/archives/1962 こうすれば記憶力は高まる！]』&lt;br /&gt;
&lt;br /&gt;
===θ波20倍速モード=== &lt;br /&gt;
子供の「遊び没頭」をイメージ。シータ波が出ている脳（海馬）では１回の刺激で大量ドーパミンが放出されるので少ない反復で長期記憶(暗記)が起こる。うまくやれば１０分の１の反復数ですむ。&lt;br /&gt;
* 脳は「これ得意 / 楽しい！」が大好き - &amp;lt;strong&amp;gt;さっさと全体を俯瞰して中級者&amp;lt;/strong&amp;gt;になってしまう&lt;br /&gt;
* 脳は「創作」と相性が良い - 創作活動は常勝による有能感連鎖が発生しやすく没頭しやすい&lt;br /&gt;
* 脳は「少食」を好む - 空腹時にはグレリンが胃から放出され長期記憶への移行が促進される&lt;br /&gt;
* 脳は人間を重視 - 覚える知識を擬人化させて、それに大きく感情移入すると効果は絶大&lt;br /&gt;
* 脳は出力を重視 - 海馬は入力回数よりも出力回数（検索頻度）の方で長期記憶行きの可否を判断&lt;br /&gt;
* 脳は多様刺激を重視 - 一度にいろいろな刺激を一緒に送る。映像つき、音読、書き写す等&lt;br /&gt;
&lt;br /&gt;
==旧: 整理の指針==&lt;br /&gt;
* どの分野を整理するにしても&amp;lt;u&amp;gt;「全体」を一通り把握/俯瞰してから&amp;lt;/u&amp;gt;特定の部分へ踏み込むべきか検討する&lt;br /&gt;
* ある程度は記憶しておかないと想起もできない。&amp;lt;strong&amp;gt;記録しておかないと知識はいずれ失われる&amp;lt;/strong&amp;gt;&lt;br /&gt;
* 本質的かつ良質な知識（公式情報や上流にいる専門家の知識）を主軸に整理&lt;br /&gt;
* &amp;lt;strong&amp;gt;最低３冊（公式文書+他+他）&amp;lt;/strong&amp;gt;を使って説明ロスのカバーと復習。&amp;lt;u&amp;gt;本質的な説明をしてくれる他に当たれば幸運&amp;lt;/u&amp;gt;&lt;br /&gt;
* 似たような説明の書籍２冊より、全く反対の視点から説明する書籍２冊の方が立体視がしやすい&lt;br /&gt;
* 自作したアプリ等の作成方法やマニュアルも繰り返せるように綺麗にまとめておく&lt;br /&gt;
* コスパ最大化のため『KISS哲学』を意識。「&amp;lt;u&amp;gt;Keep it short and Simple&amp;lt;/u&amp;gt;」 「Keep it Simple, Stupid!」&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=SkillSet&amp;diff=11230</id>
		<title>SkillSet</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=SkillSet&amp;diff=11230"/>
		<updated>2026-03-19T02:31:09Z</updated>

		<summary type="html">&lt;p&gt;Y: /* SkillSet についてて */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;父の悲願に貢献するために僕が活用する全マシン/サービス群を &amp;lt;u&amp;gt;Unix哲学的にほぼ無駄なく全把握し最適に構築/運用する&amp;lt;/u&amp;gt;ためのスキルセット。Simple is the BEST.&lt;br /&gt;
&lt;br /&gt;
==SkillSet についてて==&lt;br /&gt;
* この Wiki は僕が&amp;lt;u&amp;gt;[[僕の目的|人生の目的]]を達成するために&amp;lt;/u&amp;gt;必要なITスキルセット/手段の知識を整理&lt;br /&gt;
* ノイズなく綺麗に整理された情報セットは&amp;lt;strong&amp;gt;暗記プロセスをスリム化&amp;lt;/strong&amp;gt;する&lt;br /&gt;
* &amp;lt;u&amp;gt;全てを暗記する必要はない&amp;lt;/u&amp;gt;。「よく使う道」がこの wiki に綺麗に整理されてれば良い&lt;br /&gt;
* ちなみに、&#039;&#039;&#039;ChatGPT&#039;&#039;&#039; (WWW集合知)、ブックマーク、本棚、自室の内装なども僕の脳の「外付けメモリー」&lt;br /&gt;
&lt;br /&gt;
==公式の説明書==&lt;br /&gt;
効率的に「目的地」へ向かいたいなら『急がば学べ』。ゲームやシステムの全体像を事前にザックリとでも把握していれば&amp;lt;strong&amp;gt;視野がグッと広くなる&amp;lt;/strong&amp;gt;。[[Cities:Skylines]] がいい例。&lt;br /&gt;
&lt;br /&gt;
* 公式の説明書は必ず一通り目を通しておく&lt;br /&gt;
* &amp;lt;u&amp;gt;ChatGPT に質問するための起点情報&amp;lt;/u&amp;gt;を増やしとく&lt;br /&gt;
* ただ公式はザックリ把握でいい。必要じゃない冗長な説明も多いので&lt;br /&gt;
* あくまで学習の母は「必要」なので、その都度GPTに聞いた方が効率的&lt;br /&gt;
&lt;br /&gt;
以上の点は、聖書も、Debianも、ゲームも、人間も同じ。&lt;br /&gt;
&lt;br /&gt;
==効率的学習のコツ==&lt;br /&gt;
* &amp;lt;strong&amp;gt;必要は学習/発明の母&amp;lt;/strong&amp;gt;。切実な必要があるからこそ、脳は学習/発明に対して貪欲になれる。発明&amp;lt;=&amp;gt;学習&lt;br /&gt;
* 自分のパラダイム/価値観に基づいた対象への「&amp;lt;u&amp;gt;強い自己同化&amp;lt;/u&amp;gt;」と「&amp;lt;u&amp;gt;全体把握&amp;lt;/u&amp;gt;」。これが「常勝没頭」への道&lt;br /&gt;
* 没頭によるマネジメント放棄/夢中集中を起こしながら勉強することがカギ&lt;br /&gt;
* 単なる読書よりも&amp;lt;strong&amp;gt;自己整理やテストを多用する&amp;lt;/strong&amp;gt;。入力情報よりも出力情報の方が記憶に定着しやすい&lt;br /&gt;
* 読んで覚えるインプット時間「1」に対して、記憶から検索/アウトプットする時間は「2」&lt;br /&gt;
* 復習は基本的に翌日、１週間後、２週間後、１ヶ月後。間隔を徐々に広げて２ヶ月で定着&lt;br /&gt;
* 同じ情報量ブロックを繰り返す。脳が食べやすい大きさの暗記ブロックに区切って繰り返す&lt;br /&gt;
* 忘却曲線を意識して知識を計画的かつ効率的に長期記憶へと移行させる（計画的暗記）&lt;br /&gt;
* 日常的に有酸素運動＋技術運動をすると「記憶用ニューロン」が作られ&amp;lt;strong&amp;gt;学習効率が３５％もUP！&amp;lt;/strong&amp;gt;&lt;br /&gt;
* インターリーブを織り交ぜて脳の退屈（同領域の長時間発火）を防止する。文脈対照効果も&lt;br /&gt;
* 海馬は「楽しいを感じさせてくれる情報」「何度も入ってくる情報」を重要だと判断&lt;br /&gt;
* 海馬が情報の長期記憶行きを判断する主な基準は「楽しむ（生きる）ために必要か？」&lt;br /&gt;
* 一時記憶の有効期間は約１ヶ月。最低でも１ヶ月以内に１度は復習しないと情報は消失する&lt;br /&gt;
* &amp;lt;u&amp;gt;学習と暗記プロセスをとことん効率化するアプリを早く作る&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
参照-『[http://s-park.wao.ne.jp/archives/1962 こうすれば記憶力は高まる！]』&lt;br /&gt;
&lt;br /&gt;
===θ波20倍速モード=== &lt;br /&gt;
子供の「遊び没頭」をイメージ。シータ波が出ている脳（海馬）では１回の刺激で大量ドーパミンが放出されるので少ない反復で長期記憶(暗記)が起こる。うまくやれば１０分の１の反復数ですむ。&lt;br /&gt;
* 脳は「これ得意 / 楽しい！」が大好き - &amp;lt;strong&amp;gt;さっさと全体を俯瞰して中級者&amp;lt;/strong&amp;gt;になってしまう&lt;br /&gt;
* 脳は「創作」と相性が良い - 創作活動は常勝による有能感連鎖が発生しやすく没頭しやすい&lt;br /&gt;
* 脳は「少食」を好む - 空腹時にはグレリンが胃から放出され長期記憶への移行が促進される&lt;br /&gt;
* 脳は人間を重視 - 覚える知識を擬人化させて、それに大きく感情移入すると効果は絶大&lt;br /&gt;
* 脳は出力を重視 - 海馬は入力回数よりも出力回数（検索頻度）の方で長期記憶行きの可否を判断&lt;br /&gt;
* 脳は多様刺激を重視 - 一度にいろいろな刺激を一緒に送る。映像つき、音読、書き写す等&lt;br /&gt;
&lt;br /&gt;
==旧: 整理の指針==&lt;br /&gt;
* どの分野を整理するにしても&amp;lt;u&amp;gt;「全体」を一通り把握/俯瞰してから&amp;lt;/u&amp;gt;特定の部分へ踏み込むべきか検討する&lt;br /&gt;
* ある程度は記憶しておかないと想起もできない。&amp;lt;strong&amp;gt;記録しておかないと知識はいずれ失われる&amp;lt;/strong&amp;gt;&lt;br /&gt;
* 本質的かつ良質な知識（公式情報や上流にいる専門家の知識）を主軸に整理&lt;br /&gt;
* &amp;lt;strong&amp;gt;最低３冊（公式文書+他+他）&amp;lt;/strong&amp;gt;を使って説明ロスのカバーと復習。&amp;lt;u&amp;gt;本質的な説明をしてくれる他に当たれば幸運&amp;lt;/u&amp;gt;&lt;br /&gt;
* 似たような説明の書籍２冊より、全く反対の視点から説明する書籍２冊の方が立体視がしやすい&lt;br /&gt;
* 自作したアプリ等の作成方法やマニュアルも繰り返せるように綺麗にまとめておく&lt;br /&gt;
* コスパ最大化のため『KISS哲学』を意識。「&amp;lt;u&amp;gt;Keep it short and Simple&amp;lt;/u&amp;gt;」 「Keep it Simple, Stupid!」&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=MySQL%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9&amp;diff=11229</id>
		<title>MySQLリファレンス</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=MySQL%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9&amp;diff=11229"/>
		<updated>2026-02-26T00:20:36Z</updated>

		<summary type="html">&lt;p&gt;Y: /* auto_increment値の初期化 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt; [[MariaDB]]&lt;br /&gt;
&lt;br /&gt;
==システム情報==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;システム情報&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;¥?&amp;lt;/code&amp;gt; || サーバステータス、クライアントコマンド一覧&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW STATUS&amp;lt;/code&amp;gt; || システム変数の表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SET&amp;lt;/code&amp;gt; || システム変数の変更&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==起動==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;スタート&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mysql_secure_installation&amp;lt;/code&amp;gt; || 初期化。10.4以降は必要なし&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mysql -u user -p db_name&amp;lt;/code&amp;gt; || ログイン&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;¥s, status&amp;lt;/code&amp;gt; || セッション情報を表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW TABLE STATUS¥G&amp;lt;/code&amp;gt; || auto_increment値の確認&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ALTER TABLE hoge AUTO_INCREMENT=3;&amp;lt;/code&amp;gt; || auto_increment値のセット&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===auto_increment値の初期化===&lt;br /&gt;
 CREATE TABLE motd_tmp LIKE motd;&lt;br /&gt;
 &lt;br /&gt;
 INSERT INTO motd_tmp (message, created_at)&lt;br /&gt;
 SELECT message, created_at&lt;br /&gt;
 FROM motd&lt;br /&gt;
 ORDER BY id;&lt;br /&gt;
 &lt;br /&gt;
 DROP TABLE motd;&lt;br /&gt;
 &lt;br /&gt;
 RENAME TABLE motd_tmp TO motd;&lt;br /&gt;
&lt;br /&gt;
＊ 主キーが削除できない時はその列にインデックスを追加すると削除できるようになる&lt;br /&gt;
&lt;br /&gt;
==ユーザ管理==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;ユーザ管理&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SELECT user, host FROM mysql.user;&amp;lt;/code&amp;gt; || ユーザリストを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;GRANT ALL ON sampledb.* TO user@localhost IDENTIFIED BY &#039;passwd&#039;; &amp;lt;/code&amp;gt; || ユーザの追加・権限付与&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;GRANT INSERT, DELETE ON sampledb.* TO user@localhost;&amp;lt;/code&amp;gt; || 権限付与&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;REVOKE INSERT, DELETE ON sampledb.* FROM user@localhost;&amp;lt;/code&amp;gt; || 権限の取り消し&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW GRANTS FOR user@localhost¥G&amp;lt;/code&amp;gt; || 権限を表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;FLUSH PRIVILEGES;&amp;lt;/code&amp;gt; || 権限の更新&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[CREATE/DROP] USER user@localhost;&amp;lt;/code&amp;gt; || ユーザを作成/削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;RENAME USER old_name TO new_name;&amp;lt;/code&amp;gt; || ユーザ名の変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;DROP USER user@localhost;&amp;lt;/code&amp;gt; || ユーザの削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SET PASSWORD FOR user@localhost = password(&#039;new_passwd&#039;);&amp;lt;/code&amp;gt; || パスワード変更（rootで操作）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SET PASSWORD = password(&#039;new_passwd&#039;);&amp;lt;/code&amp;gt; || パスワード変更（ユーザで操作）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==データベース操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;データベース&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[CREATE/ALTER/DROP] DATABASE db_name;&amp;lt;/code&amp;gt; || データベースを作成/属性変更/削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW DATABAES;&amp;lt;/code&amp;gt; || データベースをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;USE db_name&amp;lt;/code&amp;gt; || データベースを選択&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==テーブル操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;テーブル操作&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド !! 説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW TABLES;&amp;lt;/code&amp;gt; || テーブルをリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CREATE TABLE hoge (id int NOT NULL PRIMARY KEY AUTO_INCREMENT, name char(10) DEFAULT &#039;hoge&#039; NOT NULL, birth date NOT NULL);&amp;lt;/code&amp;gt; || テーブルの作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CREATE TALBE new_tb LIKE org_tb&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt; → &amp;lt;code&amp;gt;INSERT INTO new_tb SELECT * FROM org_ot&amp;lt;/code&amp;gt; || テーブルのコピー&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;RENAME TABLE old_name TO new_name;&amp;lt;/code&amp;gt; || テーブル/ビューの名前変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ALTER TABLE hoge CHANGE old_row new_row int NOT NULL;&amp;lt;/code&amp;gt; || 列の名前変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ALTER TABLE hoge MODIFY row_name char(50) NOT NULL;&amp;lt;/code&amp;gt; || 列の属性変更&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ALTER TABLE hoge ADD new_row char(50) NOT NULL;&amp;lt;/code&amp;gt; || 列の追加&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ALTER TABLE hoge DROP row_name;&amp;lt;/code&amp;gt; || 列の削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ALTER TABLE customerlist ADD FOREIGN KEY (companycode) REFERENCES companylist (companycode);&amp;lt;/code&amp;gt; || 外部キーの追加（参照先フィールドには一意性が必要）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ALTER TABLE customerlist DROP FOREIGN KEY customerlist_ibfk_1;&amp;lt;/code&amp;gt; || 外部キーの削除（制約名は SHOW CREATE TABLE で別途参照）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CREATE/ALTER/DROP VIEW v_name;&amp;lt;/code&amp;gt; || ビューを作成/属性変更/削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW CREATE VIEW v_name;&amp;lt;/code&amp;gt; || 作成したビューを表示&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==データ操作==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;データ操作&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!コマンド&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[INSERT/UPDATE/DELETE]&amp;lt;/code&amp;gt; || データを挿入/更新/削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SELECT&amp;lt;/code&amp;gt; || データを取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SELECT DISTINCT&amp;lt;/code&amp;gt; || 重複は１つにまとめてデータを取得&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;INSERT INTO SELECT&amp;lt;/code&amp;gt; || SELECTした結果を挿入&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[LOCK/UNLOCK] TABLES&amp;lt;/code&amp;gt; || テーブルをロック/ロック解除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[CREATE/SHOW/DROP] INDEX&amp;lt;/code&amp;gt; || インデックスを作成/リスト表示/削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;CREATE FUNCTION&amp;lt;/code&amp;gt; || ストアドファンクションを作成&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW CREATE FUNCTION&amp;lt;/code&amp;gt; || ストアドファンクションを表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW FUNCTION STATUS&amp;lt;/code&amp;gt; || ストアドファンクションの状態を表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[CREATE/DROP] TRIGGER&amp;lt;/code&amp;gt; || トリガを作成/削除&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;SHOW TRIGGERS&amp;lt;/code&amp;gt; || トリガのリスト表示&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;[START/STOP] SLAVE&amp;lt;/code&amp;gt;　|| スレーブ機能を開始/停止&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;START TRANSACTION&amp;lt;/code&amp;gt; || トランザクション機能を開始&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
＊外部キーを追加するときは結びつけるカラムが相互に同じ型である事、挿入データが既にある場合は値が全て一致している必要がある&lt;br /&gt;
&lt;br /&gt;
==ダンプとリストア==&lt;br /&gt;
ダンプとリストアには４つの方法がある。&lt;br /&gt;
&lt;br /&gt;
# データファイル群のコピー - 古いディレクトリを tar で圧縮してから新しいディレクトリで展開&lt;br /&gt;
# mysqldump による論理バックアップとリストア - テーブル生成とデータ挿入の SQL文の塊として&lt;br /&gt;
# XtraBackup による物理バックアップとリストア - Percona社が提供しているオンライン物理バックアップツール。無料ながら非常に高機能&lt;br /&gt;
# LVM によるスナップショットとリストア - Linux の LVM機能を利用してバックアップを取る。fdisk や pvcreate などを利用&lt;br /&gt;
&lt;br /&gt;
mysqldump の例：&lt;br /&gt;
 # mysqldump -u root -B sampledb &amp;gt; dump.sql    ← ダンプ（-Bオプションを付けると同じデータベース名になる。代わりに -p）&lt;br /&gt;
 # mysql -u root -D sampledb &amp;lt; dump.sql    ← リストア&lt;br /&gt;
&lt;br /&gt;
==Mysqlクライアント==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;Mysqlクライアント&amp;quot;&lt;br /&gt;
!説明&lt;br /&gt;
!コマンド&lt;br /&gt;
|-&lt;br /&gt;
|データベースの作成 || &amp;lt;code&amp;gt;mysqladmin -u root -p create sampledb&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|ステータスの表示 || &amp;lt;code&amp;gt;mysqladmin -u root -p status&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|稼働状況の表示 || &amp;lt;code&amp;gt;mysqladmin -u root -p status&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|スレッドリストの表示 || &amp;lt;code&amp;gt;mysqladmin -u root -p processlist&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|スレッド番号3を kill ||&amp;lt;code&amp;gt;mysqladmin -u root -p kill 3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|パスワードを変更 || &amp;lt;code&amp;gt;mysqladmin -u root -p password &#039;new-password&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|スレーブ機能を開始 || &amp;lt;code&amp;gt;mysqladmin -u root -p start-slave&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Debian&amp;diff=11228</id>
		<title>Debian</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Debian&amp;diff=11228"/>
		<updated>2026-02-09T03:19:46Z</updated>

		<summary type="html">&lt;p&gt;Y: /* シェルスクリプト */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:debian_logo.png|thumb|Debian|200px]]&lt;br /&gt;
[[ファイル:simcity.png|thumb|SimCity|200px]]&lt;br /&gt;
&lt;br /&gt;
Debian港の「全体」を理解してまとめておく。聖書やSimcityと同じで Debian港も「&amp;lt;strong&amp;gt;全体をしっかり把握&amp;lt;/strong&amp;gt;」していれば、本質を深く理解でき、情報不足ゆえのつまずきを避ける事ができ、&amp;lt;u&amp;gt;管理運営そのものが最高に楽しくなる&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;当然ながら&amp;lt;/strong&amp;gt;、Debian の[https://debian-beginners-handbook.arpinux.org/bookworm-en/the_beginners_handbook.html 公式の説明書] は一通り読んでおく。&lt;br /&gt;
&lt;br /&gt;
==港の準備/インストール==&lt;br /&gt;
* SHELL文字化けの恐れがあるので基本的に「英語」でインスト&lt;br /&gt;
* ただしキーボードは「Japanese」で「¥/|」が正しく入力されるか確認&lt;br /&gt;
* 少なくとも「rootパーテーション」は別にすることを考慮する。ここには最も基本的なシステムが収められており、もし他のパーティションが壊れたとしてもシステムを起動して補修作業ができるのでシステムをゼロから再インストするといったトラブルを防げる&lt;br /&gt;
&lt;br /&gt;
==いざ！自分の港へ接続！==&lt;br /&gt;
* 自分の港をすべて把握して、セキュアな港を構築する&lt;br /&gt;
* Debian はインストール時に root と一般ユーザを登録する&lt;br /&gt;
* 「su -」で完全 root に切り替えて作業する (root が馴染み深くなる。passwd忘れ防止)&lt;br /&gt;
* &amp;lt;code&amp;gt;usermod -aG sudo y&amp;lt;/code&amp;gt; でユーザを sudo グループにしても良い&lt;br /&gt;
* 旧：[[城管理者のチェックリスト]] / [[Linuxマシンのセットアップ]] も参考&lt;br /&gt;
&lt;br /&gt;
===SSH接続===&lt;br /&gt;
 [管制室マシン]&lt;br /&gt;
 $ cat /proc/sys/kernel/random/entropy_avail&lt;br /&gt;
 $ ssh-keygen -t ed25519   // 秘密鍵(ローカル保管)と公開鍵(サーバ保管)のペアを作成&lt;br /&gt;
 $ vi ~/.ssh/config&lt;br /&gt;
  HOST hoge&lt;br /&gt;
     HostName 192.168.86.171&lt;br /&gt;
     Port 55555&lt;br /&gt;
 $ ssh-copy-id hoge    // サーバに公開鍵を転送&lt;br /&gt;
 $ ssh-add   // ローカルにパスフレーズを保存&lt;br /&gt;
 $ ssh-add -l&lt;br /&gt;
 $ ssh hoge&lt;br /&gt;
&lt;br /&gt;
 [港マシン]&lt;br /&gt;
 $ systemctl status sshd&lt;br /&gt;
 $ ss -tan&lt;br /&gt;
 # vi /etc/ssh/sshd_config&lt;br /&gt;
  Port 55555&lt;br /&gt;
 # systemctl sshd restart&lt;br /&gt;
 $ ss -tan&lt;br /&gt;
 $ lsof -i:55555&lt;br /&gt;
 # ls /etc/ssh&lt;br /&gt;
 $ ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub   // フィンガープリントの確認&lt;br /&gt;
 # vi /etc/ssh/sshd_config&lt;br /&gt;
  PasswordAuthentication no&lt;br /&gt;
 $ cat ~/.ssh/authorized_keys&lt;br /&gt;
 # systemctl get-default&lt;br /&gt;
 # systemctl set-default multi-user.target    // GUIを使わないサーバ環境&lt;br /&gt;
&lt;br /&gt;
* SSHの鍵認証で最も広く使われているのはRSA暗号&lt;br /&gt;
* でも最近はRSAよりも「[https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%89%E3%83%AF%E3%83%BC%E3%82%BA%E6%9B%B2%E7%B7%9A%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E7%BD%B2%E5%90%8D%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0#Ed25519 Ed25519]」という暗号化アルゴリズムが強固でパフォーマンスも良く安全面と性能面で最強&lt;br /&gt;
* VPS やコンテナはエントロピーが不足しやすいから、新しく鍵を作るときは haveged などでエントロピーを増やしてからがベスト！&lt;br /&gt;
&lt;br /&gt;
===SSHエージェントの起動===&lt;br /&gt;
毎回のssh秘密鍵パスフレーズ入力が面倒な場合はssh-agentをサービスとして自動起動させておく。ただしcronはssh-agentのキーチェーンにアクセスできないらしい。ちなみに、秘密鍵パスフレーズはZIPファイルのパスワードみたいに内部的なものなので[https://senooken.jp/post/2020/08/05/4342/ そもそも空設定でも良さそう]。&lt;br /&gt;
&lt;br /&gt;
Create /etc/systemd/user/ssh-agent.service.&lt;br /&gt;
Run the following commands (under your user account, not root) to install the systemd unit and start:&lt;br /&gt;
 $ systemctl --user enable ssh-agent.service&lt;br /&gt;
 $ systemctl --user start ssh-agent.service&lt;br /&gt;
 $ systemctl --user status ssh-agent&lt;br /&gt;
 $ ps aux | grep ssh-agent&lt;br /&gt;
Add the following to ~/.bashrc:&lt;br /&gt;
 export SSH_AUTH_SOCK=&amp;quot;$XDG_RUNTIME_DIR/ssh-agent.socket&amp;quot;&lt;br /&gt;
Logout then login, confirm ssh-agent is running:&lt;br /&gt;
 $ systemctl --user status ssh-agent.service&lt;br /&gt;
 $ ssh-add&lt;br /&gt;
 $ ssh-add -L&lt;br /&gt;
 # loginctl [https://wiki.archlinux.jp/index.php/Systemd/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC#systemd_.E3.81.AE.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E3.82.A4.E3.83.B3.E3.82.B9.E3.82.BF.E3.83.B3.E3.82.B9.E3.82.92.E8.87.AA.E5.8B.95.E8.B5.B7.E5.8B.95 enable-linger] username&lt;br /&gt;
&lt;br /&gt;
設定した秘密鍵パスフレーズを削除する場合。&lt;br /&gt;
 $ ssh-keygen -f .ssh/key -p&lt;br /&gt;
&lt;br /&gt;
===マシン/シェル環境の確認===&lt;br /&gt;
 $ hostnamectl&lt;br /&gt;
 $ vi .bash_aliases&lt;br /&gt;
  alias ll=&#039;ls -lh --color=auto&#039;&lt;br /&gt;
  alias less=&#039;less -N&#039;&lt;br /&gt;
 $ . ~/.bash_aliases&lt;br /&gt;
 # vi /etc/hostname&lt;br /&gt;
 # vi /etc/default/keyboard&lt;br /&gt;
  XKBOPTIONS=&amp;quot;ctrl:nocaps&amp;quot;&lt;br /&gt;
 # systemctl restart console-setup&lt;br /&gt;
 $ localectl&lt;br /&gt;
&lt;br /&gt;
* リモートマシンBash環境は接続元マシンの設定が反映？&lt;br /&gt;
&lt;br /&gt;
==港ざっくり把握==&lt;br /&gt;
# 港内マップ：FHS&lt;br /&gt;
# 港内の常駐さん：ユニット/ダイモン (35/218名ほど)&lt;br /&gt;
# 港内の職員たち：アプリ/コマンド (836名ほど)&lt;br /&gt;
# 港内の特別職員たち：派遣アプリ/dpkg (無限)&lt;br /&gt;
# 港レポート：港に関する報告ログ&lt;br /&gt;
&lt;br /&gt;
===1. 港内マップ（フロアマップ）===&lt;br /&gt;
[[FHS]] 参照。英語ネイティブみたいに「home/自宅」や「lib/図書館」や「tar-ball/油人形」などを見て&amp;lt;u&amp;gt;生き生きとした映像やそれに伴う感情&amp;lt;/u&amp;gt;を味わいながら把握して行く。&lt;br /&gt;
&lt;br /&gt;
===2. 港内の常駐さん（ダイモン/ユニット）===&lt;br /&gt;
 A [[daemon]] is &amp;lt;u&amp;gt;a service process that runs in the background and supervises the system or provides functionality to other processes&amp;lt;/u&amp;gt;. Traditionally, daemons are implemented following a scheme originating in SysV Unix. Modern daemons should follow a simpler yet more powerful scheme (here called &amp;quot;new-style&amp;quot; daemons), as &amp;lt;u&amp;gt;implemented by [[systemd]](1)&amp;lt;/u&amp;gt;. This manual page covers both schemes, and in particular includes recommendations for daemons that shall be included in the systemd init system.&lt;br /&gt;
&lt;br /&gt;
 $ systemctl -t service [--state=running]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;u&amp;gt;詳しいことは GPT に聞く&amp;lt;/u&amp;gt;&lt;br /&gt;
* ユニット(サービス)の起動に関係のあるsystemdソケット・ターゲットについても軽く把握&lt;br /&gt;
&lt;br /&gt;
===3. 港内の職員たち（コマンド/アプリ）===&lt;br /&gt;
 lrwxrwxrwx 1 root root 8 Nov 28 14:35 /sbin -&amp;gt; usr/sbin&lt;br /&gt;
 lrwxrwxrwx 1 root root 7 Nov 28 14:35 /bin -&amp;gt; usr/bin&lt;br /&gt;
&lt;br /&gt;
* Debian11では「sbin - [[システム管理者用コマンド|システム管理者用]]（209個）」と「bin - [[一般ユーザ用コマンド|一般ユーザ用]]（627個）」の２種類のコマンドがある&lt;br /&gt;
* 「sbin」は一般ユーザからは which で見えない root用コマンド。使うためには sudo か rootになる必要がある&lt;br /&gt;
* オプション「--help」や「-V」、「man」でコマンドの解説が見れる。必要になったら読めばいい&lt;br /&gt;
* 当然ながら全部覚える必要はない。20:80の法則&lt;br /&gt;
* 以前作成したページ：[[Linuxコマンド]]の内容も参照&lt;br /&gt;
&lt;br /&gt;
===4. 港内のAPT職員たち（dpkg/派遣アプリ）===&lt;br /&gt;
* とりま [https://www.debian.org/distrib/packages.en.html 公式の説明] を参照&lt;br /&gt;
* 全てのパッケージを最新のものにアップデートしてシステムを最新の状態にする&lt;br /&gt;
 $ apt list --installed&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt upgrade&lt;br /&gt;
 # apt full-upgrade    // メジャーアップデート&lt;br /&gt;
 # dpkg -l | grep &#039;^rc&#039;    // removed, config-file remain.を見る&lt;br /&gt;
 # dpkg -l | grep &#039;^rc&#039; | awk &#039;{print $2}&#039; | xargs apt purge -y&lt;br /&gt;
&lt;br /&gt;
* 一般的なサーバなら apt upgrade は手動推奨&lt;br /&gt;
* セキュリティアップデートのみ自動化する&lt;br /&gt;
 # apt install unattended-upgrades -y&lt;br /&gt;
 # dpkg-reconfigure unattended-upgrades&lt;br /&gt;
 # less /etc/apt/apt.conf.d/50unattended-upgrades&lt;br /&gt;
&lt;br /&gt;
===5. 港レポート（港に関する報告ログ）===&lt;br /&gt;
港の状態を把握するために必要な現地からのフィードバック。&lt;br /&gt;
* journalctl：システム内の警備員が逐一記録するバイナリ形式の日誌&lt;br /&gt;
* rsyslog：サービスやアプリが書くテキスト形式の日記&lt;br /&gt;
* journalctl -f とか、tail -f /var/log/apache2/access.log | grep mysite.com とか面白い&lt;br /&gt;
&lt;br /&gt;
== 港のセキュリティ==&lt;br /&gt;
===fail2banの導入===&lt;br /&gt;
 # fail2ban-client status&lt;br /&gt;
 # fail2ban-client status sshd&lt;br /&gt;
 # tail -f /var/log/fail2ban.log&lt;br /&gt;
&lt;br /&gt;
* リアルタイムで不審なIPの Ban が監視できる&lt;br /&gt;
&lt;br /&gt;
===一般ユーザでのログ監視===&lt;br /&gt;
 # usermod -aG adm ユーザー名&lt;br /&gt;
&lt;br /&gt;
* Debian では、/var/log の多くのログは admグループ(admin) に読み取り権限がある&lt;br /&gt;
&lt;br /&gt;
== 港のチューニング==&lt;br /&gt;
=== ガシガシRAM利用で機動力UP!===&lt;br /&gt;
 # systemctl status systemd-sysctl.service&lt;br /&gt;
 # echo &amp;quot;vm.swappiness = 30&amp;quot; | sudo tee -a /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
* Debian等のデフォルトは60。サーバマシンなら10がいい&lt;br /&gt;
* ただメモリが少ない(1GB～2GB)マシンなら 20～30くらいが無難&lt;br /&gt;
&lt;br /&gt;
=== さくらVPS でディスク拡張 ===&lt;br /&gt;
* fdisk で手動で拡張。growpart, parted できないし&lt;br /&gt;
* 詳しくは GPTアーカイブ「[https://manual.sakura.ad.jp/vps/server/disk-expansion/index.html さくら ディスク拡張]」参照&lt;br /&gt;
&lt;br /&gt;
===Swap領域はファイルベースで簡単柔軟===&lt;br /&gt;
* スワップは、GCPとかAWSで主流なswapファイルを利用&lt;br /&gt;
* /dev/vda2 にスワップパーティションとか古い&lt;br /&gt;
&lt;br /&gt;
 # swapoff /swapfile &lt;br /&gt;
 # rm /swapfile &lt;br /&gt;
 # fallocate -l 2G /swapfile&lt;br /&gt;
 # chmod 600 /swapfile &lt;br /&gt;
 # mkswap /swapfile &lt;br /&gt;
 # swapon /swapfile&lt;br /&gt;
&lt;br /&gt;
===Journaldログの肥大回避===&lt;br /&gt;
&lt;br /&gt;
 # vim /etc/systemd/journald.conf&lt;br /&gt;
 SystemMaxUse=200M&lt;br /&gt;
 # systemctl restart systemd-journald&lt;br /&gt;
&lt;br /&gt;
==シェルスクリプト==&lt;br /&gt;
港を管理したり自動化する上でマシンに対しての指示書「シェルスクリプト」の書き方もある程度は知っておく必要がある。&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env bash&lt;br /&gt;
 set -euo pipefail&lt;br /&gt;
&lt;br /&gt;
冒頭はこれが安全な書き方。&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=Debian&amp;diff=11227</id>
		<title>Debian</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=Debian&amp;diff=11227"/>
		<updated>2026-02-09T03:18:28Z</updated>

		<summary type="html">&lt;p&gt;Y: /* Journaldログの肥大回避 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:debian_logo.png|thumb|Debian|200px]]&lt;br /&gt;
[[ファイル:simcity.png|thumb|SimCity|200px]]&lt;br /&gt;
&lt;br /&gt;
Debian港の「全体」を理解してまとめておく。聖書やSimcityと同じで Debian港も「&amp;lt;strong&amp;gt;全体をしっかり把握&amp;lt;/strong&amp;gt;」していれば、本質を深く理解でき、情報不足ゆえのつまずきを避ける事ができ、&amp;lt;u&amp;gt;管理運営そのものが最高に楽しくなる&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;当然ながら&amp;lt;/strong&amp;gt;、Debian の[https://debian-beginners-handbook.arpinux.org/bookworm-en/the_beginners_handbook.html 公式の説明書] は一通り読んでおく。&lt;br /&gt;
&lt;br /&gt;
==港の準備/インストール==&lt;br /&gt;
* SHELL文字化けの恐れがあるので基本的に「英語」でインスト&lt;br /&gt;
* ただしキーボードは「Japanese」で「¥/|」が正しく入力されるか確認&lt;br /&gt;
* 少なくとも「rootパーテーション」は別にすることを考慮する。ここには最も基本的なシステムが収められており、もし他のパーティションが壊れたとしてもシステムを起動して補修作業ができるのでシステムをゼロから再インストするといったトラブルを防げる&lt;br /&gt;
&lt;br /&gt;
==いざ！自分の港へ接続！==&lt;br /&gt;
* 自分の港をすべて把握して、セキュアな港を構築する&lt;br /&gt;
* Debian はインストール時に root と一般ユーザを登録する&lt;br /&gt;
* 「su -」で完全 root に切り替えて作業する (root が馴染み深くなる。passwd忘れ防止)&lt;br /&gt;
* &amp;lt;code&amp;gt;usermod -aG sudo y&amp;lt;/code&amp;gt; でユーザを sudo グループにしても良い&lt;br /&gt;
* 旧：[[城管理者のチェックリスト]] / [[Linuxマシンのセットアップ]] も参考&lt;br /&gt;
&lt;br /&gt;
===SSH接続===&lt;br /&gt;
 [管制室マシン]&lt;br /&gt;
 $ cat /proc/sys/kernel/random/entropy_avail&lt;br /&gt;
 $ ssh-keygen -t ed25519   // 秘密鍵(ローカル保管)と公開鍵(サーバ保管)のペアを作成&lt;br /&gt;
 $ vi ~/.ssh/config&lt;br /&gt;
  HOST hoge&lt;br /&gt;
     HostName 192.168.86.171&lt;br /&gt;
     Port 55555&lt;br /&gt;
 $ ssh-copy-id hoge    // サーバに公開鍵を転送&lt;br /&gt;
 $ ssh-add   // ローカルにパスフレーズを保存&lt;br /&gt;
 $ ssh-add -l&lt;br /&gt;
 $ ssh hoge&lt;br /&gt;
&lt;br /&gt;
 [港マシン]&lt;br /&gt;
 $ systemctl status sshd&lt;br /&gt;
 $ ss -tan&lt;br /&gt;
 # vi /etc/ssh/sshd_config&lt;br /&gt;
  Port 55555&lt;br /&gt;
 # systemctl sshd restart&lt;br /&gt;
 $ ss -tan&lt;br /&gt;
 $ lsof -i:55555&lt;br /&gt;
 # ls /etc/ssh&lt;br /&gt;
 $ ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub   // フィンガープリントの確認&lt;br /&gt;
 # vi /etc/ssh/sshd_config&lt;br /&gt;
  PasswordAuthentication no&lt;br /&gt;
 $ cat ~/.ssh/authorized_keys&lt;br /&gt;
 # systemctl get-default&lt;br /&gt;
 # systemctl set-default multi-user.target    // GUIを使わないサーバ環境&lt;br /&gt;
&lt;br /&gt;
* SSHの鍵認証で最も広く使われているのはRSA暗号&lt;br /&gt;
* でも最近はRSAよりも「[https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%89%E3%83%AF%E3%83%BC%E3%82%BA%E6%9B%B2%E7%B7%9A%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E7%BD%B2%E5%90%8D%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0#Ed25519 Ed25519]」という暗号化アルゴリズムが強固でパフォーマンスも良く安全面と性能面で最強&lt;br /&gt;
* VPS やコンテナはエントロピーが不足しやすいから、新しく鍵を作るときは haveged などでエントロピーを増やしてからがベスト！&lt;br /&gt;
&lt;br /&gt;
===SSHエージェントの起動===&lt;br /&gt;
毎回のssh秘密鍵パスフレーズ入力が面倒な場合はssh-agentをサービスとして自動起動させておく。ただしcronはssh-agentのキーチェーンにアクセスできないらしい。ちなみに、秘密鍵パスフレーズはZIPファイルのパスワードみたいに内部的なものなので[https://senooken.jp/post/2020/08/05/4342/ そもそも空設定でも良さそう]。&lt;br /&gt;
&lt;br /&gt;
Create /etc/systemd/user/ssh-agent.service.&lt;br /&gt;
Run the following commands (under your user account, not root) to install the systemd unit and start:&lt;br /&gt;
 $ systemctl --user enable ssh-agent.service&lt;br /&gt;
 $ systemctl --user start ssh-agent.service&lt;br /&gt;
 $ systemctl --user status ssh-agent&lt;br /&gt;
 $ ps aux | grep ssh-agent&lt;br /&gt;
Add the following to ~/.bashrc:&lt;br /&gt;
 export SSH_AUTH_SOCK=&amp;quot;$XDG_RUNTIME_DIR/ssh-agent.socket&amp;quot;&lt;br /&gt;
Logout then login, confirm ssh-agent is running:&lt;br /&gt;
 $ systemctl --user status ssh-agent.service&lt;br /&gt;
 $ ssh-add&lt;br /&gt;
 $ ssh-add -L&lt;br /&gt;
 # loginctl [https://wiki.archlinux.jp/index.php/Systemd/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC#systemd_.E3.81.AE.E3.83.A6.E3.83.BC.E3.82.B6.E3.83.BC.E3.82.A4.E3.83.B3.E3.82.B9.E3.82.BF.E3.83.B3.E3.82.B9.E3.82.92.E8.87.AA.E5.8B.95.E8.B5.B7.E5.8B.95 enable-linger] username&lt;br /&gt;
&lt;br /&gt;
設定した秘密鍵パスフレーズを削除する場合。&lt;br /&gt;
 $ ssh-keygen -f .ssh/key -p&lt;br /&gt;
&lt;br /&gt;
===マシン/シェル環境の確認===&lt;br /&gt;
 $ hostnamectl&lt;br /&gt;
 $ vi .bash_aliases&lt;br /&gt;
  alias ll=&#039;ls -lh --color=auto&#039;&lt;br /&gt;
  alias less=&#039;less -N&#039;&lt;br /&gt;
 $ . ~/.bash_aliases&lt;br /&gt;
 # vi /etc/hostname&lt;br /&gt;
 # vi /etc/default/keyboard&lt;br /&gt;
  XKBOPTIONS=&amp;quot;ctrl:nocaps&amp;quot;&lt;br /&gt;
 # systemctl restart console-setup&lt;br /&gt;
 $ localectl&lt;br /&gt;
&lt;br /&gt;
* リモートマシンBash環境は接続元マシンの設定が反映？&lt;br /&gt;
&lt;br /&gt;
==港ざっくり把握==&lt;br /&gt;
# 港内マップ：FHS&lt;br /&gt;
# 港内の常駐さん：ユニット/ダイモン (35/218名ほど)&lt;br /&gt;
# 港内の職員たち：アプリ/コマンド (836名ほど)&lt;br /&gt;
# 港内の特別職員たち：派遣アプリ/dpkg (無限)&lt;br /&gt;
# 港レポート：港に関する報告ログ&lt;br /&gt;
&lt;br /&gt;
===1. 港内マップ（フロアマップ）===&lt;br /&gt;
[[FHS]] 参照。英語ネイティブみたいに「home/自宅」や「lib/図書館」や「tar-ball/油人形」などを見て&amp;lt;u&amp;gt;生き生きとした映像やそれに伴う感情&amp;lt;/u&amp;gt;を味わいながら把握して行く。&lt;br /&gt;
&lt;br /&gt;
===2. 港内の常駐さん（ダイモン/ユニット）===&lt;br /&gt;
 A [[daemon]] is &amp;lt;u&amp;gt;a service process that runs in the background and supervises the system or provides functionality to other processes&amp;lt;/u&amp;gt;. Traditionally, daemons are implemented following a scheme originating in SysV Unix. Modern daemons should follow a simpler yet more powerful scheme (here called &amp;quot;new-style&amp;quot; daemons), as &amp;lt;u&amp;gt;implemented by [[systemd]](1)&amp;lt;/u&amp;gt;. This manual page covers both schemes, and in particular includes recommendations for daemons that shall be included in the systemd init system.&lt;br /&gt;
&lt;br /&gt;
 $ systemctl -t service [--state=running]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;u&amp;gt;詳しいことは GPT に聞く&amp;lt;/u&amp;gt;&lt;br /&gt;
* ユニット(サービス)の起動に関係のあるsystemdソケット・ターゲットについても軽く把握&lt;br /&gt;
&lt;br /&gt;
===3. 港内の職員たち（コマンド/アプリ）===&lt;br /&gt;
 lrwxrwxrwx 1 root root 8 Nov 28 14:35 /sbin -&amp;gt; usr/sbin&lt;br /&gt;
 lrwxrwxrwx 1 root root 7 Nov 28 14:35 /bin -&amp;gt; usr/bin&lt;br /&gt;
&lt;br /&gt;
* Debian11では「sbin - [[システム管理者用コマンド|システム管理者用]]（209個）」と「bin - [[一般ユーザ用コマンド|一般ユーザ用]]（627個）」の２種類のコマンドがある&lt;br /&gt;
* 「sbin」は一般ユーザからは which で見えない root用コマンド。使うためには sudo か rootになる必要がある&lt;br /&gt;
* オプション「--help」や「-V」、「man」でコマンドの解説が見れる。必要になったら読めばいい&lt;br /&gt;
* 当然ながら全部覚える必要はない。20:80の法則&lt;br /&gt;
* 以前作成したページ：[[Linuxコマンド]]の内容も参照&lt;br /&gt;
&lt;br /&gt;
===4. 港内のAPT職員たち（dpkg/派遣アプリ）===&lt;br /&gt;
* とりま [https://www.debian.org/distrib/packages.en.html 公式の説明] を参照&lt;br /&gt;
* 全てのパッケージを最新のものにアップデートしてシステムを最新の状態にする&lt;br /&gt;
 $ apt list --installed&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt upgrade&lt;br /&gt;
 # apt full-upgrade    // メジャーアップデート&lt;br /&gt;
 # dpkg -l | grep &#039;^rc&#039;    // removed, config-file remain.を見る&lt;br /&gt;
 # dpkg -l | grep &#039;^rc&#039; | awk &#039;{print $2}&#039; | xargs apt purge -y&lt;br /&gt;
&lt;br /&gt;
* 一般的なサーバなら apt upgrade は手動推奨&lt;br /&gt;
* セキュリティアップデートのみ自動化する&lt;br /&gt;
 # apt install unattended-upgrades -y&lt;br /&gt;
 # dpkg-reconfigure unattended-upgrades&lt;br /&gt;
 # less /etc/apt/apt.conf.d/50unattended-upgrades&lt;br /&gt;
&lt;br /&gt;
===5. 港レポート（港に関する報告ログ）===&lt;br /&gt;
港の状態を把握するために必要な現地からのフィードバック。&lt;br /&gt;
* journalctl：システム内の警備員が逐一記録するバイナリ形式の日誌&lt;br /&gt;
* rsyslog：サービスやアプリが書くテキスト形式の日記&lt;br /&gt;
* journalctl -f とか、tail -f /var/log/apache2/access.log | grep mysite.com とか面白い&lt;br /&gt;
&lt;br /&gt;
== 港のセキュリティ==&lt;br /&gt;
===fail2banの導入===&lt;br /&gt;
 # fail2ban-client status&lt;br /&gt;
 # fail2ban-client status sshd&lt;br /&gt;
 # tail -f /var/log/fail2ban.log&lt;br /&gt;
&lt;br /&gt;
* リアルタイムで不審なIPの Ban が監視できる&lt;br /&gt;
&lt;br /&gt;
===一般ユーザでのログ監視===&lt;br /&gt;
 # usermod -aG adm ユーザー名&lt;br /&gt;
&lt;br /&gt;
* Debian では、/var/log の多くのログは admグループ(admin) に読み取り権限がある&lt;br /&gt;
&lt;br /&gt;
== 港のチューニング==&lt;br /&gt;
=== ガシガシRAM利用で機動力UP!===&lt;br /&gt;
 # systemctl status systemd-sysctl.service&lt;br /&gt;
 # echo &amp;quot;vm.swappiness = 30&amp;quot; | sudo tee -a /etc/sysctl.conf&lt;br /&gt;
 # sysctl -p&lt;br /&gt;
&lt;br /&gt;
* Debian等のデフォルトは60。サーバマシンなら10がいい&lt;br /&gt;
* ただメモリが少ない(1GB～2GB)マシンなら 20～30くらいが無難&lt;br /&gt;
&lt;br /&gt;
=== さくらVPS でディスク拡張 ===&lt;br /&gt;
* fdisk で手動で拡張。growpart, parted できないし&lt;br /&gt;
* 詳しくは GPTアーカイブ「[https://manual.sakura.ad.jp/vps/server/disk-expansion/index.html さくら ディスク拡張]」参照&lt;br /&gt;
&lt;br /&gt;
===Swap領域はファイルベースで簡単柔軟===&lt;br /&gt;
* スワップは、GCPとかAWSで主流なswapファイルを利用&lt;br /&gt;
* /dev/vda2 にスワップパーティションとか古い&lt;br /&gt;
&lt;br /&gt;
 # swapoff /swapfile &lt;br /&gt;
 # rm /swapfile &lt;br /&gt;
 # fallocate -l 2G /swapfile&lt;br /&gt;
 # chmod 600 /swapfile &lt;br /&gt;
 # mkswap /swapfile &lt;br /&gt;
 # swapon /swapfile&lt;br /&gt;
&lt;br /&gt;
===Journaldログの肥大回避===&lt;br /&gt;
&lt;br /&gt;
 # vim /etc/systemd/journald.conf&lt;br /&gt;
 SystemMaxUse=200M&lt;br /&gt;
 # systemctl restart systemd-journald&lt;br /&gt;
&lt;br /&gt;
==シェルスクリプト==&lt;br /&gt;
港を管理したり自動化する上でマシンに対しての指示書「シェルスクリプト」の書き方もある程度は知っておく必要がある。&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=RaspberryPi&amp;diff=11226</id>
		<title>RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=RaspberryPi&amp;diff=11226"/>
		<updated>2026-02-05T06:33:53Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===LED制御===&lt;br /&gt;
電源オンを「緑」、ストレージ書き込みを「赤」に。&lt;br /&gt;
&lt;br /&gt;
 $ dtparam=act_led_trigger=default-on        #green light on&lt;br /&gt;
 $ dtparam=pwr_led_trigger=mmc0         #microSD for red&lt;br /&gt;
&lt;br /&gt;
===基本構造===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;FHSに定義された基本構造&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ディレクトリ&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
|root。ファイルシステム全体を見渡せる頂点の場所&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
|binaries。一般ユーザ、管理者が利用するコマンドを配置 (142)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt;&lt;br /&gt;
|sytem binaries。主にシステム管理者が利用するコマンドを配置。ただし場合によっては一般ユーザも利用可能（例：init、ip、mount）(159)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt;&lt;br /&gt;
|システム起動時に必要なブートローダ関連のファイルや、カーネルイメージを配置 (26)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|device。システム起動時に接続されているデバイスがチェックされ、自動的に作成される。&amp;lt;code&amp;gt;/dev/null&amp;lt;/code&amp;gt; など (19)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;&lt;br /&gt;
|etcetera。システムやアプリの設定ファイル格納庫。初期ベル研のUNIX実装文書では単に「その他 = etcetera」のためのディレクトリだった (162)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
|library。&amp;lt;code&amp;gt;/bin/&amp;lt;/code&amp;gt; や &amp;lt;code&amp;gt;/sbin/&amp;lt;/code&amp;gt; などの基本アプリが利用する共有プログラムやモジュールの図書館 (23)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/media&amp;lt;/code&amp;gt;&lt;br /&gt;
|removable media。USB や DVD など外部ストレージの接続ポイント (0)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
|mount。外部ファイルシステムの一時的な接続ポイント (0)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/opt&amp;lt;/code&amp;gt;&lt;br /&gt;
|option。追加でインストールしたパッケージ(アプリ）を配置 (1)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/proc&amp;lt;/code&amp;gt;&lt;br /&gt;
|process。カーネル内部の情報にアクセスするための仮想ファイル (151)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/run&amp;lt;/code&amp;gt;&lt;br /&gt;
|実行時の可変データ (38)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
|temporary files。ファイルの一時的な置場。マシンを再起動すると内容が消える&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;&lt;br /&gt;
|全ユーザが共有するデータを配置。ユーティリティ、ライブラリ、コマンドなど (8)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
|一般ユーザ、管理者が利用するコマンドを配置(734)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/sbin&amp;lt;/code&amp;gt;&lt;br /&gt;
|システム管理者のみが実行できるコマンドを配置(117)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
|各種コマンドが利用するライブラリを配置 (51)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/include&amp;lt;/code&amp;gt;&lt;br /&gt;
|標準includeファイル群 (153)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/src&amp;lt;/code&amp;gt;&lt;br /&gt;
|source code。ソースコード（例：カーネルのソースコードとそのヘッダファイル群など）(0)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/share&amp;lt;/code&amp;gt;&lt;br /&gt;
|shared。x86など、アーキテクチャに依存しない共有データ。manフォルダなどもここ。(96)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/games&amp;lt;/code&amp;gt;&lt;br /&gt;
|なぜか必須のゲーム用ディレクトリ (0)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/local&amp;lt;/code&amp;gt;&lt;br /&gt;
|個人で作成したコマンドなどを配置。通常、さらにサブディレクトリとして &amp;lt;code&amp;gt;bin/&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;lib/&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;share/&amp;lt;/code&amp;gt; などを持つ (9)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt;&lt;br /&gt;
|variable。システム運用中にサイズが変化するファイルを配置（例：ログ、スプール、一時的電子メールファイルなど。別パーティションとすることもある）(12)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/log&amp;lt;/code&amp;gt;&lt;br /&gt;
|システムやアプリのログファイルを配置&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
|状態情報。プログラムの実行によって更新された永続性データなど。（例：データベース、パッケージングシステムのメタデータなど）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/cache&amp;lt;/code&amp;gt;&lt;br /&gt;
|アプリケーションのキャッシュデータ。時間のかかるI/Oや計算によって生成されたデータなど。従って再度生成することも可能なので、削除してもデータが失われるわけではない（時間は無駄となる可能性がある）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|ロックファイル群。使用中リソースを保持するファイル。&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/run&amp;lt;/code&amp;gt;&lt;br /&gt;
|最近のブート以降の走行中システムに関する情報。（例：現在ログイン中のユーザー、走行中のデーモンなど。FHS3.0 では /var/run は /run に置き換えられる。システムは後方互換性のために &amp;lt;code&amp;gt;/var/run&amp;lt;/code&amp;gt; を提供するか、&amp;lt;code&amp;gt;/var/run&amp;lt;/code&amp;gt; から &amp;lt;code&amp;gt;/run&amp;lt;/code&amp;gt; へのシンボリックリンクを提供しなければならない&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/spool&amp;lt;/code&amp;gt;&lt;br /&gt;
|処理待ち状態のタスクのスプール。（例：プリントキュー、未読メールなど）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
|一時ファイル置場。&amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; と異なりリブートしても内容が失われることはない&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11225</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11225"/>
		<updated>2026-02-05T04:38:51Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** 僕の目的|僕の目的&lt;br /&gt;
** Aランク・ボディ|Aランク・ボディ&lt;br /&gt;
* 基盤&lt;br /&gt;
** プログラミング・スタンス|開発スタンス&lt;br /&gt;
** MariaDB|MariaDB&lt;br /&gt;
** PouchDB|PouchDB&lt;br /&gt;
** Debian|Debian港&lt;br /&gt;
* モダン開発&lt;br /&gt;
** Next.js|Next.js&lt;br /&gt;
** Node.js|Node.js&lt;br /&gt;
** JavaScript|JavaScript&lt;br /&gt;
** ChatGPT|ChatGPT&lt;br /&gt;
* ユーティリティ&lt;br /&gt;
** Lv.up App|Lv.up App&lt;br /&gt;
** vi/vim|vi/vim&lt;br /&gt;
** Git/GitHub|Git/GitHub&lt;br /&gt;
** MediaWiki|MediaWiki&lt;br /&gt;
** WordPress|WordPress&lt;br /&gt;
*  Web配送センター&lt;br /&gt;
** Apache HTTP Server|Apache&lt;br /&gt;
** PHP|PHP&lt;br /&gt;
** HTML|HTML&lt;br /&gt;
** CSS|CSS&lt;br /&gt;
* ゲーム&lt;br /&gt;
** Minecraft|Minecraft&lt;br /&gt;
** the Isle|the Isle&lt;br /&gt;
** WiPo10|WiPo10&lt;br /&gt;
* 興味/関心&lt;br /&gt;
** Binaryシステム|Binaryシステム&lt;br /&gt;
** Unix/Linux|Unix/Linux&lt;br /&gt;
** RaspberryPi|ラズパイ&lt;br /&gt;
** Darwin|Darwin&lt;br /&gt;
** Kali|Kali&lt;br /&gt;
** Java|Java&lt;br /&gt;
** Swift|Swift&lt;br /&gt;
** Xcode|Xcode&lt;br /&gt;
** Python|Python&lt;br /&gt;
** Caddy|Caddy&lt;br /&gt;
* その他&lt;br /&gt;
** toBrain|toBrain&lt;br /&gt;
** toGenius|toGenius&lt;br /&gt;
** English|English&lt;br /&gt;
** Android|Android&lt;br /&gt;
** VirtualBox|VirtualBox&lt;br /&gt;
** Nginx|Nginx&lt;br /&gt;
** 正規表現|正規表現&lt;br /&gt;
** 書籍の要約|書籍の要約&lt;br /&gt;
** 参考文献|参考文献&lt;br /&gt;
** 荒野行動|荒野行動&lt;br /&gt;
** https://www.mediawiki.org/wiki/Help:Contents/ja|公式help&lt;br /&gt;
* Adobe製品&lt;br /&gt;
** Photoshop|Photoshop&lt;br /&gt;
** Illustrator|Illustrator&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11224</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=MediaWiki:Sidebar&amp;diff=11224"/>
		<updated>2026-02-05T04:38:06Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** 僕の目的|僕の目的&lt;br /&gt;
** Aランク・ボディ|Aランク・ボディ&lt;br /&gt;
* 基盤&lt;br /&gt;
** プログラミング・スタンス|開発スタンス&lt;br /&gt;
** MariaDB|MariaDB&lt;br /&gt;
** Debian|Debian港&lt;br /&gt;
** PouchDB|PouchDB&lt;br /&gt;
* モダン開発&lt;br /&gt;
** Next.js|Next.js&lt;br /&gt;
** Node.js|Node.js&lt;br /&gt;
** JavaScript|JavaScript&lt;br /&gt;
** ChatGPT|ChatGPT&lt;br /&gt;
* ユーティリティ&lt;br /&gt;
** Lv.up App|Lv.up App&lt;br /&gt;
** vi/vim|vi/vim&lt;br /&gt;
** Git/GitHub|Git/GitHub&lt;br /&gt;
** MediaWiki|MediaWiki&lt;br /&gt;
** WordPress|WordPress&lt;br /&gt;
*  Web配送センター&lt;br /&gt;
** Apache HTTP Server|Apache&lt;br /&gt;
** PHP|PHP&lt;br /&gt;
** HTML|HTML&lt;br /&gt;
** CSS|CSS&lt;br /&gt;
* ゲーム&lt;br /&gt;
** Minecraft|Minecraft&lt;br /&gt;
** the Isle|the Isle&lt;br /&gt;
** WiPo10|WiPo10&lt;br /&gt;
* 興味/関心&lt;br /&gt;
** Binaryシステム|Binaryシステム&lt;br /&gt;
** Unix/Linux|Unix/Linux&lt;br /&gt;
** RaspberryPi|ラズパイ&lt;br /&gt;
** Darwin|Darwin&lt;br /&gt;
** Kali|Kali&lt;br /&gt;
** Java|Java&lt;br /&gt;
** Swift|Swift&lt;br /&gt;
** Xcode|Xcode&lt;br /&gt;
** Python|Python&lt;br /&gt;
** Caddy|Caddy&lt;br /&gt;
* その他&lt;br /&gt;
** toBrain|toBrain&lt;br /&gt;
** toGenius|toGenius&lt;br /&gt;
** English|English&lt;br /&gt;
** Android|Android&lt;br /&gt;
** VirtualBox|VirtualBox&lt;br /&gt;
** Nginx|Nginx&lt;br /&gt;
** 正規表現|正規表現&lt;br /&gt;
** 書籍の要約|書籍の要約&lt;br /&gt;
** 参考文献|参考文献&lt;br /&gt;
** 荒野行動|荒野行動&lt;br /&gt;
** https://www.mediawiki.org/wiki/Help:Contents/ja|公式help&lt;br /&gt;
* Adobe製品&lt;br /&gt;
** Photoshop|Photoshop&lt;br /&gt;
** Illustrator|Illustrator&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=RaspberryPi&amp;diff=11223</id>
		<title>RaspberryPi</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=RaspberryPi&amp;diff=11223"/>
		<updated>2026-02-05T04:36:21Z</updated>

		<summary type="html">&lt;p&gt;Y: /* LED制御 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===LED制御===&lt;br /&gt;
電源オンを「緑」、ストレージ書き込みを「赤」に。&lt;br /&gt;
&lt;br /&gt;
 dtparam=act_led_trigger=default-on        #green light on&lt;br /&gt;
 dtparam=pwr_led_trigger=mmc0         #microSD for red&lt;br /&gt;
&lt;br /&gt;
===基本構造===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; summary=&amp;quot;FHSに定義された基本構造&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!ディレクトリ&lt;br /&gt;
!説明&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
|root。ファイルシステム全体を見渡せる頂点の場所&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
|binaries。一般ユーザ、管理者が利用するコマンドを配置 (142)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt;&lt;br /&gt;
|sytem binaries。主にシステム管理者が利用するコマンドを配置。ただし場合によっては一般ユーザも利用可能（例：init、ip、mount）(159)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt;&lt;br /&gt;
|システム起動時に必要なブートローダ関連のファイルや、カーネルイメージを配置 (26)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/dev&amp;lt;/code&amp;gt;&lt;br /&gt;
|device。システム起動時に接続されているデバイスがチェックされ、自動的に作成される。&amp;lt;code&amp;gt;/dev/null&amp;lt;/code&amp;gt; など (19)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;&lt;br /&gt;
|etcetera。システムやアプリの設定ファイル格納庫。初期ベル研のUNIX実装文書では単に「その他 = etcetera」のためのディレクトリだった (162)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
|library。&amp;lt;code&amp;gt;/bin/&amp;lt;/code&amp;gt; や &amp;lt;code&amp;gt;/sbin/&amp;lt;/code&amp;gt; などの基本アプリが利用する共有プログラムやモジュールの図書館 (23)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/media&amp;lt;/code&amp;gt;&lt;br /&gt;
|removable media。USB や DVD など外部ストレージの接続ポイント (0)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/mnt&amp;lt;/code&amp;gt;&lt;br /&gt;
|mount。外部ファイルシステムの一時的な接続ポイント (0)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/opt&amp;lt;/code&amp;gt;&lt;br /&gt;
|option。追加でインストールしたパッケージ(アプリ）を配置 (1)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/proc&amp;lt;/code&amp;gt;&lt;br /&gt;
|process。カーネル内部の情報にアクセスするための仮想ファイル (151)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/run&amp;lt;/code&amp;gt;&lt;br /&gt;
|実行時の可変データ (38)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
|temporary files。ファイルの一時的な置場。マシンを再起動すると内容が消える&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;&lt;br /&gt;
|全ユーザが共有するデータを配置。ユーティリティ、ライブラリ、コマンドなど (8)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
|一般ユーザ、管理者が利用するコマンドを配置(734)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/sbin&amp;lt;/code&amp;gt;&lt;br /&gt;
|システム管理者のみが実行できるコマンドを配置(117)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
|各種コマンドが利用するライブラリを配置 (51)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/include&amp;lt;/code&amp;gt;&lt;br /&gt;
|標準includeファイル群 (153)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/src&amp;lt;/code&amp;gt;&lt;br /&gt;
|source code。ソースコード（例：カーネルのソースコードとそのヘッダファイル群など）(0)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/share&amp;lt;/code&amp;gt;&lt;br /&gt;
|shared。x86など、アーキテクチャに依存しない共有データ。manフォルダなどもここ。(96)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/games&amp;lt;/code&amp;gt;&lt;br /&gt;
|なぜか必須のゲーム用ディレクトリ (0)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/usr/local&amp;lt;/code&amp;gt;&lt;br /&gt;
|個人で作成したコマンドなどを配置。通常、さらにサブディレクトリとして &amp;lt;code&amp;gt;bin/&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;lib/&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;share/&amp;lt;/code&amp;gt; などを持つ (9)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt;&lt;br /&gt;
|variable。システム運用中にサイズが変化するファイルを配置（例：ログ、スプール、一時的電子メールファイルなど。別パーティションとすることもある）(12)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/log&amp;lt;/code&amp;gt;&lt;br /&gt;
|システムやアプリのログファイルを配置&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/lib&amp;lt;/code&amp;gt;&lt;br /&gt;
|状態情報。プログラムの実行によって更新された永続性データなど。（例：データベース、パッケージングシステムのメタデータなど）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/cache&amp;lt;/code&amp;gt;&lt;br /&gt;
|アプリケーションのキャッシュデータ。時間のかかるI/Oや計算によって生成されたデータなど。従って再度生成することも可能なので、削除してもデータが失われるわけではない（時間は無駄となる可能性がある）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/lock&amp;lt;/code&amp;gt;&lt;br /&gt;
|ロックファイル群。使用中リソースを保持するファイル。&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/run&amp;lt;/code&amp;gt;&lt;br /&gt;
|最近のブート以降の走行中システムに関する情報。（例：現在ログイン中のユーザー、走行中のデーモンなど。FHS3.0 では /var/run は /run に置き換えられる。システムは後方互換性のために &amp;lt;code&amp;gt;/var/run&amp;lt;/code&amp;gt; を提供するか、&amp;lt;code&amp;gt;/var/run&amp;lt;/code&amp;gt; から &amp;lt;code&amp;gt;/run&amp;lt;/code&amp;gt; へのシンボリックリンクを提供しなければならない&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/spool&amp;lt;/code&amp;gt;&lt;br /&gt;
|処理待ち状態のタスクのスプール。（例：プリントキュー、未読メールなど）&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
|一時ファイル置場。&amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; と異なりリブートしても内容が失われることはない&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
	<entry>
		<id>https://skillset.wiki/index.php?title=MariaDB&amp;diff=11222</id>
		<title>MariaDB</title>
		<link rel="alternate" type="text/html" href="https://skillset.wiki/index.php?title=MariaDB&amp;diff=11222"/>
		<updated>2026-02-03T13:43:37Z</updated>

		<summary type="html">&lt;p&gt;Y: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ファイル:mariadb-logo.jpeg|thumb|MariaDB|300px]]&lt;br /&gt;
[[ファイル:library.jpg|thumb|データ基地|300px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;MariaDB&#039;&#039;&#039; とは&amp;lt;strong&amp;gt;データ基地を管理する&amp;lt;/strong&amp;gt;ためのApp。C言語製。SQLで基地にあるデータを高速に参照/更新/計算したりできる。アプリは基本的にデータ基地と連携しながら動く。ゆえに、&amp;lt;u&amp;gt;アプリの本質とはデータベース&amp;lt;/u&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;当然ながら&amp;lt;/strong&amp;gt;、MariaDB の[https://mariadb.org/documentation/ 公式の説明書]、[https://mariadb.com/kb/en/training-tutorials/ 公式チュートリアル] は一通り読んでおく。[[MySQLリファレンス]] も参照。&lt;br /&gt;
&lt;br /&gt;
==セットアップ==&lt;br /&gt;
# 設定ファイル etc/my.cnf のモード、所有者、システム変数を確認&lt;br /&gt;
# /var/lib/mysqlディレクトリの所有者を mysql に変更&lt;br /&gt;
# ローカル利用ならリモート接続を禁止&lt;br /&gt;
# 日本語入力のズレを解消&lt;br /&gt;
&lt;br /&gt;
 $ mysqladmin -u root -p status&lt;br /&gt;
 $ ss -tan&lt;br /&gt;
&lt;br /&gt;
 SHOW VARIABLES LIKE &#039;char%&#039;;&lt;br /&gt;
 $ vi /etc/my.cnf&lt;br /&gt;
 &lt;br /&gt;
 [mysqld]&lt;br /&gt;
 skip-networking&lt;br /&gt;
 character-set-server = utf8mb4&lt;br /&gt;
 collation-server = utf8mb4_general_ci&lt;br /&gt;
 &lt;br /&gt;
 [client]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
 &lt;br /&gt;
 [mysql]&lt;br /&gt;
 default-character-set = utf8mb4&lt;br /&gt;
&lt;br /&gt;
* character_set_system は MariaDB の内部システム用の設定 だから、utf8mb3 のままでOK&lt;br /&gt;
&lt;br /&gt;
==データベースの本質==&lt;br /&gt;
データベースの本質は「&amp;lt;u&amp;gt;実世界のパラレルワールド&amp;lt;/u&amp;gt;」をマシンの中に創造すること。ゆえに、データベースとは人間の認識を反映する鏡だと言える。&lt;br /&gt;
&lt;br /&gt;
実世界（やその状態）を「パラレルワールド」としてマシンの中に複製すると、遠隔マシンにバックアップしたり、自作アプリと連携させたり、AIと抱き合わせて情報分析したりと、色々なことができるようになる。&lt;br /&gt;
&lt;br /&gt;
RDB の場合、主にリレーション（テーブル相互の関係性）という表現手法に沿って実世界（やその状態）を整理しつつパラレルワールド化していくことになる。ちなみに、他の表現手法には NoSQL や DIT などがある。&lt;br /&gt;
&lt;br /&gt;
===実世界の「本質」を適切に表現===&lt;br /&gt;
データベースの活用とはつまり実世界データ構造のパラレルワールド化。ゆえに、実世界を適切に認識し、その本質的な状態を適切にデータベースにアップロードしていく必要がある。&lt;br /&gt;
&lt;br /&gt;
しかし、実世界の本質的な状態とは流動的で常に変化していくもの。この性質をしっかりと踏まえ、将来を見越したデータベース設計をする必要がある。&lt;br /&gt;
&lt;br /&gt;
ゆえに、データ構造パラレルワールド化の際には以下３点が特に大切。&lt;br /&gt;
&lt;br /&gt;
# 実世界の状態や本質を適切に認識する能力&lt;br /&gt;
# 目的から逆算してデータを整理する能力&lt;br /&gt;
# その状態を適切に表現する能力&lt;br /&gt;
&lt;br /&gt;
以上３点があれば、その人は適切にデータベースを設計できる。そのような人は&amp;lt;u&amp;gt;自分の部屋と同様にデータたちのお部屋も綺麗に整理&amp;lt;/u&amp;gt;することができるはず。&lt;br /&gt;
&lt;br /&gt;
===マシンパワーが大前提===&lt;br /&gt;
データを管理するだけなら別に紙やノートを使っても良いはず。わざわざマシンにデータ管理を任せるのだから「マシンにしかできない何か」を強く期待しているはず。つまり、マシンパワーの活用と目的の実現とのバランスをしっかり前提とした上でテーブル設計やチューニングすることが大切。&lt;br /&gt;
&lt;br /&gt;
データベース設計においては特に、以下２点を強く意識すべき。&lt;br /&gt;
&lt;br /&gt;
# マシンパワーの活用を大前提としたデータベース設計&lt;br /&gt;
# 目的から逆算した実世界データ構造のパラレルワールド化&lt;br /&gt;
&lt;br /&gt;
==セキュリティ==&lt;br /&gt;
 DELETE FROM mysql.user WHERE User=&#039;root&#039; AND Host NOT IN (&#039;localhost&#039;);&lt;br /&gt;
&lt;br /&gt;
リモートから root で MariaDB にログインできると危険なので削除。&lt;br /&gt;
&lt;br /&gt;
===rootのパスワードリセット===&lt;br /&gt;
一旦MariaDBのプロセスを落としてからセーフモードで起動、パスワードを設定してMariaDBのプロセスを再度起動させてやるだけ。&lt;br /&gt;
&lt;br /&gt;
 # systemctl stop mariadb&lt;br /&gt;
 # mysqld_safe --skip-grant-tables &amp;amp;&lt;br /&gt;
 alter user &#039;root&#039;@&#039;localhost&#039; identified by &#039;new_passwd&#039;;&lt;br /&gt;
 # systemctl stop mariadb&lt;br /&gt;
 # systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
以上。できなかったら「flush privileges」してから。&lt;br /&gt;
&lt;br /&gt;
==データベース設計==&lt;br /&gt;
Database normalization。データベースを正常な状態にしておく。&lt;br /&gt;
&lt;br /&gt;
===要点リスト===&lt;br /&gt;
* そのテーブルの主人公は誰（なに）なのかを主キーで明確にする&lt;br /&gt;
* そのテーブルはどのような「状態」の述語なのかを明確にする&lt;br /&gt;
* 実世界において２つの事柄を同時に認識することはできない&lt;br /&gt;
* ゆえに認識の鏡であるテーブルにも２つの概念を混ぜてはいけない&lt;br /&gt;
* ２つの概念が混じっているように感じるならテーブルを分けるべき&lt;br /&gt;
* テーブルを分けた時は外部キーを利用して両テーブルの整合性を保証&lt;br /&gt;
* １つの変更が多数箇所の修正に結びつく場合もテーブルを分けられるかも&lt;br /&gt;
* カラムに定義する属性は実世界の「状態」を適切に表現しているべき&lt;br /&gt;
* 例えば、id と cat_no は違う。id は各要素のID、cat_no はカテゴリ番号&lt;br /&gt;
* でも外部キーを追加するには一意性制約があるので上記２つをまとめても良い&lt;br /&gt;
* 命名はすべて短くて適切で本質的な表現であるべき&lt;br /&gt;
* １つの「状態」を２度も記述するような冗長なカラム設計は避けるべき&lt;br /&gt;
* NULL を許すと世界が 3VL になってしまいアプリ設計が非常に複雑になる&lt;br /&gt;
* NULL を許すとそのテーブルはオプティマイザとの相性が悪くなる&lt;br /&gt;
* NULL を許すとそのテーブルはインデックスとも相性が悪くなる&lt;br /&gt;
* NULL が入る余地があるということは DB設計に問題があるかも&lt;br /&gt;
* NULL 発生を引き起こす「ありえないデータ」は将来、悩みのタネになるかも&lt;br /&gt;
* SQL にはそもそも順序という概念がないので手続き型ロジックの実装は高負荷&lt;br /&gt;
* ゆえに、手続き型のロジックに頼るのは最後の手段にする&lt;br /&gt;
* 空間や時系列を表現したいのであれば RDB はやめる&lt;br /&gt;
&lt;br /&gt;
==チューニング==&lt;br /&gt;
&lt;br /&gt;
扱うデータ量が１００万件程度なら、そもそもマシンに負担はかからないのでチューニングする必要はあまりない。しかし、&amp;lt;strong&amp;gt;日頃からチューニングを意識したSQLに慣れておくのは良い&amp;lt;/strong&amp;gt;こと。&lt;br /&gt;
&lt;br /&gt;
===捜索範囲は適切に限定する===&lt;br /&gt;
* データサイズが小さいとパフォーマンス問題は表面化しない。テストはビッグデータで&lt;br /&gt;
* WHERE句を利用すれば総なめ捜索は回避されるのでマシンリソースを無駄にしない&lt;br /&gt;
* SELECT int, name など必要なデータだけを取得すればマシンリソースを無駄にしない&lt;br /&gt;
* 捜索データ１億件など、膨大なデータを捜索する場合は利用列にインデックスを作成&lt;br /&gt;
* かつ、カーディナリティ（値の多様性）が高い列にのみインデックスを作成&lt;br /&gt;
* インデックスは更新の負担が大きいため無闇矢鱈に作成しない&lt;br /&gt;
* 実際に捜索プランを立てている裏方オプティマイザの働きやすさを意識する&lt;br /&gt;
&lt;br /&gt;
===アプリ制作において===&lt;br /&gt;
* トランザクションを開いて閉じる処理を実装したアプリ開発をしてると&amp;lt;u&amp;gt;Sleep増殖ロック&amp;lt;/u&amp;gt;かかる時がある&lt;br /&gt;
* SELECT * は使わない。必要なデータを明示して取得する&lt;br /&gt;
* データベースを変更しても大丈夫なようにデータアクセスロジックを汎用的にしておく&lt;br /&gt;
* Abort発生の可能性はゼロにならないので Abort発生に備えてエラー処理は必ず実装しておく&lt;br /&gt;
* 書き込まれるデータの整合性を担保するためにデータ変更はトランザクションを利用する&lt;br /&gt;
&lt;br /&gt;
===スレッドプール機能を使う===&lt;br /&gt;
膨大な数のクライアントからの膨大な数の SQL を処理する場合、スレッドプール機能が役立つ。スレッドプール機能の設定はとても簡単で、稼働中でも動的に設定を変更できる。&lt;br /&gt;
&lt;br /&gt;
 # my.cnf&lt;br /&gt;
 thread_poolmax_threads = 500&lt;br /&gt;
 thread_pool_idle_timeout = 100000&lt;br /&gt;
 &lt;br /&gt;
 mysql &amp;gt; show global status like &#039;threadpool%&#039;;&lt;/div&gt;</summary>
		<author><name>Y</name></author>
	</entry>
</feed>