Kilo(text editor)を動かしてみた。on Windows11
※何回か失敗を繰り返し、最終的に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