2015-07-21 47 views
2

我一直在使用Vimperator的一段時間,我與它真的很高興但在我的工作流中斷其困擾我:如何在手動打開新選項卡後觸發Vimperator命令?

有時候我打開一個新的標籤頁「手動」,即使用按Ctrl +t或甚至通過點擊最後一個標籤旁邊的+標誌。我知道我可以用:tabopen打開一個新選項卡,併爲此創建了一個方便的映射,但有時我不會使用它。

我的問題是這樣的:我在.vimperatorrc設置set gui=nonavigation所以當我打開一個標籤「手動」如果我忘了輸入o觸發與open命令在命令行,而是直接輸入網址,我得到意外的結果,因爲我鍵入的url作爲url只是簡單地視爲vimperator輸入。

所以我的問題是:是否有可能使用按Ctrl + 噸或點擊+符號後觸發Vimperator的命令?這個想法是在這兩個事件之後自動鍵入o,所以我直接在命令行中使用open命令來完成。

回答

1

Pentadactyl:一般解

該解決方案在Pentadactyl工作(我會在這裏包括自Pentadactyl的Vimperator的標籤下,落在SO)。

應該也在Vimperator上工作,但沒有(至少在我的版本上),因爲Vimperator是絕望的錯誤。應該可以解決這些錯誤,但是當我嘗試時,我找不到方法。

無論如何,正確的方法是使用自動命令,無論何時加載about:newtab URL,該命令都會執行。

  • 開始:open命令時裝載一個新的標籤頁:

    autocmd PageLoadPre about:newtab normal o 
    
  • 開始:open命令時加載或更改爲一個新的標籤頁:

    autocmd LocationChange about:newtab normal o 
    
+0

Re非常好的答案非常感謝你!說實話,我已經忘記了這個問題,但我很高興你給了我一個很好的方法來做到這一點。也只是因爲我很好奇,你能解釋爲什麼當打開一個新選項卡時觸發autocmd('CTRL + t'或'+'符號),但不是當我使用':winopen'時觸發?這對我來說似乎很陌生,因爲':winopen'會打開一個窗口,其中包含'about:newtab'。 – statox

+0

@statox:我不知道爲什麼發生這種情況。可能與窗口局部變量有關。在我的Pentadactyl中,自動命令在新窗口中工作,但在第一個選項卡啓動時不起作用,因此您可以使用命令':winopen |打開about:newtab。你可以將它映射到一個鍵或一個新的命令(你不能重新定義內置命令,但是如果你追蹤數據結構映射命令名到命令,你可能會用JS解決這個問題。) – pyrocrasty

+0

我認爲實際上定義一個新命令的想法非常好。非常感謝您的回答。 – statox

1

因爲當我寫這個問題,我改變了插件,現在pentadactyl而不是使用Vimperator的,但我已經解決了以下映射的問題,這應與工作:

nmap <C-t> :tabopen<CR>o 

這樣按Ctrl + t將打開新標籤並觸發:open命令。

這不是一個完美的解決方案,因爲它不適用於使用+符號打開的選項卡,但它是一種解決方法。

相關問題