Vim笔记
最近在学习docker,顺便整理了一下Vim,其作为linux端的文本编辑器,还是挺有用的。
基础
什么是Vim?
Vim是从vi发展出来的一个文本编辑器。
vi/vim的三模式
- 命令模式(Command mode)
其它mode下,按
esc进入该模式 - 输入模式(Insert mode)
Command mode下输入
i进入i,a当前光标字符前\后处开始输入I,A行首\尾处开始输入o,O行后\前加一行开始输入
- 底线命令模式(Last line mode)
Command mode下输入
:,/,?进入
- 命令模式(Command mode)
Last line mode(底线命令模式)
在Command mode下按:进入Last line mode。
:模式下的指令
q,q!退出,强制退出w,w!保存,强制保存wq,wq!保存退出,强制保存退出(注意:!在vi/vim中一般都是‘强制’的意思)w [fileName]另存为n1,n2 w [fileName]将n1行到n2行出入fileName中r [fileName]将fileName中的数据拷入。! commandcommand指的是shell命令,执行command命令(还不如在开个命令框比较省事。)set nu,set nonu显示行号,取消行号- 替换
{作用范围}s/word1/word2/{替换标示},表示在作用范围内将word1替换为word2- 作用范围
n1,n2表示n1行到n2行n1,+n表示n1行与接下去的n行%表示全文空表示当前行
n1可用.表示为当前行,n2可用$表示为最后一行
- 替换表示
cc表示为需要确认(confirm)是否取代。确认时按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。^E与^Y是光标移动快捷键。
如果需要到最后,n2可以使用
$表示, - 作用范围
/,?模式(搜索替换)
/word,?word向下,上搜索(与指令n,N配合使用)
Command mode(命令模式)
基本操作
x,X向后\前删除nx,nX向后\前删除n个字符d$,d0本行中删除当前字符及之后\前的数据dd,ndd删除当前行,当前行开始向下后删除n行dG,d1G删除当前及之后\之前的数据y$,y0,yy,nyy,yG,y1G复制,区别等同d$,d0,dd,ndd,dG,d1Gp,P下\上一行u,ctrl+r撤销,反撤销.重复n,N重复/反重复上一次搜索n <space>,n <enter>向后移动n个字符/行G,gg,nG移动到最后/第一/第n行,G,gg相当与$G,1G
注意
- mac的键盘:
1
2
3
4
5Home键=Fn+左方向
End键=Fn+右方向
PageUP=Fn+上方向
PageDOWN=Fn+下方向
向前Delete=Fn+delete键
原文作者: hxkuan