Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

neovim: Add configs #206

Open
m-b-t-n opened this issue Jan 6, 2025 · 2 comments
Open

neovim: Add configs #206

m-b-t-n opened this issue Jan 6, 2025 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@m-b-t-n
Copy link
Owner

m-b-t-n commented Jan 6, 2025

I plan to migrate from Vim to Neovim

@m-b-t-n m-b-t-n added the enhancement New feature or request label Jan 6, 2025
@m-b-t-n m-b-t-n self-assigned this Jan 6, 2025
m-b-t-n added a commit that referenced this issue Jan 6, 2025
m-b-t-n added a commit that referenced this issue Jan 6, 2025
m-b-t-n added a commit that referenced this issue Jan 6, 2025
m-b-t-n added a commit that referenced this issue Jan 6, 2025
 Install `lazy.nvim` at startup when it hasn't installed yet.
 https://lazy.folke.io/installation

 Why is `lazy-lock.json` included into this commit?
 -> See at LazyVim/LazyVim#850

 refs #206
m-b-t-n added a commit that referenced this issue Jan 6, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
 Currently there is no plugins under the directory,
 so I make disable to load from them.
 (It causes an error when startup)

 refs #206
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 7, 2025
m-b-t-n added a commit that referenced this issue Jan 15, 2025
m-b-t-n added a commit that referenced this issue Jan 24, 2025
@m-b-t-n
Copy link
Owner Author

m-b-t-n commented Jan 28, 2025

I was not sure how to migrate vimsettings written by vimscript to lua.
LLM taught me how to do that.


Vimscriptの設定をLuaに変換する場合、以下のように書くことができます:

vim.g.cheatsheet_cheat_file = '~/dotfiles/vim/cheatsheet.md'

説明:

  • Vimscriptのg:グローバル変数は、Luaではvim.gとしてアクセスします
  • 変数名のシャープ記号(#)は、Luaではアンダースコア(_)に置き換えます
  • 文字列は単引用符(')でも二重引用符(")でも指定可能です

この設定は、init.luaやその他のLua設定ファイルに記述することができます。

Lazy.nvimのプラグインスペックの形式で書くと、以下のようになります:

return {
  "reireias/vim-cheatsheet",
  config = function()
    vim.g.cheatsheet_cheat_file = '~/dotfiles/vim/cheatsheet.md'
  end,
}

説明:

  • returnの後に設定用のテーブルを記述します
  • 最初の文字列にプラグインの名前(GitHubのリポジトリ)を指定します
  • config関数内で、プラグインの設定を行います
  • この設定は、通常lua/plugins/cheatsheet.luaのような専用ファイルに保存します

オプションとして、以下のような追加設定も可能です:

return {
  "reireias/vim-cheatsheet",
  lazy = true,  -- 必要時に遅延読み込み
  keys = {      -- キーマッピングを指定すると、その時に読み込まれます
    { "<leader>?", "<cmd>Cheatsheet<cr>", desc = "Open Cheatsheet" },
  },
  config = function()
    vim.g.cheatsheet_cheat_file = '~/dotfiles/vim/cheatsheet.md'
  end,
}

エラーの原因は変数名の変換が適切でなかったことにあります。修正した設定は以下になります:

return {
  "reireias/vim-cheatsheet",
  config = function()
    -- #を含む元の変数名をそのまま使用
    vim.g['cheatsheet#cheat_file'] = '~/dotfiles/vim/cheatsheet.md'
  end,
}

説明:

  • Vimscriptの変数名に#が含まれる場合、Luaではvim.g['変数名']の形式で指定する必要があります
  • 先ほどの回答で#_に変換する方法を提案しましたが、このプラグインの場合は元の変数名をそのまま使用する必要があります

この修正により、:Cheatコマンドが正常に動作するはずです。

補足として、この事例から学べる重要なポイントをまとめておきます:

  1. VimscriptからLuaへの変換において、特殊文字(#など)を含む変数名を扱う場合は、vim.g['変数名']の形式を使用します。

  2. プラグインの設定を移行する際は、プラグインが期待する正確な変数名を維持することが重要です。

今後も他のVimscript設定をLuaに移行する際に、同様のケースがありましたらこの方法を活用してください。

@m-b-t-n
Copy link
Owner Author

m-b-t-n commented Jan 28, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant