我想创建一个新的 vimperator 键映射,以复制撤消的功能,但在非焦点/背景选项卡中打开该选项卡。
我知道 tabopen 使用标志 ! 来切换新选项卡的激活行为,但命令 :u! 不能以同样的方式工作。有没有办法在不使用 javascript(我不知道)的情况下做到这一点?
答案1
将以下代码添加到您的.vimperatorrc
文件中以创建一个命令undob
,该命令在后台重新打开已关闭的选项卡,保留其历史记录并且不影响当前备用选项卡。
command! undob -description "Undo closed tab in background" :js undob();
:js <<EOF
undob = function() {
var currT = gBrowser.selectedTab;
var ssService = Components.interfaces.nsISessionStore;
var ssClass = Components.classes['@mozilla.org/browser/sessionstore;1']
var ss = ssClass.getService(ssService);
var closedTabs = JSON.parse(ss.getClosedTabData(window));
var ct0 = closedTabs[0]
ss.undoCloseTab(window, ct0);
gBrowser.selectedTab = currT;
}
EOF
键绑定示例C-cu:
nnoremap <C-c>u :undob<CR>