2013-07-03 11 views
1

當你不在vim中插入更多內容時,如果你刪除了一些東西,它會自動進入剪貼板。這個剪貼板是否像堆棧一樣工作?vim剪貼板是一個堆棧嗎?如果是的話,我該如何粘貼來自該堆棧的複製數據?

如果剪貼板是一個堆棧,我怎麼能訪問這個堆棧先前的入口? 如果剪貼板不是堆棧,它是如何工作的?它可以在同一時間保存多個數據條目嗎?以及如何訪問它們?

我想要的是創建一個獲得此剪貼板堆棧中的第N個條目的宏(錄音)或者獲得一些數據項,如果他們可以被保存在內存中在同一時間。

+3

這聽起來像你對我可能會尋找像[YankRing(HTTP插件:// WWW .vim.org /腳本/ script.php的?SCRIPT_ID = 1234)。 –

+0

確實。 YankRing或[YankStack](http://www.vim.org/scripts/script.php?script_id=3834)。 – mMontu

回答

2

我不會說這是一個堆棧。它像堆棧一樣工作(用於刪除)。

我認爲你需要看看「編號的寄存器」。

Vim有0-9個編號的寄存器。如果你認爲它是一個堆棧,堆棧的大小是9(1-9)刪除。

猛拉東西分別存放在寄存器0和"",無堆疊結構。

我說,它的工作原理「堆棧像」,但不能疊加(刪除),因爲,與堆棧數據結構,你不能隨意提取元素。你可以彈出或推動。但是對於vim的註冊,例如可以通過"1 "3 "5獲得任何(0-9)元素,並保持「堆棧」不變。

閱讀:h registers查看詳細。

1

系統剪貼板(寄存器"+)不是堆疊,除非您使用外部工具(如ClipX在Windows,或Glipper上GNOME),以提供在操作系統級的歷史。

我想你是指默認的Vim寄存器。實際上,刪除和更改(至少一整行)被複制到編號爲的。當前刪除進入"1,其內容移至"2等。

有關詳細信息,請參見:help quote_number

像任何其他寄存器,則可以經由p正常模式命令(例如"1p)訪問它們,:put {reg}<C-r>{reg}從插入模式,或經由getreg()@{reg}編程。

1

的種類。

Vim使用寄存器進行拖放和刪除操作。

  • 無名寄存器,"",總是使用除非你明確地使用了「黑洞寄存器」。當你拔使用或不使用特定的寄存器刪除

  • 數字編號的寄存器,"0-9,使用。

的確切機制是有點棘手,所以我建議你看一看:h registers

相關問題