fittencode.nvim icon indicating copy to clipboard operation
fittencode.nvim copied to clipboard

基于lazyvim,安装fitten后,Tab键无法补全

Open htx1020 opened this issue 1 year ago • 10 comments

基于lazyvim,安装fitten后,Tab键无法补全。 不知道是不是跟lazy自带的补全冲突了。 方便的话,指导一下。目前使用其他快捷键替代,也可正常使用

htx1020 avatar Aug 15 '24 01:08 htx1020

@htx1020

您试一下这个命令,看看 Tab 映射情况

verbose imap <tab>

正常的话,应该是如下输出

:verbose imap <tab>
 i  <Tab>       * <Lua 111: E:/DataCenter/onWorking/fittencode.nvim/lua/fittencode/engines/inline/init.lua:630>
                  Last set from Lua (run Nvim with -V1 for more details)     

luozhiya avatar Aug 15 '24 01:08 luozhiya

Lazyvim对Tab键,也有配置,故而造成冲突,把Lazyvim的Tab键定义关闭后,fitten Tab键就能正常工作。非常感谢!

htx1020 avatar Aug 19 '24 05:08 htx1020

应该可以使用has_suggestions这个api

code = require("...")
vim.keymap.set("i", "<Tab>", function()
      if code.has_suggestions() then
          autopairs.disable()
          code. accept_line()
          autopairs.enable()
      else
          vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<Tab>", true, false, true), "n", false)
      end
  end, { silent = true, desc = "code accept" })

这是一个没有经过测试的demo,建议将tab设置成这样,这样的话不会去干扰CMP的TAB设置

mochouaaaaa avatar Aug 19 '24 07:08 mochouaaaaa

应该可以使用has_suggestions这个api

code = require("...")
vim.keymap.set("i", "<Tab>", function()
      if code.has_suggestions() then
          autopairs.disable()
          code. accept_line()
          autopairs.enable()
      else
          vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("<Tab>", true, false, true), "n", false)
      end
  end, { silent = true, desc = "code accept" })

这是一个没有经过测试的demo,建议将tab设置成这样,这样的话不会去干扰CMP的TAB设置

fitten的插件随时都会提示,所以替代传统的补全是没问题的。 补全跟候选项不干扰

htx1020 avatar Aug 23 '24 02:08 htx1020

Lazyvim对Tab键,也有配置,故而造成冲突,把Lazyvim的Tab键定义关闭后,fitten Tab键就能正常工作。非常感谢!

想请教一下大佬,具体要改哪些配置?

AllenWu233 avatar Sep 23 '24 04:09 AllenWu233

Lazyvim对Tab键,也有配置,故而造成冲突,把Lazyvim的Tab键定义关闭后,fitten Tab键就能正常工作。非常感谢!

想请教一下大佬,具体要改哪些配置?

前面讨论的就是lazyVim的默认绑定了Tab键行为,导致和fittencode的Tab行为冲突了。 lazyVim默认的Tab,Shif+Tab 行为是snippet提示词间的跳转, 目前要使用fittencode的tab补全,不用lazyVim的Tab话可以关掉,但最终还是看下作者后期怎么做下兼容吧。 可以暂时修改lazyvim配置,相关配置如下: ~/.local/share/nvim/lazy/LazyVim/lua/lazyvim/plugins/coding.lua { "<Tab>", function() return vim.snippet.active({ direction = 1 }) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>" end, expr = true, silent = true, mode = { "i", "s" }, },

mydsyc avatar Sep 25 '24 07:09 mydsyc

Lazyvim对Tab键,也有配置,故而造成冲突,把Lazyvim的Tab键定义关闭后,fitten Tab键就能正常工作。非常感谢!

想请教一下大佬,具体要改哪些配置?

前面讨论的就是lazyVim的默认绑定了Tab键行为,导致和fittencode的Tab行为冲突了。 lazyVim默认的Tab,Shif+Tab 行为是snippet提示词间的跳转, 目前要使用fittencode的tab补全,不用lazyVim的Tab话可以关掉,但最终还是看下作者后期怎么做下兼容吧。 可以暂时修改lazyvim配置,相关配置如下: ~/.local/share/nvim/lazy/LazyVim/lua/lazyvim/plugins/coding.lua { "<Tab>", function() return vim.snippet.active({ direction = 1 }) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>" end, expr = true, silent = true, mode = { "i", "s" }, },

谢谢大佬!此前我修改了nvim-cmp的键位,即VS Code式的Tab补全。把大佬提到的那部分代码注释掉后,Tab补全既可用于nvim-cmp,又可用于fittencode.nvim,符合我的期望

AllenWu233 avatar Sep 28 '24 12:09 AllenWu233

Lazyvim对Tab键,也有配置,故而造成冲突,把Lazyvim的Tab键定义关闭后,fitten Tab键就能正常工作。非常感谢!

想请教一下大佬,具体要改哪些配置?

前面讨论的就是lazyVim的默认绑定了Tab键行为,导致和fittencode的Tab行为冲突了。 lazyVim默认的Tab,Shif+Tab 行为是snippet提示词间的跳转, 目前要使用fittencode的tab补全,不用lazyVim的Tab话可以关掉,但最终还是看下作者后期怎么做下兼容吧。 可以暂时修改lazyvim配置,相关配置如下: ~/.local/share/nvim/lazy/LazyVim/lua/lazyvim/plugins/coding.lua { "<Tab>", function() return vim.snippet.active({ direction = 1 }) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>" end, expr = true, silent = true, mode = { "i", "s" }, },

谢谢大佬!此前我修改了nvim-cmp的键位,即VS Code式的Tab补全。把大佬提到的那部分代码注释掉后,Tab补全既可用于nvim-cmp,又可用于fittencode.nvim,符合我的期望

不过这样就不能更新lazyvim了,会提示修改了上述文件

AllenWu233 avatar Sep 29 '24 09:09 AllenWu233

Lazyvim对Tab键,也有配置,故而造成冲突,把Lazyvim的Tab键定义关闭后,fitten Tab键就能正常工作。非常感谢!

想请教一下大佬,具体要改哪些配置?

前面讨论的就是lazyVim的默认绑定了Tab键行为,导致和fittencode的Tab行为冲突了。 lazyVim默认的Tab,Shif+Tab 行为是snippet提示词间的跳转, 目前要使用fittencode的tab补全,不用lazyVim的Tab话可以关掉,但最终还是看下作者后期怎么做下兼容吧。 可以暂时修改lazyvim配置,相关配置如下: ~/.local/share/nvim/lazy/LazyVim/lua/lazyvim/plugins/coding.lua { "<Tab>", function() return vim.snippet.active({ direction = 1 }) and "<cmd>lua vim.snippet.jump(1)<cr>" or "<Tab>" end, expr = true, silent = true, mode = { "i", "s" }, },

谢谢大佬!此前我修改了nvim-cmp的键位,即VS Code式的Tab补全。把大佬提到的那部分代码注释掉后,Tab补全既可用于nvim-cmp,又可用于fittencode.nvim,符合我的期望

不过这样就不能更新lazyvim了,会提示修改了上述文件

最好修改用于配置lua文件,不要改~/.local/share/nvim/lazy/

htx1020 avatar Sep 30 '24 10:09 htx1020

我看到codeium.vim 也没有做兼容,他们在readme中提供了一些按键映射。

    -- Change '<C-g>' here to any keycode you like.
    vim.keymap.set('i', '<C-g>', function () return vim.fn['codeium#Accept']() end, { expr = true, silent = true })
    vim.keymap.set('i', '<c-;>', function() return vim.fn['codeium#CycleCompletions'](1) end, { expr = true, silent = true })
    vim.keymap.set('i', '<c-,>', function() return vim.fn['codeium#CycleCompletions'](-1) end, { expr = true, silent = true })
    vim.keymap.set('i', '<c-x>', function() return vim.fn['codeium#Clear']() end, { expr = true, silent = true })

tieniu1 avatar Sep 30 '24 11:09 tieniu1