linux常用命令—vi与vim程序编辑器的使用

为什么要学习vi或vim编辑器:

  • 所有的UNIX LIke系统都会内置vi文本编辑器,其他文本编辑器则不一定会存在
  • 很多软件的编辑接口都会主动调用vi
  • vim具有程序编辑能力,可以主动一字体颜色辨别语法的正确性,方便程序设计
  • 程序简单,编辑速度快

vim可以当作是vi的高级版本,vim可以用颜色或底线等方式显示一些特殊信息,还加入了一些额外的功能,如支持正则表达式的查找架构、多文件编辑、块复制等。

vi有三种模式可供切换使用,分别是一般模式,编辑模式和命令行模式。

  • 默认的是一般模式,可以进行复制、粘贴删除操作。
  • 编辑模式就是进行普通的文件编辑操作。输入i I o O a A r R任意一个字母即可进入编辑模式
  • 命令行模式提供查找数据、读取、保存、大量替换字符等操作。在一般模式下输入:/?其中的一个,光标会显示在最后一行就是在命令行模式了,
vi test.txt

直接输入vi 文件名即可进入一般模式,若文件不存在则会自动创建。

在一般模式下输入:wq会保存文件并退出一般模式

一般模式常用的按键说明( []内的均表示键盘功能按键 ):

移动光标
[Ctrl]+[f]屏幕向下移动一页,相当于[Page Down]
[Ctrl]+[b] 屏幕向上移动一页,相当于[Page Up]
0或[Home]移动到当前行首位置
$或[End] 移动到当前行尾位置
G移动到当前文件的最后一行
nGn为数字,移动到当前文件的第n行
gg移动到文件的第一行
n[Enter]n为数字。光标向下移动n行
查找与替换
/wordword是你要查找的单词,向下查找word
?word word是你要查找的单词,向上查找word
n重复前一个查找操作
N重复前一个的反向查找操作,如上一次执行的是/word,则此次为向上查找
:n1,n2s/word1/word2/gn1与n2为数字。在第n1行与n2行之间寻找word1替换为word2
:1,$s/word1/word2/g 全文寻找word1替换为word2
:1,$s/word1/word2/gc 全文寻找word1替换为word2 ,替换前提醒用户确认
删除复制粘贴
x向后删除一个字符(相当于[Del]按键)
X 向前删除一个字符(相当于[Backspace]按键)
nxn为数字,向后连续删除n个字符
dd删除光标所在的行
ndd n为数字, 删除光标向下的n行
yy复制光标所在的行
nyy n为数字, 复制光标所在的向下n行
p将复制的数据粘贴在光标的下一行
P(大写) 将复制的数据粘贴在光标的上一行
u复原前一个操作
[Ctrl]+r重做上一个操作
.重复前一个操作
进入插入或替换的编辑模式
i进入插入模式,从当前光标所在处插入
I 进入插入模式,从当前光标所在行的第一个非空格处开始插入
a 进入插入模式,从当前光标的下一个字符处插入
A 进入插入模式,从当前光标所在行的最后一个字符处插入
o 进入插入模式,从当前光标所在行的下一行插入新的一行
O(大写) 进入插入模式,从当前光标所在行的上一行插入新的一行
r进入替换模式,只替换光标所在的字符一次
R一只替换光标所在处的字符,直到按[Esc]
[Esc] 退出编辑模式,回到一般模式
保存、离开等命令
:w将编辑的内容写入硬盘
:w!强制写入文件,能不能写入与你对文件权限有关
:q离开vi
:q!强制离开vi,不保存编辑内容
:wq保存后离开vi
:w[filename]将编辑的数据保存成另一个文件(相当于另存)
:set nu显示行号
:set nonu取消行号

欢迎关注博客留言,一起学习!