Open Kaiser-Yang opened 1 week ago
这一次的配置文件在:fitten-code-test
Minimal Part:
keymaps = {
inline = {
-- ['<C-Down>'] = 'accept_line',
-- ['<esc>f'] = 'accept_word',
-- ['<C-Right>'] = 'accept_word',
-- ['<C-Up>'] = 'revoke_line',
-- ['<C-Left>'] = 'revoke_word',
},
chat = {
['q'] = 'close',
['Q'] = 'close',
['[c'] = 'goto_previous_conversation',
[']c'] = 'goto_next_conversation',
['c'] = 'copy_conversation',
['C'] = 'copy_all_conversations',
['d'] = 'delete_conversation',
['D'] = 'delete_all_conversations',
['i'] = 'start_chat',
}
},
-- key mapping for toggle and explain code
map.set({ 'n' }, 'gpt', '<cmd>Fitten toggle_chat<cr>')
map.set({ 'v' }, 'gpt', '<cmd>Fitten explain_code<cr>')
我发现toggle可以自动聚焦, explain-code和start_chat不会自动聚焦,我看文档里面写的有额外选项可以传递,是需要传递选项进行聚焦吗?
我尝试了其他的按键绑定到start chat,都不能成功绑定。
不支持 ['i'] = 'start_chat', 这种方式
chat窗口的设计是不持有焦点,执行一个action创建一个chat window后,焦点会返回原来的window,特别的如果是在chat窗口中执行action,则焦点会保留在chat中
这个设计是和vscode里explain code一致,不干预代码编辑,chat仅仅作为一个辅助信息
不知道这样是否解释清楚了
chat窗口的设计是不持有焦点,执行一个action创建一个chat window后,焦点会返回原来的window,特别的如果是在chat窗口中执行action,则焦点会保留在chat中
这个设计是和vscode里explain code一致,不干预代码编辑,chat仅仅作为一个辅助信息
不知道这样是否解释清楚了
我能理解这样设计的理由。但是能否增加相关参数支持可以配置解释时是否聚焦。因为当解释较长的代码时,往往需要上下滚动以查看上下文,如果不聚焦的话,那么每次都需要先移动一次。
不支持 ['i'] = 'start_chat', 这种方式
这个问题我想到一个解决方案,我发现chat窗口的readonly为真,所以我为所有readonly为真的窗口绑定i到start_chat命令
vim.cmd[[
augroup no_modify_files
autocmd!
autocmd BufEnter,FileType * if &readonly | nnoremap <buffer> i <cmd>Fitten start_chat<CR> | endif
augroup END
]]
toggle 改进符合预期了 ebbb5434ec60add6efd0c84bc938a468802ec7a2
好的, 辛苦了
@Kaiser-Yang
很多插件的
toggle
会在没有创建窗口时,自动创建一个窗口并且移动光标。但是我发现在fittencode中如果直接使用Fitten toggle_chat
命令什么事情都不会发生,只有当我调用过Fitten start_chat
开启一次对话后toggle
命令才会生效。这是本身接口是这样还是我设置的有问题?其次我想问能否在启动chat窗口的时候可以有一个选项控制是否将指针移动过去。
最后我在配置文件中,将
i
绑定到开启一个对话,但是我在chat窗口中并不能通过i进行开启对话,我通过nmap命令查看是存在这个按键绑定的: