创建 VIM 键绑定执行两个命令和范围(计数)

Create VIM Keybinding executing two commands and ranges (count)

我正在使用 Slimux 并且经常使用范围修饰符将代码发送到 REPL。键盘快捷键“,s”向 REPL 发送一个新行,执行命令 () 并前进一行 (j),

map <Leader>s :SlimuxREPLSendLine<CR>j

如果我使用范围,例如“5,s”,这向 REPL 发送了 5 行代码,但只前进了一行 (j) 而不是 5j。我尝试使用 :exe 和 v.count1 来实现这一点,但不是很成功。

任何人都可以提供代码示例(并解释其工作原理)吗?

这应该可以解决问题:

noremap <Leader>s :SlimuxREPLSendLine<Bar>execute 'normal!' v:count1 . 'j'<CR>

这取决于用 -bar 定义的 :SlimuxREPLSendLine 命令才能向其附加另一个命令。

PS: You should use :noremap;它使映射不受重新映射和递归的影响。