oeasy教您玩轉(zhuǎn)vim - 49 - # 命令進(jìn)階
命令進(jìn)階
回憶上節(jié)課內(nèi)容??
我們上次研究vim的歷史
為什么會(huì)有行編輯器這種東西
竟然是當(dāng)年
沒有顯示器只有紙的時(shí)代的無(wú)奈之舉
vim進(jìn)化到今天
依然還有好多人使用
而且ssh連接的時(shí)候直接vim就很方便
命令行還有什么好玩的么???
縮進(jìn)控制
我們學(xué)習(xí)過用<kbd><</kbd><kbd><</kbd>、<kbd>></kbd><kbd>></kbd>控制縮進(jìn)
<kbd><</kbd><kbd><</kbd> 向左一個(gè)
shiftwidth
<kbd>></kbd><kbd>></kbd>向右一個(gè)
shiftwidth
如果忘了的話,可以
:h ?'shiftwidth'
如果我們想要多行進(jìn)行控制呢?
所有行向左一個(gè)
shiftwidth
a標(biāo)記
到結(jié)尾
向右一個(gè)shiftwidth
20-40
行向右一個(gè)shiftwidth
:20,40>
:'a,$>
%<

范圍添加分號(hào)結(jié)尾
我們?nèi)绻胍o從4到10行添加分號(hào)結(jié)尾,應(yīng)該如何呢?
:4,10normal A;
A是normal模式下的命令在行尾進(jìn)入插入模式
在最后的位置插入
;
首先是
range
,先打上:4,10
然后讓這個(gè)范圍內(nèi)的東西進(jìn)入
normal
格式再:4,10normal
切換為normal
模式打一個(gè)空格,后面打上命令
A;
整體的命令為
:4,10normal A;
思考
如果我想在
8,15
行添加//
應(yīng)該如何做呢?動(dòng)手試一試!
但是這些都是執(zhí)行
vim
的內(nèi)部命令我想要執(zhí)行外部命令
比如
shell
中的ls
可以么?
直接執(zhí)行外部命令
要直接執(zhí)行外面的命令比如
ls
我們?cè)谇懊婕由?code>!就可以
!javac oeasy.java
!source o2z.sh
!python3 %
比如
:!ls
更復(fù)雜一些的
這很方便,直接在vi里面就可以執(zhí)行命令了
而且編譯運(yùn)行能看到報(bào)錯(cuò)的結(jié)果??
直接G跳到出錯(cuò)那行就可以!
可以直接修改,很爽?。?!
超爽?。?!
不過這一行命令執(zhí)行完了就沒了
看不見前面執(zhí)行的結(jié)果了
我想一直看見前面的命令和執(zhí)行結(jié)果
可以么?
進(jìn)入命令模式 ex-mode
在
Normal
模式下直接按下<kbd>Q</kbd>進(jìn)入Ex-mode
全屏執(zhí)行命令格式
可以執(zhí)行各種命令行
:ls
:1,3d
:1,7p
:visual
退回到正常模式可視化模式
visual
是vi
名字的來源vi
就是ed
+ 可視化模式visual
能直接掛起vim運(yùn)行命令么?
跳到shell
我們知道我們是從
shell
運(yùn)行vim
然后進(jìn)來的如果我們想退出
vim
的話需要保存并退出:wq
如果我不想保存并退出
就想切到外面
把
vim
整個(gè)進(jìn)程先掛起放到后臺(tái)我們就 <kbd>ctrl</kbd>+<kbd>z</kbd>
我們就掛起
vim
切出去了在
shell
運(yùn)行完命令之后fg
就可以把vim
切回到前臺(tái)fg的意思是foreground前臺(tái)

但是我們可以直接不掛起
vim
的情況下執(zhí)行
shell
命令么?
分屏終端 :term
:term
上面切出一個(gè)窗口
執(zhí)行命令
exit
退出shell

上下切換
<kbd>ctrl</kbd>+<kbd>w</kbd> <kbd>j</kbd> 切換到下方窗口
<kbd>ctrl</kbd>+<kbd>w</kbd> <kbd>k</kbd> 切換到上方窗口
可以切來切去
一邊修改一邊運(yùn)行
這個(gè)
:term
什么意思
:term 幫助
什么不會(huì),
:h
什么:h :term
總結(jié)
我們這次研究范圍命令執(zhí)行方法
批量控制縮進(jìn)
:20,40>
批量執(zhí)行普通模式下的命令
:4,10normal A;
直接切換到
全屏命令模式
ex-mode
Q
執(zhí)行外部命令
!javac oeasy.java
新開一個(gè)termianl窗格
:term
這個(gè)方式真的很爽!
在
vi
什么都干了!命令模式本身可以再提高效率嗎???
下次再說 *
[Github地址] (?https://github.com/overmind1980/oeasyvim)
[Gitee地址] (?https://gitee.com/overmind1980/oeasyvim)
[藍(lán)橋?qū)嶒?yàn)樓] (?https://www.lanqiao.cn/courses/2840)