2013-11-26 38 views
0

我正在複製c = getchar()c!^=EOF在Vim編輯器中如何剪切和粘貼?

我試過shift+v & p,代碼會出現在行的正上方,而不是在行中。

我該怎麼辦?

#include <stdio.h> 

main() 
{ 
    int c; 
    c = getchar() 
    while (c != EOF { 
     putchar(c); 
    } 
} 



#include <stdio.h> 

    main() 
    { 
     int c; 

     while (c = getchar()!= EOF) { 
      putchar(c); 
     } 
    } 

回答

1
  1. 將光標放在想要拉出的線上。
  2. 如果您不在c上,請點擊^
  3. 截止到d$
  4. 移動到您要放置的位置。例如,使用/c
  5. 進入視覺模式,並與vlp
1

我通常做這種與業務工作超過與同一直線f˚F運動。所以,我會做:

:20 

去的c = getchar()!= EOF

fcdf) 

把光標在第一c信線及分切,直到明年)字符。

:7 

到第七行,並

f(p 

去第一(字符粘貼。

2

當你拔的c = getchar(),寄存器在面向行的模式,所以任何膏還將創建一個新的行。我的UnconditionalPaste plugin具有像gcp這樣的映射,一個字符粘貼。這樣,您可以在while(語句之後插入該行,並讓它保持在同一行中。

但實際上,您可能想要將while(之後的c替換爲被抽出的文本。爲此,我的另一個插件ReplaceWithRegister plugin來得方便。有了它,你可以直觀地選擇c或通過動作l來尋址它,並使用插件的gr映射來替換覆蓋的文本與寄存器內容(再次,堅持相同的行,所以你只需要處理多餘的縮進)。