あらゆるもののコード化 -Vim, Git, LLM-

Vimのコードバインドを深く考えてみたい。
vimの思想は、効率的な編集のためならコマンドが増えてもよいというものです。
学習コストより習得後の効率を重視しています。

Everything as Code

ファイルにはテキストファイルとバイナリファイルがあります。
テキストファイルは実際ある種のバイナリファイルですが、人間が読めるようにエンコードされたものです。
Everything as Codeの思想では、テキストファイルを編集することが中心になります。
この考え方は素晴らしいものだと思います。私たちはよりテキストファイルを編集するようになります。
コードも設定ファイルもドキュメントも、すべてテキストファイルです。
テキストファイルを編集するためのツールとしてvimは非常に優れています。

また、Gitもテキストファイルの変更履歴を管理するための優れたツールです。

テキストファイルを定義する

テキストファイルはバイナリファイルを文字コードによってエンコードしたものです。
たとえば、UTF-8によって書かれたHello.txtというファイルがあるとして、
		
Hello, World!
		
	
このファイルは、バイナリデータとしては以下のように表現されます。
			
48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21 0a
		
	

このバイナリデータをUTF-8として解釈すると、"Hello, World!"というテキストになります。

Everything as Codeの問題点

Everything as Codeの考え方にはいくつかの問題点があります。
まず、この思想はコードを読めば理解できるという前提に基づいています。
しかし、実際にはコードはブラックボックス化したライブラリのインポートや、複雑なアルゴリズムの実装など、コードを読んでも理解できない場合があります。
また、テキストファイルとして表現できない情報も存在します。
たとえば、データベースの状態はテキストファイルとして管理することが難しいです。

この問題は、畢竟、言語の限界に起因します。
人は言語によって思考し、コミュニケーションを行いますが、言語には表現できる範囲に限界があります。
したがって、すべてをコード化しようとする試みは、言語の限界に直面することになります。
しかしそれは同時に、人間にはそうするしかないという現実を受け入れることでもあります。

vim

vimと日本語

vimは日本語より英語の入力に向いています。
日本語入力では、IMEのオンオフが必要になるため、どうしても効率が落ちます。
それから、word単位での移動や選択が日本語ではうまく機能しません。
やはり、vimは英語圏での使用を念頭に置いて設計されているところがあります。

Git