🔥

Kilo(text editor)を動かしてみた。on Windows11

2023/09/03に公開

※何回か失敗を繰り返し、最終的にWSL2(Ubuntu)で動かせるようになりました
 ・Windows11
 ・WSL2(Ubuntu)

はじめに

Kiloとは?
Kilo is a small text editor in less than 1K lines of code (counted with cloc).
GitHub - antirez/kilo: A text editor in less than 1000 LOC with syntax highlight and search.

チュートリアルがこちらに公開されています。(チュートリアルの作者と、Kilo作者は別の方のようです。)
Build Your Own Text Editor

チュートリアルに環境構築の説明があります。
1. Setup | Build Your Own Text Editor

環境構築

私の場合もともと、MSYS2でC++を使えるようにしていました。
なので、とりあえずMSYS2のターミナルから、kiloのmakeを実行しましたが、エラーになりました。

$ make
cc -o kilo kilo.c -Wall -W -pedantic -std=c99
kilo.c:41:10: fatal error: termios.h: No such file or directory
   41 | #include <termios.h>
      |          ^~~~~~~~~~~
compilation terminated.
make: *** [Makefile:4: kilo] Error 1

調べてみると、termios.hはWindows上ではつかえないようでした。
ただ、cygwinを使えばだいじょうぶかも、という情報をみつけたので、cygwinも試してみました。

すると、警告メッセージは出ましたがmakeはできました。
ですが、kiloを起動すると、なぜかプロンプロが返ってきて。kiloの画面に重なってしまい動作がおかしい状態でした。
キーボードからの入力が、プロンプトに入力されてしまい、kiloを操作することができません。

そこであらためて、WSL2(Windows Subsystem for Linux 2)で試しました。

仮想化支援機能の有効化
自分のPCでは不要でした。
PCによっては、以下の作業が必要になるようです。
  ・物理PC: UEFIでCPUの仮想化支援機能を有効にする
  ・仮想マシン:仮想マシンの設定で「仮想化のネスト」機能を有効にする

インストールできるWSL用Linuxディストリビューションの確認

wsl -l -o

インストールできる有効なディストリビューションの一覧を次に示します。
既定の分布は ' * ' で表されます。
 'wsl --install -d <Distro>'を使用してインストールします。

  NAME                                   FRIENDLY NAME
* Ubuntu                                 Ubuntu
  Debian                                 Debian GNU/Linux
  kali-linux                             Kali Linux Rolling
  Ubuntu-18.04                           Ubuntu 18.04 LTS
  Ubuntu-20.04                           Ubuntu 20.04 LTS
  Ubuntu-22.04                           Ubuntu 22.04 LTS
  OracleLinux_7_9                        Oracle Linux 7.9
  OracleLinux_8_7                        Oracle Linux 8.7
  OracleLinux_9_1                        Oracle Linux 9.1
  openSUSE-Leap-15.5                     openSUSE Leap 15.5
  SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
  SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
  openSUSE-Tumbleweed                    openSUSE Tumbleweed

インストール

wsl --install

要求された操作には管理者特権が必要です。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
インストール中: Ubuntu
Ubuntu はインストールされました。
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。

PC再起動します

ユーザ・パスワード設定
再起動後にターミナルが起動します。Linuxのユーザ・パスワードを設定します。

Ubuntu は既にインストールされています。
Ubuntu を起動しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: [ユーザ名]
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


This message is shown once a day. To disable it please create the
/home/[ユーザ名]/.hushlogin file.

設定後、Linuxのプロンプトが返ってきます。

C++環境構築
こちらの、VSCodeのチュートリアルを参考にしました。(kiloで必要なのはCだと思いますが)
Get Started with C++ on Linux in Visual Studio Code

インストール可能なパッケージの「一覧」を更新

sudo apt-get update

build-essential, gdbをインストールする

sudo apt-get install build-essential gdb

これでmakeできるようになったはず。

Windowsでは以下の場所で、Linux上のファイルを見れました。
とりあえずユーザのホームディレクトリに、kiloのファイルを配置しました。

\\wsl.localhost\Ubuntu\home\[ユーザ名]

Linuxプロンプト上で、kiloのディレクトリに移動して、makeを実行し、kiloを起動します

make
./kilo test.txt

起動直後 入力後

これでようやく環境構築ができたので、チュートリアルを進めてみようと思います。

※チュートリアルの作者のページを見てみると、DBを作るチュートリアルもありました。ちょっと気になっています。
How Does a Database Work? | Let’s Build a Simple Database

Discussion