oeasy教您玩轉vim - 58 - # 塊可視化
塊可視化編輯
回憶上節(jié)課內容??
上次我們了解到行可視模式
行可視模式V
也可配合各種
motion
o切換首尾
選區(qū)的開頭和結尾是
mark標記
開頭是 '<
結尾是 '>
可以在選區(qū)內進行替換和刪除
:'<,'>s/shiyanlou/oeasy/g
范圍內批量替換:'<,'>s/shiyanlou/oeasy/gc
范圍內批量替換待確認:'<,'>g/^.*drwxwr.*$/d
范圍內有drwxwr
的直接刪除選中了之后可以進行d、c、y等操作
可以用"a使用指定寄存器
可以合并多行
用J把這好多行合并成
1
行這次是
行
可視化模式那么
塊
可視化模式又是什么意思呢???
切換模式
塊可視模式ctrl+v
左下角
-- 可視 塊 --
然后配合
motion
首尾切換
o切換首尾
這個塊可以有四個頂點
O橫向切換
四個頂點都可以切換到
選擇好了之后就可以把選區(qū)y下來
然后找到一個空白的地方,p
我們發(fā)現(xiàn)這個塊是按照方塊的方式粘貼的

添加序號
用ctrl+v
在行首部分,選擇4行1列的方塊
輸入
I1.<esc>
在行首插入
4
個1.
ctrl+v選中下面的
3
個1
g之后ctrl+a
行號變成
1234

查找?guī)椭?/h1>可以:h v_g_ctrl-a
查看手冊
意思是查找 visual
模式下的g_ctrl-a

再練一次
使用命令 :2,5normal I001.
esc
ctrl+v選中3-5
行的開頭字符
g之后ctrl+a

到7之后自動跳到10
這個怎么回事?
數(shù)字格式問題
:set nrformat?
nr 數(shù)字 number
formats 格式

原來他把007當作了8進制數(shù)octal
:set nrformats -octal
-octal
去掉8進制格式
再試試

切換首尾
o
切換首尾
控制選擇范圍
O
在同一行中切換選擇點
控制選擇范圍

回憶外部命令
可以:h v_g_ctrl-a
查看手冊
意思是查找 visual
模式下的g_ctrl-a

使用命令 :2,5normal I001.
esc
ctrl+v選中3-5
行的開頭字符
g之后ctrl+a

到7之后自動跳到10
這個怎么回事?
:set nrformat?
nr 數(shù)字 number
formats 格式

原來他把007當作了8進制數(shù)octal
:set nrformats -octal
-octal
去掉8進制格式
再試試

o
切換首尾
控制選擇范圍
O
在同一行中切換選擇點
控制選擇范圍

#先安裝兩個軟件 fortune和boxes 在<linux>教程那部分有介紹
sudo apt install fortune boxes
#使用fortune生成諺語
fortune -l
#把諺語通過管道送入boxes
fortune -l | boxes -d cat
#進入vi
:r !fortune -l | boxes -d cat
banner 實在太寬了
我想把它變得窄一點
范圍控制
先用塊選擇的方式,把里面選中
刪除,并放到寄存器a中

在最底下粘貼出來

:set textwidth=50
gq21G
"ayG

然后調整畫框
把內容合理地放上去
開心
批量改名的練習
首先找到文件

選中前面的塊并d刪除

I在前面插入
mv "

同樣方法,給后面也加上"
把名字塊復制并粘貼
可視塊內的批量替換
把后面的塊選中
并完成針對于塊兒內的替換'<,'>
:'<,'>s/\%Vg/graphic/g
'<,'>表示范圍
s表示substitute
\%V表示在塊內
g/graphic表示替換內容
最后的g表示可重復
清理空格
下面需要把多余的空格清空一下
:'<,'>s/desktop\s*"/desktop"/g
:wq
保存退出運行
替換成功
在本次的例子中并不明顯
在給90多個mp4文件改名的過程中(把空格換成逗號)
發(fā)現(xiàn)真的很方便
再練一個
基礎來源于
ls -l > renames.sh
總結
今天我們了解到塊可視模式
?-ctrl+v左下角
-- 可視 塊 --
然后配合
motion
o切換首尾
這個塊可以有四個頂點
O橫向切換
可以在選區(qū)內進行編輯和替換
:'<,'>d
:'<,'>s/shiyanlou/oeasy/g
范圍內批量替換可以直接d、c、y
或者D、C、Y
也可以直接編輯
可以在塊·可視化模式下替換
:'<,'>s/\%Vg/graphic/g
'<,'>表示范圍
s表示substitute
\%V表示在塊內
文本編輯終于告一段落,下次干點什么???
下次再說 *
[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍橋實驗樓 邀請碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)