簡體   English   中英

在新(GUI)window 中打開 vim 選項卡?

[英]Open vim tab in new (GUI) window?

我想將當前選項卡移動到 MacVim 中的新(視覺/真實)window 中。

這可能很困難,因為:

  • vim 幫助中沒有任何內容,只有很少 - 沒有幫助 - 在谷歌上點擊
  • MacVim 不支持它(鏈接,2009)

所以我想知道是否有人找到了實現這一目標的方法?

我認為你能來的最接近的是使用mksession

有幾個缺點(例如,最初輔助 session 將打開比最終預期更多的緩沖區)。 但是,它將保留您的映射、設置、歷史記錄、window 布局(如果您在當前選項卡中有多個 windows,它們都會被克隆)。

如果這個想法讓您喜歡,您可以考慮創建一個腳本,該腳本將過濾掉 session 文件中的部分內容(這是 Yust 另一個 Vim 文本腳本)

:mksession! $HOME/detach.vim
:tabclose
:silent! !gvim remote --servername Detach -nR +'silent! source H:\detach.vim' +tabonly
  1. 保存所有當前 windows、映射、設置( :he mksession
  2. 關閉我們即將分離的標簽
  3. 將 session (detach.vim) 克隆到遠程 vim
    • :silent! 盡量不要說太多
    • !gvim remote --servername Detach 如果尚不存在新的遠程 Vim 服務器,則啟動它,或者與名為Detach的現有服務器對話
    • -nR TODO Fix這是為了避免使用交換文件(因為我發現無法抑制可怕的ATTENTION消息[1])。 但是,根據您的情況,這可能是不安全的建議,這就是為什么我還包括-R用於只讀模式
    • +'silent: source H.\detach.vim' +tabonly -- 在遠程 vim 中,源 session 進行克隆,並僅保留活動選項卡(在步驟 1 中已關閉。)

當然,邊緣有點粗糙,但我覺得非常接近你的意圖。 如果您覺得舒服,您可以刪除-nR標志,然后單擊一些煩人的交換文件注意消息(鍵盤: Q )。

[1] :he ATTENTION


后記:

  • 在 windows 上,您可能想使用:silent. .start /b gvim.... :silent. .start /b gvim....如果你有終端 windows
  • 同樣在 windows 上,如果生成的 gvim window 太小,您可能會遇到煩人的行為。 :simalt ~x序列是最大化 window 的一種技巧(假設是英文 UI,因為x是 Max x的加速器)
  • 作為錦上添花,vim 7.3 具有“持久撤消”功能。 參見例如:se undofile

我認為這是不可能的,因為當您打開 (g)vim 的新實例時,您無法訪問先前 vim 實例的撤消歷史記錄。 您所能做的就是(在命令模式下):

:!gvim %

它將在 gvim 的新實例中打開當前文件。 至少這是我能想到的。 我可能錯了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM