はじめに
Vim駅伝への参加をきっかけとして、既存のNeovim設定(Vim scriptで書かれたinit.vim
)をLuaで書き換える義務が発生しました。
そもそも使ったことのない言語で、Vim界隈外では名前を聞いたことすらありませんでした。
せっかくの機会なので、入門してみたいと思います。
(本記事は単なるLuaの入門体験記であり、Neovimの記事ではありません。)
著者について
matoruruといいます。ちなみにmatoruruは猫😺です。
matoruruとは、私のTwitterやGitHubのアイコンにもなっている黄色いやつのことです。
matoruruは全てフィボナッチ数列に従ったサイズの真円で構成されています。
VimからNeovimへ移り住んできたVimmerです。最近は諸事情によりVS Codeを使っていますが、Vim拡張でしのいでいます。
・・・失礼しました、ここから本編です🐈
環境
Ubuntu 20.04.5 LTS
インストール
> sudo apt install lua
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package lua is a virtual package provided by:
lua5.3:i386 5.3.3-1.1ubuntu2
lua5.2:i386 5.2.4-1.1build3
lua5.1:i386 5.1.5-8.1build4
lua50 5.0.3-8build1
lua5.3 5.3.3-1.1ubuntu2
lua5.2 5.2.4-1.1build3
lua5.1 5.1.5-8.1build4
You should explicitly select one to install.
E: Package 'lua' has no installation candidate
怒られてしまいました。バージョンを指定する必要があるそうです。
以下のようにしたらインストールできました。
sudo apt install lua5.3
インストールできているかどうか確認します。
> lua -v
Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio
大丈夫そうですね。
ファイルの拡張子は.lua
大切です。
実行方法
> lua ファイル名
コメント
-- コメントは「--」で書く
--[[
複数行
コメント
は
こんな感じ
]]--
エントリーポイントはない
CやJavaのようにmain関数のような入り口はないらしい。
聞いていたとおりスクリプト言語ですね。上から順に実行される。
変数
宣言せずに使える。Bashとかと同じですね。
データ型
宣言をしないので、変数自体に型はない。
でも値にはデータ型がある。JavaScriptとかと同じ動的型言語です。
x = "Hello, world!"
print(x)
-- Hello, world!
念願のハローワールドをしました。標準出力はprint
関数です。
数字や文字列、bool型も使えるみたい。
x = 1
print(x)
-- 1
x = 10
print(x)
-- 10
x = true
print(x)
-- true
関数も変数に入れられるらしい。(関数型プログラミングもいけそうだ・・・)
少し試してみる。
myprint = print
myprint("worked!")
-- worked!
お!動いた😺
関数の引数としても関数を渡せるらしいので、関数型プログラミングができちゃいますね。
とりあえず入門記事の第1章はここまでにします。
最後に
記事を読んでくださってありがとうございます!
Twitterフォローしていただけると記事を書き続けるモチベーションになります😺
https://twitter.com/_matoruru
参考