VIM快速複製多行 在vim中快速複製粘貼多行 Vim多行縮進技巧

在vim中快速複製粘貼多行

 

用vim寫代碼時,常常遇到這樣的場景,複製多行,而後粘貼。
 這樣作:
1. 將光標移動到要複製的文本開始的地方,按v進入可視模式。
2. 將光標移動到要複製的文本的結束的地方,按y複製。此時vim會自動將光標定位到選中文本的開始的地方,並退出可視模式。
3. 我移動光標到文本結束的地方,按p粘貼。html

1、多行
dd
刪除一行
ndd
刪除以當前行開始的n行
dw
刪除以當前字符開始的一個字符
ndw
刪除以當前字符開始的n個字符
d$、D
刪除以當前字符開始的一行字符
d)
刪除到下一句的開始
d}
刪除到下一段的開始
d回車
刪除2行

2、複製多行
任務:將第9行至第15行的數據,複製到第16行

方法1:(強烈推薦)
:9,15 copy 16  或 :9,15 co 16
由此可有:
:9,15 move 16  或 :9,15 m 16 將第9行到第15行的文本內容到第16行的後面  

方法2:
光標移動到結束行,ma
光標移動到起始行,輸入y'a
光標移動到須要複製的行,輸入p,行前複製則輸入大寫P

方法3:
把光標移到第9行 shift + v
再把光標移動到第15行  ctrl + c
再把光標死去到第16行  p mysql

方法4:
光標移動到起始行,輸入ma
光標移動到結束行,輸入mb
光標移動到粘貼行,輸入mc
而後輸入:'a,'b, co 'c   把co換成m就是剪切
若要刪除多行,則輸入:'a,'b de

vi設置自動縮進:set smartindent
vi設置顯示行號:set number 或 set nu

Vim中如何全選並複製

所有刪除:按esc後,而後dG
所有複製:按esc後,而後ggyG

全選高亮顯示:按esc後,而後ggvG或者ggVGmysql

vim如何與剪貼板交互(將vim的內容複製出來)

習慣了在windows環境各個應用程序之間如UltraEdit,記事本,eclipse之間ctrl+c,ctrl+v進行復制粘貼的你,如何在vim與別的windows應用程序之間拷貝粘貼呢?
固然你能夠在vim裏選擇用鼠標,選中一塊文字而後右鍵複製,再到應用程序裏ctrl+v粘貼,只不過這樣效率就差多了。
更好的作法是,在vim中使用 "*y 使用進行復制,而後在應用程序中用ctrl+v粘貼。
從應用程序到vim則在應用程序中使用ctrl+c複製,在vim中使用 shift+insert粘貼

如:

"*yy複製一行
"*y2w複製二個詞
……

實現的原理是:
"   表示使用寄存器
"*   表示使用當前選擇區

我我的推薦使用ctrl+insert複製,shift+insert粘貼。sql

vim有多個剪貼板,其中就包括了系統剪貼板。使用命令:reg能夠看到各個剪貼板的內容。其中「」表示當前使用的剪貼板,「0-9是歷史剪貼板,「#就是系統剪貼板了(你能夠在系統裏拷貝一些東西,看是否是會出如今「#剪貼板裏)。在vim中使用y能夠把內容拷貝到「」號剪貼板,繼續y會把新的東西放入「」,而原來「」的東西就會被壓入「0-9的各個歷史剪貼板中。X11系統下還有一個「*的剪貼板對應中鍵拷貝粘貼,windows不知道有沒有。vim

解決第一個問題:windows

「+y 把選中內容拷貝到」+號剪貼板,即系統剪貼板eclipse

「+p 把系統剪貼板的內容粘貼到vim,這一個用shift+insert也可完成post

解決第二個問題:url

「0p 能夠把已經被擠到」0剪貼板的內容A從新粘貼出來code

嫌長的作一個map,映射到某個功能鍵或組合就方便了。orm

 

 

 

按v進入visual狀態,選擇多行,用>或<縮進或縮出  一般根據語言特徵使用自動縮進排版:在命令狀態下對當前行用== (連按=兩次), 或對多行用n==(n是天然數)表示自動縮進從當前行起的下面n行。你能夠試試把代碼縮進任意打亂再用n==排版,至關於通常IDE裏的code format。使用gg=G可對整篇代碼進行排版。
相關文章
相關標籤/搜索