Vim

一、vim選中多行復制粘貼vim

  1. 按v進入可視模式,移動光標選中須要複製的行;
  2. 使用y複製選中塊到緩衝區(剪切選中塊使用d);
  3. 將光標移動到粘貼的位置,按p便可。

複製多行並粘貼到指定位置後,可能須要進行多行縮進。多行縮進步驟以下:函數

  1. 按shift+v進入可視模式,移動光標選中須要縮進的行;
  2. 使用>向右縮進,使用<向左縮進(注意使用符號<和>要按住shift,否則就變成了,和.)。

二、多行註釋spa

  1. 進入命令行模式,按ctrl + v進入 visual block模式,而後按方向鍵選中多行,把須要註釋的行標記起來
  2. 按大寫字母I,再插入註釋符,例如//
  3. 按esc鍵就會所有註釋了

取消多行註釋:一樣 Ctrl+v 進入列選擇模式,移到光標把註釋符選中,按下d,註釋就被刪除了。命令行

三、撤銷code

  • vim撤銷操做:u
  • vim恢復操做:ctrl+r

四、查找替換orm

查找:按下/ 按回車定位到第一個匹配的,n下一個,N上一個,結尾加\c表示大小寫不敏感(默認查找是大小寫敏感)xml

查找當前單詞:normal模式下按下*便可查找光標所在單詞(word), 要求每次出現的先後爲空白字符或標點符號。例如當前爲foo, 能夠匹配foo bar中的foo,但不可匹配foobar中的foo。 這在查找函數名、變量名時很是有用。it

按下g*便可查找光標所在單詞的字符序列,每次出現先後字符無要求。 即foo bar和foobar中的foo都可被匹配到(至關於/foo)。io

替換::{做用範圍}s/{目標}/{替換}/{替換標誌},例如:%s/foo/bar/g會在全局範圍(%)查找foo並替換爲bar,全部出現都會被替換(g)class

做用範圍分爲當前行、全文、選區等等:當前行  :s/foo/bar/g

  • 全文  :%s/foo/bar/g
  • 選區,在Visual模式下選擇區域後輸入:,Vim便可自動補全爲 :'<,'>。  :'<,'>s/foo/bar/g
  • 2-11行  :2,11s/foo/bar/g
  • 當前行.與接下來兩行+2  :.,+2s/foo/bar/g

替換標記

空替換標誌表示只替換從光標位置開始,目標的第一次出現:

:%s/foo/bar

i表示大小寫不敏感查找,I表示大小寫敏感:

:%s/foo/bar/i
# 等效於模式中的\c(不敏感)或\C(敏感)
:%s/foo\c/bar

c表示須要確認,例如全局查找"foo"替換爲"bar"而且須要確認:

:%s/foo/bar/gc

 回車後Vim會將光標移動到每一次"foo"出現的位置,並提示

replace with bar (y/n/a/q/l/^E/^Y)?

按下y表示替換,n表示不替換,a表示替換全部,q表示退出查找模式, l表示替換當前位置並退出。

五、快速移動光標

  • 行首:使用鍵盤上的編輯鍵Home;也可在命令模式中使用快捷鍵"^"(即Shift+6)
  • 行尾:使用編輯鍵End;也能夠在命令模式中使用快捷鍵"$"(Shift+4)。快捷鍵"$"前能夠加上數字表示移動的行數。例如使用"1$"表示當前行的行尾,"25$"表示當前行的下25的行尾
  • 100j表示向下移動100行(從當前位置開始)
  • 移動到文本開頭:gg
  • 移動到文本結尾:G
  • :123移動到第123行

六、多文件編輯

  • 若是沒有打開vim,能夠縱向分割顯示: $ vim -O filename1 filename2  (橫向-o)
  • 橫向分割顯示: :vs filename  
  • 縱向分割顯示: :vsp xxx.c
  • 切換窗口:按住ctrl再按兩下w,或者按住ctrl鍵,按一次w鍵,再按一次方向鍵

七、 記錄功能

若是文件裏有以下內容

stdio.h
fcntl.h
unistd.h
stdlib.h

想把它改爲

#include "stdio.h"
#include "fcntl.h"
#include "unistd.h"
#include "stdlib.h"

將光標移動到第一行,而後依次執行以下:

qa                                 開始將後續的命令記入寄存器a

^                                    將光標移動到行首

i#include "<Esc>            在該行以前插入#include "

$                                   移動到行尾

a"<Esc>                         在行尾加上"字符

j                                    移到下一行

q                                   中止記錄

而後按下@a就能夠自動完成第2,3,4行的改變了。

相關文章
相關標籤/搜索