批量替換
回憶上次
- 我們可以用vimdiff快速的比較文件
- 這很實(shí)用!!!
- 實(shí)用的一些跳轉(zhuǎn)方式
- 遍歷所有的修改change
]c
下一條修改[c
上一條修改
- 遍歷所有的函數(shù)method
]m
下一條修改[m
上一條修改
- 面對(duì)不同點(diǎn)
- 把當(dāng)前的改成對(duì)比的 - do - diff obtain
- 把對(duì)比的改成當(dāng)前的 - dp - diff put
- 關(guān)于多窗口
- 還有什么好玩的嗎?????
回憶同時(shí)打開2個(gè)文件執(zhí)行windo
vi -o o1 o2
:windo normal Ioeasy
windo
所有窗口都執(zhí)行normal
進(jìn)入普通模式Ioeasy
插入oeasy
:windo normal o
windo
所有窗口都執(zhí)行normal
進(jìn)入普通模式o
換行
:windo normal "%p
windo
所有窗口都執(zhí)行normal
進(jìn)入普通模式"%p
粘貼各自文件名
批量替換
:windo %s/oeasy/o2z/g
windo
所有window
窗口都進(jìn)行%s/oeasy/o2z/g
把oeasy
替換為o2z
- 然后可以
:wqall
全部保存
批量細(xì)節(jié)
- 可以設(shè)置
range
,這個(gè)指的是window
編號(hào):1,3windo normal Ioeasy
- 可以執(zhí)行批處理序列,用
|
隔開各個(gè)命令:windo %s/oeasy/o2z/g| %s/o2z/o3z/g
- 這樣就可以執(zhí)行兩條替換命令了
:windo set nolist nofoldcolumn | colorscheme blue
bufdo
- 除了
windo
- 我們還可以對(duì)每一個(gè)
buffer
執(zhí)行命令:bufdo %s/oeasy/o2z/g| %s/o2z/o3z/g
- 可以設(shè)置 autowrite 自動(dòng)保存
- 也可以設(shè)置 hidden 支持未修改buffer隱藏
- 還可以
:bufdo %s/oeasy/o2z/g| %s/o2z/o3z/g|update
自動(dòng)更新
- 可
:ls
、:buffers
查看當(dāng)前的buffers
列表 :bd1
、:bd o2z.txt
?可刪除buffers
e .
可打開新的buffer
緩沖- 可以用
:b1
選擇緩存
argdo
- 我們還有一種批量執(zhí)行命令的方式
:argdo %s/oeasy/o2z/g| %s/o2z/o3z/g
- 打開.c文件,設(shè)置文件格式并更新
:args *.c
:argdo set ff=unix | update
- 打開
.c
或.h
文件,批量替換并更新:args *.[ch]
:argdo %s//
/My_Foo/ge | update
- 可以用
:args
查看相應(yīng)的參數(shù)列表 - 可以用
:argd
刪除參數(shù) - 可以用
:arga
添加參數(shù)
把網(wǎng)頁(yè)文件批量替換md文件
vi **/*.html
- 把2級(jí)目錄下所有html用vim打開
:args
- 觀察所有參數(shù)
:argdo %s//[!/2]/1 | update
- 替換img標(biāo)簽
:argdo %s//(./{-/}/)/a>/[/2]/1/g | update
- 替換a標(biāo)簽
:%s//(.*/)/- /1/gc
- 替換h1標(biāo)簽
:%s/
/(.*/)
/ - /1/g- 替換h2標(biāo)簽
之前 - zs
- 要求
- 把
oeasy.org
替換為oeasy.io
- 但是
vim.org
不替換
- 把
/oeasy/zs.org
- 查找前面有
oeasy
的.org
- 查找前面有
:%s/oeasy/zs.org/.io/g
- 前面是
oeasy
的.org
換成.io
- 前面是
:%s//
- 以
o
為單詞開頭的.org
都替換
- 以
多文件替換
:argdo %s//
- 對(duì)所有的arguments參數(shù)
- 執(zhí)行全文批量替換
- 并且更新
/^/s*/zsif
- 開頭只有空格和tab的if
//(./{-}/zsFab/)/{3}
- 第三個(gè)
Fab
- 第三個(gè)
之后 - ze
end/ze/(if/|for/)
endif
和endfor
中的end
綜合應(yīng)用
/
- 以
o
開頭的 - 后面跟
o
什么g
的
- 以
:bufdo %s//
- 把以
o
開頭的、后面跟o
什么g
的單詞都換成ooo
- 對(duì)于所有的
buffers
- 全文替換
- 把以
總結(jié)
- 這次有三種批量替換,分別是
:windo
:bufdo
:argdo
- 執(zhí)行的
{cmd}
可以用|
按順序增加
- 分別對(duì)應(yīng)的
windows
buffers
arguments
- 各有各自的列表、切換、刪除增加的方式
- 以什么開始、結(jié)束的模式
zs
ze
- 關(guān)于
window
窗口容器- 我們切得越細(xì)
- 可用的范圍越小
- 總共
80*24
的屏幕資源很快就用完了
- 我又想多線程訪問
- 又想有足夠的屏幕來編輯
- 那怎么辦呢?????
- 除了window之外還有容器嗎?????
- 下次再說 ????
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍(lán)橋?qū)嶒?yàn)樓 邀請(qǐng)碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)