使用vim编辑器时,默认处于命令模式。该模式下可以移动光标位置,通过快捷键对文件内容进行复制,粘贴,删除等操作。
如何进入命令模式?
答:在Linux操作系统中,使用vim命令打开文件时默认进入的就是命令模式,如何我们处于其他模式,可以连续按两次esc键来切换到命令模式。
命令模式下我们可以做哪些操作?
答:命令模式下我们可以做复制,剪切,粘贴,删除,撤销,恢复等操作
移动光标到行首=gg
移动光标到行尾=G
快速移动到指定行数 = 行数+G 如 150G则快速移动到150行
向上翻屏,按键:Ctrl + b 或者 PgUp
向上翻屏,按键:Ctrl + f 或者 PgDn
向上翻半屏,按键:Ctrl + u
向下翻半屏,按键:Ctrl + d复制/粘贴操作
1:复制当前行(光标所在那一行)
按键:yy
粘贴:在想粘贴的地方按下p键[将粘贴在光标所在行的下一行],如果想粘贴在光标所在行之前,则使用P键
2:从当前行开始复制指定的行数,如复制5行,5yy
粘贴:在想粘贴的地方按下p键[将粘贴在光标所在行的下一行],如果想粘贴在光标所在行之前,则使用P键
在vim编辑器中剪切和删除都是输入dd,如果剪切了文件,但是没有使用p进行粘贴,那就是删除操作,如果剪切了文件,然后使用p进行粘贴,这就是剪切操作。
按键:dd(删除之后下一行上移)
按键:数字dd(删除之后下一行上移)
按键:D(删除之后当前行会变成空白行)
撤销:u
恢复:Ctrl + r 恢复(取消)之前的撤销操作【重做,redo】
在命令模式下输入小写字母a或者小写字母i即可进入编辑模式,可以对文件的内容进行编辑。
在光标之前插入内容 = 命令模式 + i
在光标之后插入内容 = 命令模式 + a
在命令模式输入:进入末行模式,可以在末行模式输入命令对文件进行查找,关键词替换,保存,退出等操作
如何进入末行模式?
答:进入末行模式的方法只有一个,在命令模式下输入:进入末行模式。
末行模式下我们可以做哪些操作?
答:末行模式下我们可以做文件保存,退出,查找与替换,显示行号,paste模式等
保存文件 = :w
退出文件(注意文件必须保存后才能退出) =:q
保存并退出 = :wq
强制退出 = q!
如果一个文件在编辑时没有名字,则可以使用:wq文件名称,代表把当前正在编辑的文件保存到指定的名称中,然后退出
切换到命令模式,然后输入斜杠/(也是进入到末行模式的方式之一)
进入到末行模式后,输入要查找或搜索的关键词,然后回车
如果在一个文件中,存在多个满足条件的结果。在搜索结果中切换上/下一个结果:N/n(大写N代表上一个结果,小写n代表next下一个)
如果要取消高亮,则需要在末行模式中输入:noh【no highlight】
第一步:首先进入末行模式(在命令模式下输入冒号:)
第二步:根据需求替换内容
1.只替换光标所在这一行的第一个满足条件的结果(只能替换一次) = :s/要替换的关键词/替换后的关键词 + 回车
2.替换光标所在这一行中的所有满足条件的结果(替换多次,只能替换一行) = :/s/要替换的关键词/替换后的关键词/g
3.针对整个文档中的所有行进行替换,只替换每一行中满足条件的第一个结果 = :/%s/要替换的关键词/替换后的关键词
4.针对整个文档中的所有关键词进行替换(只要满足条件就进行替换操作) = :/%s/要替换的关键词/替换后的关键词/g
为什么要使用paste模式?
问题:在终端vim中粘贴代码时,发现插入的代码会有多余的缩进,而且会逐行累加。原因是终端把粘贴的文本存入键盘缓存中,vim则把这些内容作为用户的键盘输入来处理。导致在遇到换行符的时候,如果vim开启了自动缩进,就会默认的把上一行缩进插入到下一行的开头,最终使代码变乱。
在粘贴数据之前,输入下面命令开启paste模式;
:set paste
粘贴完毕后,输入下面命令关闭paste模式;
:set nopaste
在末行模式输入 set nu来显示行号
取消行号显示在末行模式输入set nonu来取消显示行号
可以做一些列选操作
在命令模式中,直接按Ctrl + v(可视块)或V(可视行)或v(可视),然后↑↓←→方向键来选中需要复制的区块,按下y键进行复制(不要按下yy),最后按下p键粘贴。
第一步:在命令模式下,直接小v,进入可视化模式;
第二步:使用方向键↑↓←→选择要复制的内容,然后按y键;
第三步:移动光标,停在需要粘贴的位置,按p键进行粘贴操作;
第一步:按esc退出到命令模式,按gg切换到第一行;
第二步:然后按Ctrl+v进入到可视化区块模式(列模式);
第三步:在行首使用上下键选择需要注释的多行;
第四步:按下键盘大写“I”键,进入插入模式;
第五步:输入注释符#;
第六步:输入完成后按两下esc;
第一步:首先esc进入命令行模式,按Ctrl+v进入列模式;
第二步:选定要取消注释的多行的第一列;
第三步:按del键即可;