更改 Vimperator 映射的激活(标签焦点)行为

更改 Vimperator 映射的激活(标签焦点)行为

我想创建一个新的 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>

相关内容