-- Use lowercase for global marks and uppercase for local marks.
local low = function(i) return string.char(97+i) end
local upp = function(i) return string.char(65+i) end
for i=0,25 do vim.keymap.set("n", "m"..low(i), "m"..upp(i)) end
for i=0,25 do vim.keymap.set("n", "m"..upp(i), "m"..low(i)) end
for i=0,25 do vim.keymap.set("n", "'"..low(i), "'"..upp(i)) end
for i=0,25 do vim.keymap.set("n", "'"..upp(i), "'"..low(i)) end
2条答案
按热度按时间zc0qhyus1#
你可以通过它的外观来Map它们。例如在你的vimrc中
字符串
尽管我怀疑这种方法可能会使不使用nnoremap的插件出错。
qcuzuvrc2#
我花了很多时间寻找合适的解决方案,但一无所获,所以我回到michael的答案背后的想法,写了这个小脚本。
字符串
这将创建所有26个字母的重新Map,以便:
m<lowercase>
创建新的全局标记m<uppercase>
创建新的本地标记'<lowercase>
达到全球标记'<uppercase>
转到本地标记我更喜欢在我的配置文件中添加4x26行
注意,在lua中,
vim.keymap.set
默认是“非递归”的,这就是为什么你可以把vim.keymap.set
替换为vim.keymap.set
,反之亦然。如果你不使用lua,你可以用Vim脚本编写前面的脚本,如下所示:
型