vimのオプションをluaへ移行する

vimのオプションを移行していきます。

vimのオプションとは?

まず、vimのオプションとはvimscriptでsetを使って設定される項目を差しています
例えばこのような項目

set expandtab

vimオプション一覧

neovimではデフォルトでオンになっているオプションもあるので注意
vimとneovimでのデフォルトでのオプションの差分

vimのオプションのluaでの書き方

以下のサイトに沿って移行します

Lua-guide - Neovim docs
Neovim user documentation

autogroupのluaでの書き方

Lua-guide - Neovim docs
Neovim user documentation

上記のurlではコマンド指定のkeyはcmdでしたがエラーがでました。’invalid key: cmd’
こっちではcommandになってたので入ったmandにしてみたらエラーなくなりました。

アプデでも入ったのかな

別ファイルの読み込み

requireを使うことで別ファイルを読み込むことができます。
require(“mod”)したときに探索してくれるパスは、runtimepathがfooとbarのとき

foo/lua/mod.lua
foo/lua/mod/init.lua
bar/lua/mod.lua
bar/lua/mod/init.lua
foo/lua/mod.so
foo/lua/mod.dll
bar/lua/mod.so
bar/lua/mod.dll

runtimepathについては以下

https://neovim.io/doc/user/options.html#’runtimepath

とりあえず、runtimepathには~/.config/nvimが含まれているので、以下のファイルは読み込める

~/.config/nvim/lua/mod.lua

vimオプション移行完了

移行後こんな感じになりました

vim.opt.expandtab = true
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.softtabstop = 4
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.number = true
vim.opt.textwidth = 0
vim.opt.smartindent = true
vim.opt.clipboard = "unnamed"
vim.opt.fileencodings = {"utf-8","iso-2022-jp","euc-jp","sjis","cp932","latin1"}
vim.opt.fileformats = {"unix","mac","dos"}
vim.opt.iskeyword:append({"-", "_"})

vim.api.nvim_create_augroup("fileTypeIndent", {
    clear = false
})

vim.api.nvim_create_autocmd({"BufNewFile", "BufRead"},{
    pattern = {"*.html", "*.css", ".scss", "javascript"},
    group = "fileTypeIndent",
    command = "setlocal tabstop=2 shiftwidth=2",
})
vim.api.nvim_create_autocmd({"BufNewFile", "BufRead"},{
    pattern = {"c", "cpp", "java"},
    group = "fileTypeIndent",
    command = "setl cindent"
})

コメント

タイトルとURLをコピーしました