多行縮排
多行注釋和取消
移動快速退出
進入插入模式
文件編輯
重複命令
游標跳轉(查)
複製貼上
剪下替換
刪除(c)
撤銷單行快速縮排
查詢以下的文字中old是我們要替換的字元
單字元替換
將把游標所在行old的第一次出現替換為new
/(斜槓)是該條命令不同部分之間的分隔符(當斜槓為該行的最後乙個字元時,可不寫)
: s/old/new/
單字府多次替換: s/old/new/g
把當前行old的每次出現改為new,而不只是該行的第乙個old。
:s命令允許替換串後面帶有選項,上面語法中的g代表全域性(g選項影響一行中的每個模式,不要把它與影響檔案中所有行的:g命令混淆)
通過在:s命令前加上位址字首,可以把它的範圍擴充套件到多行。例如下面命令把50行到100行的old的每次出現都改為new:
: 50,100 s/old/new/g
下面的命令把整個檔案中的old的每次出現都改為new:
: $ s/old/new/g
確認替換
使用搜尋替換命令有時候會出錯,而得到不想要的結果。在替換命令尾部加上c (confirm用於確認),在替換每個old前都會提示並確認:
: $ s/old/new/gc
將會出現提示replace with hehe (y/n/a/q/l/e/y)?
y替換,n不替換,a替換所有,q放棄,l替換第乙個並進入插入模式,e和y是提示你用ctrl+e或ctrl+y來滾動螢幕的。
上下文相關替換:
除了直接使用乙個單詞(或短語)替換另乙個,還有稍微複雜的全域性替換語法。這些語法可以對乙個模式進行搜尋,一旦找到含有模式的行,就可以使用不同與模式的串進行替換,我們把這種替換叫做上下文相關替換。
:g/pattern/s/old/new/g
將會把包含pattern的行中,把所有old替換為new
第乙個g表示是在檔案的所有行上執行的命令,模式pattern識別要發生替換的行。在那些包含模式pattern的行上,將把old替換(s)為new,最後的g表示在該行上進行全部替換。
按v進入visual狀態,選擇多行,用》或《縮排或縮出
首先按esc進入命令列模式下,按下ctrl + v,進入列(也叫區塊)模式;
在行首使用上下鍵選擇需要注釋的多行;
按下鍵盤(大寫)「i」鍵,進入插入模式;
然後輸入注釋符(「//」、「#」等);
最後按下「esc」鍵。
取消多行注釋:
進入命令列模式,按ctrl + v進入 visual block模式,按字母l橫向選中列的個數,例如 // 需要選中2列
按字母j,或者k選中注釋符號
按d鍵就可全部取消注釋
hjkl:左下上右
w,b:移動到下/上個字元
shift+zz
即可儲存推出vim
i 在當前游標處進行編輯
i,a 在行首/末插入
a 在游標後插入編輯
o,o 在當前行後/前進行編輯
cw 刪除乙個單詞,同時進入插入模式
文件編輯的所有命令都符合乙個規律,[操作]+[行號]+定位,三個部分完成乙個動作。
比如:刪除操作**是d,重複操作**代表操作當前行,則刪除2行就是d2d 操作和行號也可以互換位置2dd
刪除x 刪除乙個字元
dw 刪除乙個單詞 類似上文說的cw但是刪除完成之後並不會進入插入模式
d$ 刪除直至行尾,d^刪除至行首$代表尾,^代表首
dg 刪除到文件結尾處 d1g 刪至文件首部
字首(操作):d代表刪除
中綴:行號
字尾(定位):d代表行,g代表盡頭,$代表行尾,^代表行首,w代表單詞
普通模式下輸入dd,刪除一行,輸入.(小數點)會再次刪除一行,除此之外也可以重複其他任意操作
往往用於配合/字元
的操作
游標跳轉位置,不過是沒有去掉操作後輸入的命令
ng(n shift+g) 游標移動到第n行
gg 游標移動到第一行
g(shift+g)到最後一行
複製為y,後面可以接定位符
yy複製游標所在的整行(3yy表示複製3行)
y^複製到行首,或者y0。不含游標所在處的字元y$複製到行尾。含游標所在處字元
yw 複製乙個單詞
y2w 複製兩個單詞
yg 複製至文字末
y1g 複製至文字開頭
使用p貼上
p(小寫)代表貼上至游標後(下)
p(大寫)代表貼上至游標前(上)
d操作 實際上就是剪下 可以使用ddp來進行上下行交換的操作
r命令 r+《代替還字母》將游標所在的乙個字母替換成其他字母
r連續替換,直到按下esc
cw 刪除乙個單詞,並進入插入模式
c刪除從游標處開始到當前行尾,並進入插入模式
u撤銷一次操作
u(大寫)無論當前行修改了多少次,撤銷當前行的所有操作
ctrl+r 撤銷撤銷的操作(比如寫入123 按u撤銷 按crtl+u 能夠恢復123的輸入)
>>
正行將向右縮排
<<
整行向左縮排
快速查詢
輸入/
然後輸入需要查詢的字串,按回車就會進行查詢,輸入n和n可以繼續查詢 n是查詢下乙個內容,n查詢上乙個內容
?
和/
功能相同,只不過?
是向上查,/
是向下
高階查詢
輸入\*
尋找游標所在處的單詞
輸入\#
效果一樣,但是是向上查
跨檔案複製
現在把a.txt的三行複製到b.txt
1、用vim開啟a.txt
vim a.txt
esc進入指令模式(預設剛開啟就是這個模式)
輸入"a3yy
解釋:引號要結合shift輸入,a代表剪貼簿a(26個英文本母都可以),3yy當然代表從當前行複製3行了
退出a.txt
:q2、開啟b.txt
游標移動到你想要複製的位置
進入指令模式,輸入"ap
解釋:引號要結合shift輸入,a代表使用剪貼簿a,p當然代表貼上了
vim開啟多個檔案
1.vim還沒有啟動的時候:
在終端裡輸入
vim file1 file2 … filen便可以開啟所有想要開啟的檔案
2.vim已經啟動
輸入:open file
可以再開啟乙個檔案,並且此時vim裡會顯示出file檔案的內容。
:e …/myfile.pl
vim 文件名 普通方式開啟文件
vim +n 文件名 開啟文件後,定位第n行
vim ,進入vim介面之後使用命令 :e 文件名 開啟文件,此方式可以在編輯乙個文件的同時開啟另外乙個文件
顯示多個檔案
:split 簡寫 :sp
:vsplit 簡寫 :vsp
顯示快取 :ls
多個檔案切換
1.檔案間切換
ctrl+6—下乙個檔案
:bn—下乙個檔案
:bp—上乙個檔案
對於用(v)split在多個窗格中開啟的檔案,這種方法只會在當前窗格中切換不同的檔案。
2.在窗格間切換的方法
ctrl+w+方向鍵——切換到前/下/上/後乙個窗格
ctrl+w+h/j/k/l ——同上
ctrl+ww——依次向後切換到下乙個窗格中
3.多文件編輯的命令如下
:n 編輯下乙個文件。
:2n 編輯下兩個文件。
:n 編輯上乙個文件。注意,該方法只能用於同時開啟多個文件。
:e 文件名 這是在進入vim後,不離開 vim 的情形下開啟其他文件。
:e# 或 ctrl+ˆ 編輯上乙個文件,用於兩個文件相互交換編輯時使用。?# 代表的是編輯前一次編輯的文件
:files 或 :buffers 或 :ls 可以列出目前 緩衝區 中的所有文件。加號 + 表示 緩衝區已經被修改過了。#代表上一次編輯的文件,%是目前正在編輯中的文件
:b 文件名或編號 移至該文件。
:f 或 ctrl+g 顯示當前正在編輯的文件名稱。
:f 檔名 改變編輯中的文件名。(file)
vim操作記錄
如果vim沒安裝.安裝vim yum y install vim 第一種 命令模式 shift 下輸入 d即可 第二種 首先執行 gg 這裡是跳至檔案首行 再執行 dg 這樣就清空了整個檔案 0游標開頭,shift 4游標結尾 dd 刪除游標所在行 i 從當前游標處進入插入模式 i 進入插入模式,並...
VIM操作記錄
2019 12 12 第1次修改 vr7jj 複製1到20行至100行 1,20 co 100 左右分屏開啟 vi o a b 上下分屏開啟 vi o a b 編輯某個檔案是需要分屏開啟另外的檔案 vim a 上下分屏開啟新檔案 sv b 上下分屏開啟新檔案 vs b 刪除空白行 g s d 刪除w...
vim 常用操作
命令描述 vim從控制台進入vi編輯器 vi filename 建立名為filename的檔案並進入vi編輯器 命令列模式 i從游標所在字元前插入 a從游標所在的字元後插入 o從游標所在行的下面插入空白行 i從游標所在行的行首插入 a從游標所在行的行末插入 o從游標所在行的上面插入空白行 s刪除游標...