vi的複製粘貼命令 -- (轉)

vi編輯器有3種模式:命令模式、輸入模式、末行模式。掌握這三種模式十分重要:

1.命令模式:vi啓動後默認進入的是命令模式,從這個模式使用命令能夠切換到另外兩種模式,同時不管在任何模式下只要按一下[Esc]鍵均可以返回命令模式。在命令模式中輸入字幕「i」就能夠進入vi的輸入模式編輯文件。

2.輸入模式:在這個模式中咱們能夠編輯、修改、輸入等編輯工做,在編輯器最後一行顯示一個「--INSERT--」標誌着vi進入了輸入模式。當咱們完成修改輸入等操做的時候咱們須要保存文件,這時咱們須要先返回命令模式,在進入末行模式保存。

3.末行模式:在命令模式輸入「:」便可進入該模式,在末行模式中有好多好用的命令
html

 

4.編輯操做
  進入輸入模式命令
  i插入命令 a附加命令 o打開命令 c修改命令
  r取代命令 s替換命令 Esc退出命令

  輸入模式的操做
  Home光標到行首
  End 光標到行尾
  Page Up和Page Down上下翻頁
  Delete刪除光標位置的字符

  刪除操做(命令模式使用)
  x刪除光標處的單個字符
  dd刪除光標所在行
  dw刪除當前字符到單詞尾包括空格的全部字符
  #x例如3x刪除光標處向右的三個字符
  #dd例如3dd從當前行開始向下刪除三行文本

  撤銷操做
  u命令取消最近一次的操做,可使用屢次來恢復原有的操做
  U取消全部操做
  Ctrl+R能夠恢復對使用u命令的操做

  複製操做
  yy命令複製當前整行的內容到vi緩衝區
  yw複製當前光標所在位置到單詞尾字符的內容到vi緩存區,至關於複製一個單詞
  y$複製光標所在位置到行尾內容到緩存區
  y^複製光標所在位置到行首內容到緩存區
  #yy例如:5yy就是複製5行
  #yw例如:2yw就是複製兩個單詞

  若是要複製第m行到第n行之間的內容,能夠在末行模式中輸入m,ny例如:3,5y複製第三行到第五行內容到緩存區
vim

5.查找和替換
  vi的查找和替換功能主要在末行模式完成:

  至上而下的查找
  / 要查找的字符竄,其中/表明從光標所在位置起開始查找,例如:/ work

  至下而上的查找
  ?要查找的字符竄 例如:/ work

  替換
  :s/old/new用new替換行中首次出現的old
  : s/old/new/g 用new替換行中全部出現的old
  :#,# s/old/new/g用new替換從第#行到第#行中出現的old
  :% s/old/new/g用new替換整篇中出現的old

  若是替換的範圍較大時,在全部的命令尾加一個c命令,強制每一個替換須要用戶進行確認,例如:s/old/new/c 或s/old/new/gc

  6恢復文件
  vi在編輯某一個文件時,會生成一個臨時文件,這個文件以 . 開頭並以 .swp結尾。正常退出該文件自動刪除,若是意外退出例如突然斷電,該文件不會刪除,咱們在下次編輯時能夠選擇一下命令處理:

  O只讀打開,不改變文件內容
  E繼續編輯文件,不恢復.swp文件保存的內容
  R將恢復上次編輯之後未保存文件內容
  Q退出vi
  D刪除.swp文件
  或者使用vi -r 文件名來恢復未保存的內容
windows

在GUI下:
(1)可按i進入插入模式
(2)使用鼠標拖動反選要粘貼的內容,按鼠標左鍵複製選定塊到緩衝區
(3)而後將光標移到要粘貼處,按鼠標中鍵(兩鍵鼠標可同時按左右鍵),粘貼緩衝區內容。
瀏覽器

在純文本終端下:
(1)選定文本塊,使用v進入可視模式;移動光標鍵選定內容
(2)複製選定塊到緩衝區,用y;複製整行,用yy
(3)剪切選定塊到緩衝區,用d;剪切整行用dd
(4)粘貼緩衝區中的內容,用p

在同一編輯窗打開第二個文件,用:sp [filename]
在多個編輯文件之間切換,用Ctrl+w

命令前面加數字表示重複次數,加字母表示使用的緩衝區名稱。
獲取幫助,用:help [內容或命令]
緩存

 

vi 中設置tab爲4和自動轉換成空格

 

:set tabstop=4        " Force tabs to be displayed/expanded to 4 spaces (instead of default 8).
:set softtabstop=4    " Make Vim treat <Tab> key as 4 spaces, but respect hard Tabs.
:                     "   I don't think this one will do what you want.
:set expandtab        " Turn Tab keypresses into spaces. Sounds like this is happening to you.
                        "    You can still insert real Tabs as [Ctrl]-V [Tab].
:set noexpandtab      " Leave Tab keys as real tabs (ASCII 9 character).
:1,$retab!            " Convert all tabs to space or ASCII-9 (per "expandtab"),
                        "   on lines 1_to_end-of-file.
:set shiftwidth=4     " When auto-indenting, indent by this much.
                        "   (Use spaces/tabs per "expandtab".)
:help tabstop         " Find out more about this stuff.
:help vimrc           " Find out more about .vimrc/_vimrc :-)

 

VI中複製與粘貼基本方法app

        咱們先作這樣一個小小的嘗試,請打開瀏覽器,從網頁上隨便複製一段文字,而後打開VIM,用VIM,用"p"粘貼一下,你會發現,什麼都沒有站貼過來,原 因是這樣的,不一樣於Windows,VIM具備多個剪貼板,而且和系統剪貼板是徹底獨立的,因此當你複製瀏覽器裏的文字的時候,這段文字保存在了系統剪貼 板,當你是用"p"來粘貼的時候,實際上,他讀取的是VIM的剪切板。  
       那怎麼方便的將系統剪貼板的內容複製過來呢?簡單!用另一個快捷方式"Shift+Insert"就能夠了,若是你在使用Gvim的話,直接用鼠標中鍵也可起到相同的做用。是否是很簡單? 
       OK!咱們開始進階!  
       咱們前面說過,VIM具備多個剪切板,目的是爲了用戶在作較複雜的字符處理的時候,能夠更方便的複製粘貼。請如今使用一下":reg"命令(先按 ESC鍵,退出編輯模式,而後按:進入命令模式,而後輸入reg回車),看到了?屏幕上的輸出結果!是否是特別眼熟,對了!就是您以前複製過的全部內容! 也許這時候您還發現,VIM的剪切板原來有這麼多個,按照數字還有符號一個一個的區分開的,這裏舉一個編號的例子--""5,看到了嗎?是以"開頭的。還 有!有沒有看到編號爲"+的剪切板?裏面的內容是否是剛纔你在瀏覽器裏複製的那段文字啊?呵呵……沒錯了!系統剪切板的編號就是"+。  
       好了,這時候您已經知道了如何查看以前的全部剪貼板內容,咱們如今就試着把某一個特定剪切板的內容複製進咱們正在編輯的文件中。咱們知道,vi的粘貼指令 是"p",可是若是要粘貼一個特定的剪貼板,只是用p就不行了,那怎麼辦?簡單!把剪貼板的編號帶上不就能夠了?如今先按ESC,退出編輯模式,而後依次 按"+p這三個字符(怎麼按?不會吧!"和+怎麼按?用Shift啊!),好了!你看看,以前在瀏覽器中複製的這段文本,是否是被粘貼進文檔中了?  如 何將系統剪切板裏的內容複製進VIM當中,您已經清楚了。那如何將ViM中複製的字符粘貼到其餘地方呢?很簡單,咱們只須要把要複製的文字,複製進 "+剪切板不就能夠了?("+剪切板是系統剪切板,忘記了?)在VIM中,複製的指令是y(在非編輯模式下按y就能夠了),那要將文本複製進指定的剪切 板,只須要加上剪切板的編號就能夠了。舉個例子,咱們但願把VIM中的一段文本複製下來,而後粘貼到瀏覽器的地址欄中:第一步,現把須要複製的文字選中 (非編輯模式下),而後在鍵盤上依次按"+y這三個字符,OK!已經複製下來了,如今用:reg命令看看,是否是在"+剪切板中了?  好了,目前爲止, 您已經大體掌握了VIM剪切板的基本用法,固然,VIM剪切板的功能還很強大,本文也不能盡數道來,就請您繼續發掘吧。
 

vi中多個文件相互之間的複製、粘貼功能簡介!

你們在vi編輯中,經常遇到想把文件A裏面的一行或多行,複製到B文件裏面去
(可能不少人不知道怎麼辦),該怎麼作了?
下面是幾中方法:
1.若是你有多臺機器,並且是聯網的,你能夠.netterm虛擬終端,telnet登錄主機對A文件進行修改、複製,而後打開B文件粘貼過去!
2.若是是單機,固然要用unix自帶的編輯功能呢
  先簡單介紹一些vi編輯裏的命令:
  (A).yw 將當前字存入無名緩衝區,前面可加"x,表示存入名字爲x的有名 
緩衝區(x爲a-z),也可加數字表示存入的字數,之後可用P或p命 
令取出 
yy 將當前行存入無名緩衝區,用法參看yw 

   (B).命令以下:a-Z 是緩衝區,也可移出數字1-9指定的刪除緩衝區 
利用命名緩衝區可很好地保存若干文本段,便於之後存取、移動或者重排。這些緩衝區用a到z字母命名!爲了訪問這些緩衝區中的一個,要使用雙引號 
例如:要把一行插入a緩衝區,可鍵入: 
"ayy 
爲了把這個文本放回該文件中,鍵入"ap 


  (c).m作標誌命令:
  m 字母 用字母標記當前行,之後可用 '字母使光標移動到當前行, 
(參看'命令)

列子:1。將a文件中的4行到b文件中

      命令以下:"ay4+ 
                  :ex b (轉到b文件中)
                   而後"ap
        2. 將a中多行復制到b文件中
先在開始處作標誌mk 
而後在末尾用"ay'k (光標自動回到開始處,此時已經把你的內容放到緩衝區了)
其中a表示緩衝區a 
而後用ex轉義到你的文件B中,而後用"ap命令粘貼就行

3。若是你文件中有屢次要複製粘貼的話,看下面:
a表示緩衝區a ,你還繼續可使用緩衝b嗎 
緩衝區有a-z和1-9這麼多 
緩衝區就好象windows下的煎切版同樣,它有好多個,你能夠把你想要的複製進去,而後粘貼,只不過你用"ay時候多換a就是了,如你要複製462行用"ay ,複製536行用"by編輯器

 

來源:http://www.cnblogs.com/lansh/archive/2010/08/19/1803378.htmlthis

相關文章
相關標籤/搜索