认识vim界面
为了方便演示,我们随便找一个文件,把他复制到其他的目录,然后用vim打开
打开文件后,移动光标,观察右下角,1,9表示光标在第1行第9个字符,顶端表示光标的位置
当移动一段位置后,发现顶端的字样变成了百分比,表示光标的当前所在位置
vim模式转换
vim打开一个文件,首先进入的是一般模式,在一般模式下,可以进行删除,复制,粘贴等操作。在一般模式下输入i,a,o可以进入编辑模式,编辑文本,按esc建退出编辑模式。在一般模式下,输入:或者/进入命令模式,通过命令操作文档,按esc退出命令模式。
进入插入模式
进入插入模式常用的有三种方法,在一般模式输入i,a,o
当我输入一个 i 时,可以看到左下方提示已经进入插入模式
那么i,a,o有啥区别呢,下图光标位置能很好的展示区别所在。
大写的I,A,O有不同的形式
I:光标直接到当前行的最开头;A:光标直接到当前行的最后;O:与o相反,是在当前行的上上面增加一行空行
除了i,a,o还有s也可以进入插入模式
s:删除光标位置的字符,进入插入模式;S:删除当前行,进入插入模式
现在我添加一句话,该如何保存呢,需要输入 : 进入命令模式,在命令模式w就是writ保存,q就是quit退出
输入w回车后可以看到hello world已经写入了。当然输入q就是退出vim编辑器。
如果你不需要其他操作一般情况下都是直接输入:wq(保存并退出)
一般模式快捷键
复制一行:yy,在命令前加数字表示多行复制
复制部分:y+shift+4:复制当前光标位置到行结尾,y+shift+6:复制当前位置到行开始,yw:复制当前单词
粘贴一行:p,在命令前加数字表示多行粘贴
删除一行:dd,在命令前加数字表示多行删除
删除部分:d+shift+4:删除当前光标位置到行结尾,dshift+6:删除当前位置到行开始,dw,删除当前光标位置之后的一个单词
剪切字符:x,从当前光标位置往后剪切一个字符(包括当前光标的字符),X:从当前位置往前剪切一个字符(不包含当前光标的字符)
字符替换:r+任意字符:可以将当前的字符替换为任意字符,R:连续替换(有内容是替换,没有内容是普通插入,按esc退出替换模式)
移动一个单词:w,可以将光标跳到下一个单词,e:移动到词的词尾,b:向前移动到一个词的词头
移动到行头:^,移动到行尾:$,移动到整篇文档的开头:gg或者H,移动到整篇文档的结尾:G或者L,移动到固定的行:行号+G
撤回操作:u
命令模式
:set nu 设置行号
:set nonu 取消行号
:q 退出文档,当修改后但是没有保存就退出是不合法的
:q! 不保存强制退出
:wq 保存并推出
/任意字符(字符串):查找该字符,按n找下一个,N找上一个,高亮显示
😒/ 任意字符(字符串)/任意字符(字符串)查找并替换光标所在行的第一个内容
光标定位到33行,输入:/s/boot/xxxx,回车可以看到只改了第一个boot
如果这一行的boot都替换,那就是:s/boot/xxxx/g,表示行内全局替换
如果是全文的boot都替换,那就是:%s/boot/xxxx/g,表示全文替换;:%s/boot/xxxx/表示全文有boot的行的第一个boot替换成xxxx