常用的linux编辑器有vi、vim、emacs等,在开发使用中emacs客户端更受欢迎,它集成了众多功能于一身,是一款具有集成开发环境能力的优秀工具;运维的使用中,更喜欢vim和vi直接在机器上使用,简洁方便高效快捷。vim相比vi,是一个升级版的vi,编辑功能更强大,适应linux/mac/win多平台环境,熟练使用能让工作效率翻倍。
3.6.1 工作模式
常见的三种模式:普通模式、插入模式,命令模式、可视化模式。使用vim 直接打开文件,则默认处于普通模式下,该模式下可以使用方向键查看内容,或者使用快捷键操作特定移动光标功能;插入模式是由普通模式通过命令按键进入,进入该模式后可以编辑文本内容;命令模式则是由普通模式下输入“:”进入,实现查找定位替换保存等功能;可视模式是普通模式下输入v进入,主要是用于文本块操作。
普通模式进入插入模式的按键方法:
按“i”:从光标当前位置开始输入文件
按“I”:在光标所在行的行首插入
按“a”:从目前光标所在位置的下一个位置开始输入文字
按“A”:在光标所在行的行末插入
按“o”:在下面插入一行
按“O”:在上面插入一行
按“s”:删除光标后的一个字符,然后进入插入模式
按“S”:删除光标所在的行,然后进入插入模式
普通模式进入命令模式方法:
直接输入“:”,即可进入命令模式
以上模式均可使用Esc键退出到普通模式下。
3.6.2 光标控制
在vim中移动光标最简单的方法是使用方向键控制光标进行上下左右移动。这种方法效率差,可以使用快捷键来高效控制光标。
在普通模式下光标移动快捷键方法:
“k”、“j”、“h”、“l”分别控制光标左、下、上、右移一格
“w”:光标跳到下个字的开头
“e”:光标跳到下个字的字尾
“b”:光标回到上个字的开头
“nl”:光标移动该行的第n个位置,例如:“5l”表示移动到该行的第5个字符
“ctrl+b”:屏幕往后移动一页
“ctrl+f”:屏幕往前移动一页
“ctrl+u”:屏幕往后移动半页
“ctrl+d”:屏幕往前移动半页
数字“0”:移动到文本的开头
“G”:移动到文件的最后
“gg”:移动到文件开头
“$”:移动到光标所在行的行尾
“^”:移动到光标所在行的行首
3.6.3 内容编辑
当从普通模式进入插入模式后,就可以对文档内容进行增删改操作了。另外在编辑中,也可以在普通模式下执行快捷键实现对应功能。
“x”:每按一次,删除光标所在位置的后面一个字符
“nx”:例如:“6x”表示删除光标所在位置后面6个字符
“X”:每按一次,删除光标所在位置的前面一个字符
“dd”:删除光标所在行
“D”:删除光标到行尾的字符
“ndd”:从光标所在行开始删除n行
“yw”:将光标所在之处到字尾的字符复制到缓冲区中
“nyw”:复制n个字到缓冲区
“yy”:复制光标所在行到缓冲区
“nyy”:例如:“6yy”表示复制从光标所在行开始6行字符
“p”:将缓冲区内的字符写到光标所在位置
“cw”:更改光标所在处的字到字尾处
“cnw”:例如:“c4w”表示更改4个字
“ctrl+g”:列出光标所在行的行号
“nG”:例如:“15G”,表示移动光标到该文件的第15行行首
3.6.4 命令行模式查找、编辑、保存
1)条件设置
先按“ESC”键确定处于普通模式后,再按冒号“:”即可进入末行命令模式。
“set nu”:列出行号
“set nonu”:取消列出行号
“set ic”:搜索时忽略大小写
“set noic”:取消在搜索时忽略大小写
“n”:跳到文件中的某一行,“n”表示一个数字,输入5,再回车就回到第5行
“!cmd”:运行shell命令cmd
2)查找替换字符
按“/”,输入想查找的字符+enter即可,可以按“n”键,往后查找一个关键字。
按“?”键,再输入想查找的字符+enter即可,可以一直按“?”,往后查找一个关键字。
按“:”键,后面跟s+参数可以执行替换。
“/word” 在光标之后查找word字符串
“?word” 在光标之前查找word字符串
“s/word1/word2/g” 在光标当前行查找word1,并替换成word2
“n1,n2s/word1/word2/g” 在第n1行与第n2行之间查找word1,并替换成word2
“%s/word1/word2/g” 整个文本查找word1,并替换成word2
3)退出保存
“Esc”:退出编辑模式
“e!”:将文件还原到最原始的状态
“q” :无修改退出
“q!”:不保存强制退出
“wq”:保存退出
“wq!”:强制保存退出
“ZZ”:存盘退出
“ZQ”:不存盘退出
“r”:替换光标所在处的字符。
“R”:替换光标所到处的字符,直到按下“ESC”键为止。
“u”:撤销上一次操作
vim编辑器快捷键功能很多,如果不是每天编辑使用,并不能记住所有,文中已经把常用的加粗标识出来,这些必须掌握。
原文地址:https://www.cnblogs.com/superleedo/p/13853349.html