2013-04-14 87 views
1

我在現實生活中總是遇到這個問題。如何粘貼多行後的內容

我想這樣:

我的光標在代碼的多行的第一行。內容應該放在多行代碼之後。

[cursor]xxxx 
xxxxxxxxxxxx 
xxxxxxxxxxxx 
xxxxxxxxxxxx 
xxxxxxxxxxxx 
[this is where i want to place the code] 

此刻的問題:

由於Vim的p剛剛粘貼在光標之後的代碼,我必須去的線條和p結束。

xxxxxxxxxxx 
xxxxxxxxxxxx 
xxxxxxxxxxxx 
xxxxxxxxxxxx 
[cursor]xxxxxx 
[this is where i want to place the code] 
+0

你在現實生活中有一個光標? – romainl

回答

4

put是你正在尋找

:[lineNo]put x 

例如命令

:200pu 

將粘貼寄存器"的價值lineNo的200

:200pu n 

後會貼上寄存器n的值(你可能以前做:"ny)的lineNo的後200

欲瞭解更多詳情,請查詢:h :pu

EDI Tnu

我覺得在不同情況下使用數字或相對數很好。不要一直堅持一個。至少我是這樣做的。在我的vimrc我寫了一個小功能切換相對數和正常行號:

function! ToggleRelativeNumber() 
    let &relativenumber = &relativenumber?0:1 
    let &number = &relativenumber? 0:1 
endfunction 
"map <leader> rn to the function 
nnoremap <silent> <Leader>nu :call ToggleRelativeNumber()<cr> 

,所以我可以鍵入,nu在它們之間切換。 (我的領導是,

+0

它可能是解決方案。但是我使用的是相對編號...... :( – code4j

+0

@ code4j-只需在編號前添加+ –

+0

@ code4j Lieven的解決方案應該可以爲你工作,對於數字切換,請檢查我的答案中的編輯 – Kent

1

如果你想要的代碼塊後粘貼,就可以使用}P導航到塊的結尾,然後在該行粘貼。

+0

我試過了你的建議。 但它只適用於代碼在外部範圍。 http:// codetidy。com/5292 /就像這個代碼一樣,當光標位於if之外時,您只能導航到代碼的末尾。當光標位於'if'內並按} p時,光標將移動到外部示波器的末端 – code4j

+0

@ code4j,然後使用不同的適當移動。例如。 '$%p'去到行末,跳到匹配的大括號,然後粘貼到當前行的下面。花一些時間閱讀':h motion.txt'。 –

0

假設你想從默認的寄存器粘貼的foo下一個出現後

  • 貼:

    /foo<cr>p 
    
  • 或肯特的建議:

    :+4put 
    
相關問題