【发布时间】:2022-08-05 08:41:03
【问题描述】:
我有以下 lua 函数用于在 neovim 中映射键
local M = {}
function M.map(mode, lhs, rhs, opts)
-- default options
local options = { noremap = true }
if opts then
options = vim.tbl_extend(\"force\", options, opts)
end
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end
return M
并将其用于键映射,如下所示:
map(\"\", \"<Leader>f\", \":CocCommand prettier.forceFormatDocument<CR>\")
map(\"\", \"<Leader>f\", \":RustFmt<CR>\")
我只想将:RustFmt 用于.rs 文件,将:CocCommand prettier.forceFormatDocument 用于所有其他文件。
这可能与vim.api.nvim_set_keymap 有关吗?如果可以,我该怎么做?
-
@DoktorOSwaldo,不完全是。
nvim_set_keymap上的文档说它的选项不能接受<buffer>。 neovim.io/doc/user/api.html#nvim_set_keymap() -
尝试将特定文件的配置放在
ftplugin目录中。 -
@Slava.In,对不起,我删除了标志,但评论仍然存在。我看到它不一样。但是这个问题已经回答了很多次了。有两种方法。您可以使用特定于文件类型的
autocmd,或者在我看来更好,如unrealapex 所说,使用ftplugin目录。 -
我想知道如何在描述的开头添加文件名
local filename = vim.api.nvim_buf_get_name(0):gsub(\'^.*/\', \'\'):` { desc = \"string\" }` 这样我就可以调试我的映射,将它们与其他映射区分开来。
标签: lua neovim keymapping