
vi profile
返回
:q 退出
:wq或者:x或者shift+zz 保存并退出
:q! 不保存并退出
:w 保存
:w! 强制保存
编辑到输入模式:
i 在当前光标前面输入
I 在当前光标所在行的行首,转换为输入模式
a 在当前光标后面输入
A 在当前光标所在行的行尾,转换为输入模式
o 在当前光标所在行的下方,新建一行,并转为输入模式
O 在当前光标所在行的上方,新建一行,并转为输入模式
1、 移动光标
字符:方向键上下左右或者键盘kjhl(上下左右)
单词:w移至下一个单词的词首;e跳至当前或下一个单词的词尾;b跳至当前或前一个单词的词首
行内:0绝对行首;^行首的第一个非空白字符;$绝对行尾
行间:G文章末尾;3G第3行;gg文章开头
翻屏:ctrl f往后翻;Ctrl b往前翻
2、 删除、替换单个字符
x删除光标位置字符;3x删除光标开始3个字符;r替换光标位置字符
dw删除一个单词;4dw删除光标开始的4个单词;dd删除光标所在行;5dd删除光标开始的5行
3、复制粘贴剪切
yw复制一个单词,p在该行粘贴单词;yy复制整行,p在该行下方粘贴整行
dd剪切整行,p再粘贴整行;dw剪切一个单词,p再粘贴一个单词
4、 撤销&重做
u:撤销;ctrl+r:重做撤销的 *** 作;重复上一步的 *** 作假设先dd,再,会再执行dd命令
1、 set设置
set nu
set nonu
set readonly #设置只读文件,不能修改,只在当前环境有效,退出文件,再次打开,这个只读就无效了
set noreadonly #取消只读
2、 /查找
/after查找文档中的after可以找到所有的after,n向下翻,N向上翻
:/after查找文档中的after所在行可以找到所有的after,n向下翻,N向上翻
3、!执行命令
比如:查找root目录
:!ls /root/
4、 查找并替换
格式
:查找范围s/查找的词/要替换的词/
或者:查找范围s#查找的词#要替换的词#
或者:查找范围s%查找的词%要替换的词%,
即分隔符可以是/、#、%
其中, 查找范围 包括当前光标行;$末尾行;%全文;g一行内全部替换;i忽略大小写
比如 :,$s/after/before/ 表示在当前光标行到末尾$这个范围内,将after替换为before, 但是如果一行有多个after的话,只会把第一个after替换掉 。
比如 :%s/after/before/ 表示在全文,将after替换为before,但是如果一行有多个after的话,只会把第一个after替换掉。
比如 :%s/after/before/g ,表示在全文,将after替换为before,但是 如果一行有多个after的话,会把该行所有after替换掉,因为在命令里面加了g 。
比如 :%s/after/before/gi ,表示在全文,将after替换为before,且忽略大小写并替换一行内所有after。
比如 :%d或者dG ,表示删除全文
比如 :1,$-4d ,表示删除第一行到倒数第5行的数据
比如 :1,4y ,表示复制1到4行,再按p可粘贴这4行
vim可以分为三种状态,分别是 命令行模式(command mode) 、 输入模式(Insert mode) 和 底行模式(last line mode) ,这 3 种工作模式可随意切换,如下图所示。
使用vim编辑文件时,默认处于命令行模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等 *** 作。
下图所示是vim处于命令行模式的状态示意图。
在输入模式下,vim可以对文件执行写 *** 作,类似于在Windows系统的文档中输入内容。
使vim进行输入模式的方式是在命令模式状态下输入 i 、 I 、 a 、 A 、 o 、 O 等插入命令(各指令的具体功能下表所示),当编辑文件完成后按 esc 键即可返回命令模式。
下图所示为vim处于输入模式模式下的示意图。
底行模式用于对文件中的指定内容执行保存、查找或替换等 *** 作。
使vim切换到底行模式的方法是在 命令行模式 状态下按 : 键(注意是英文符号),此时vim窗口的左下方出现一个 : 符号,这是就可以输入相关指令进行 *** 作了。
指令执行后vim会自动返回命令行模式。如想直接返回命令行模式,按 esc 即可。
下图所示为vim进入底行模式后的状态。
对于新手来说,经常不知道自己处于什么模式。不论是自己忘了,还是不小心切换了模式,都可以按一次 esc 键返回命令行模式。如果你多按几次 esc 键后听到"嘀————"的声音,则代表你已经处于命令行模式了。
打开文件
打开文件时光标处于文件尾部
打开文件时,光标定位到第几行
字符移动
这些移动键都可以加上数字(5h:向左移动5个字符格)
单词移动
行内跳转
行间移动
在底行模式下,直接给出行号,实现跳转
用法:起始地址,结束地址 s @要替换内容@替换后内容@gi(@分隔符)
例 :1,$s/a/A/g 把文件中全部的a换替换成A,全局替换
显示取消行号
设定自动缩进(写脚本时)
查找到的文本高亮显示
语法高亮
/etc/vimrc :全局配置文件,永久有效
~/vimrc :个人配置文件,每个用户的家目录中,若不存在,手动创建
对于第一次用vim的童鞋,有几点需要提醒一下:
1、tab:命令或路径等的补全键,也是Linux用的最多的一个快捷键;
2、ctrl+a:光标迅速回到行首;
3、ctrl+e:光标迅速回到行尾;
4、ctrl+f:光标向右移动一个字符;
5、ctrl+b:光标向左移动一个字符;
6、ctrl+insert:复制命令行内容(mac系统不能使用);
7、shift+insert //粘贴命令行内容(mac系统不能使用);
8、ctrl+k //剪切(删除)光标处到行尾的所有字符;
9、ctrl+u //剪切(删除)光标处到行首的所有字符;
10、ctrl+w //剪切(删除)光标前的一个字符;
11、ctrl+y //粘贴 ctrl+k、ctrl+u、ctrl+w删除的字符;
12、ctrl+c //中断终端正在执行的任务并开启一个新的一行;
13、ctrl+h //删除光标前的一个字符(相当于退格键);
14、ctrl+d //退出当前shell命令行,如果是切换过来的用户,则执行这个命令回退到原用户;
15、ctrl+r //搜索命令行使用过的历史命令记录;
16、ctrl+g //从ctrl+r的搜索历史命令模式中退出;
17、ctrl+l //清楚屏幕所有的内容,并开启一个新的一行;
18、ctrl+s //锁定终端,使之任何人无法输入;
19、ctrl+q //解锁ctrl+s的锁定状态;
20、ctrl+z //暂停在终端运行的任务,使用"fg"命令可以使暂停恢复;
21、!! //执行上一条命令;
22、!pw //这是一个例子,是执行以pw开头的命令,这里的pw可以换成任何已经执行过的字符;
23、!pw:p //这是一个例子,是仅打印以pw开头的命令,但不执行,最后的那个“p”是命令固定字符;
24、!num //执行历史命令列表的第num条命令,num代指任何数字(前提是历史命令里必须存在);
25、!$ //代指上一条命令的最后一个参数,该命令常用于shell脚本中
26、esc+ //注意那个"“ 意思是获取上一条命令的(以空格为分隔符)最后的部分;
27、esc+b //移动到当前单词的开头;
28、esc+f //移动到当前单词的结尾;
进入vi的命令vi filename :打开或新建文件
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
一。命令模式1光标移动
k或ctrl+p 上
j或Ctrl+n 下
h或Backspace 左
l或space 右
0 行首
$ 行末
G或GG 到最后一行
gg 到第一行
Enter :光标下移一行
b或B 光标左移一个字至字首
e或E 光标右移一个字j至字尾
nG 光标移至第n行首
n+ 光标下移n行
n- 光标上移n行(按-时不需要按shift)
H 光标移至屏幕顶行
M 光标移至屏幕中间行
L 光标移至屏幕最后行
2替换
r 替换 eg: rt , 10 r 03删除
x 以字符删除
nx 删除n个字符
dd 行删除
ndd 删除n行
dG 删除光标所在位置以下的内容(包括光标所在的行)
u 撤消
J 将光标所在行和光标以下的行合并4复制粘贴
yy复制
nyy
p粘贴到光标下边
P粘贴到光标上边5退出
ZZ保存退出
ZQ不保存退出6查找
/ 正向查找
反向查找
n 继续查找
二。编辑模式(插入模式)i 左插入
a 右插入
o 下起一行插入I 行首插入
A 行末插入
O 上起一行插入
三。底行模式(末行模式)1读取文件
r 把另外一个文件读取到当前文件中来 eg: r /etc/passwd2替换
s 替换 语法: n1,n2s//$/gc3保存退出
n1,n2 w 路径 将n1到n2行另存为
w 保存
wq 保存退出
q 不保存退出
wq! 强制性保存退出set number 显示行号
set nonumber
set ignorance 在搜索中忽略大小写vi参数
-o 横屏
-O 竖屏
现在在redhat的linux系统中已经不再用vi了,而是用vim,下面是vi和vim的区别,但是vim完全兼容vi
Vi与Vim的区别
VIM 是 Unix 世界里极为普遍的全屏幕文书编辑器,几乎可以说任何一台 Unix 机器都会提供这套软体。熟悉 DOS 下的文书处理後,也许会感到 VIM 并不好用;Unix 上也已经发展出许多更新、更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外的软体。所以,学习 VIM 的基本 *** 作还是有好处,让你在各个不同的机器上得心应手。vi是unix的标准配置,一般默认都安装了;而vim是vi的一个提升版本,当然现在已经独立于vi,而且功能比vi要强大。 简单点来说,它们都是多模式编辑器,
不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,
而且还有一些新的特性在里面。
vim的这些优势主要体现在以下几个方面:1、多级撤消
我们知道在vi里,按u只能撤消上次命令,而在vim里可以无限制的撤消。2、易用性
vi只能运行于unix类中,而vim不仅可以运行于unix,windows ,mac等多 *** 作平台。3、语法加亮
vim可以用不同的颜色来加亮你的代码。4、可视化 *** 作
就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。5、对vi的完全兼容
某些情况下,你可以把vim当成vi来使用。
快捷键
Tab:命令补全
Ctrl+c:结束程序,但不终止终端
Ctrl+a:将光标移至输入行首,相当于Home键
Ctrl+e:将光标移至输入行末,相当于End键
Ctrl+k:删除从光标所在位置到行末
Ctrl+u:删除从光标所在位置到行首
Ctrl+b:光标左移一个字母
Ctrl+h:删除光标前一个字符,同 backspace 键相同
Ctrl+w:移除光标前的一个单词
Ctrl+t:交换光标位置前的两个字符
Ctrl+y:粘贴或者恢复上次的删除
Ctrl+d:删除光标所在字母,如果当前命令行中没有任何字母命令,则退出当前shell
Ctrl+f:光标右移
Alt+Backspace:向前删除一个单词
Shift+PgUp:将终端显示向上滚动
Shift+PgDn:将终端显示向下滚动
Ctrl+l:清屏
Ctrl+z: 将当前程序移到后台执行,如同输入的命令后面加&
Ctrl+r: 查询最近执行过的命令
快速执行过往的命令
执行上一条命令
将上一条命令中出现的”foo”改为”bar”并执行
执行最近第3条命令
执行最近一次以”net”开头的命令
如果你忘了最近一次”net”开头的命令是什么,你可以用下面的方法查询
该 *** 作只打印命令,但不执行。
以管理员权限执行,你可以加上”sudo”
使用上条命令的最后一个参数
这条命令的效果等同于cd /home/usr。如果要使用第一个参数,就改为!^,比如上例中vi !^就等同于vi /atxt。
使用特定命令的最后一个参数
表示搜索最近以”apt”开头的命令的最后一个参数
让上述表达式和参数符号在执行前显示原形
执行完这个命令后,在输入上述表达式和参数符号后,按一下空格,这些表达式和符号就立即变成它们所代表的 历史 命令和参数。可以将其放到”bashrc”中。
快速复制为备份文件
将”/etc/hosts”文件在同一目录下复制一份副本,并命名为”/etc/hosts_bak”。
回到上一个目录
Shell常用通配符
以上就是关于Linux之vi命令全部的内容,包括:Linux之vi命令、Linux下vim编辑器命令大全、linux 几个极其重要快捷键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)