Linux命令:vi编辑器
Linux命令: vi编辑器
vi编辑器(1)
》vi是Unix世界中最通⽤的全屏编辑器, Linux中⽤的是vi的加强版vim, vim同vi完全兼容.(当然如果系统中没有安装vim,则可以通过apt-get install vim-gtk 或者[sudo apt-get install vim-gtk] 进⾏安装)
》在Linux系统中,vi和vim是完全等价的两个命令,都可以启动vi编辑器。
》vi编辑器的运⾏状态共有三种模式。
》⼀般模式(Normal mode):输⼊vi命令进⼊vi⽂本编辑器的时候,就是⼀般模式了,该模式将⽤户的输⼊看作命令,这个模式允许⽤户移动游标,且允许搜索⽂本功能。
》插⼊模式(Instert mode):从⼀般模式按下I, o, a等字幕都可以进⼊编辑模式,在此模式下,vi将⽤户的输⼊插⼊到当前光标位置,修改暂时保存到缓冲区,按Esc按钮则从编辑模式退回到⼀般模式。
》命令模式(command mode):可输⼊(:、/、?)进⼊到命令模式)输⼊:wq(当⽂件权限位为:444即-r--r--r--时,需要使⽤:wq! 来强制写⼊并保存退出)保存当前⽂件,或者输⼊:q!直接退出。
vi编辑器模式切换图⽰(摘⾃⽹络):
1. vi 编辑器(写⽂件/程序)  编写java程序
1. vi filename.filetype(如:vi Hello.java)
2. 输⼊i (⼩写I)[进⼊插⼊模式i/I、r/R、a/A]开始写java类
3. 输⼊esc键[进⼊到命令模式]
4. 输⼊: (冒号) [wq表⽰退出并保存, q!退出不保存]
5. 编译⽂件: javac Hello.java(若没有jdk包,控制台会提⽰你需要安装jdk, apt-get install jdk包)
6. 6.        运⾏java程序:java Hello
1. vi 编辑器(写⽂件/程序)  编写C/C++程序
1. 输⼊vi Hello.cpp
2. 输⼊i(输⼊C/C++程序)
3. 输⼊esc退出插⼊模式进⼊命令模式
4. 4.        输⼊:wq退出并保存⽂件
5. 5.        编译(C/C++程序) 输⼊: gcc –o Hello Hello.cpp或者gcc Hello.cpp(使⽤gcc Hello.cpp编译,系统会默认⽣成可执⾏⽂件
a.out,为避免覆盖掉之前有可能存在a.out的⽂件应该使⽤gcc –o Hello Hello.cpp, 此时会编译出⼀个Hello的可执⾏⽂件)
6. 6.        运⾏: ./Hello或者./a.out
vi编辑器(2)
》vi编辑器提供了强⼤的搜索和替换功能
linux系统vim编辑器》⾸先按下斜杠键(/), 光标会⾃动移动到vi编辑器下⽅的命令⾏,⽤户输⼊待搜索的字符串,按下Enter键开始搜索, vi编辑器可能⽤三种⽅式响应⽤户的搜索。
》vi编辑器的替换命令的基本格式:
:
s/old_string/new_string
:s/old_string/new_string
按键说明(除了上⾯i、a、r、[Esc]、:wq、:wq!、:q还有许多按键)
1. ⼀般模式下可⽤按键说明: 光标移动、复制粘贴、查替换等
移动光标的⽅法
h或向左箭头键(←)光标向左移动⼀个字符串
j或向下箭头键(↓)光标向下移动⼀个字符串
j或向下箭头键(↓)光标向下移动⼀个字符串
k或向上箭头键(↑)光标向上移动⼀个字符串
l或向右箭头键(→)光标向右移动⼀个字符串
当要移动多⾏或者多列的时候,可以按下数字键+(hjki)组合移动光标。如要向下跳到30⾏,可30j,要向左跳5列可按下5h.
Ctrl + f (Forward)屏幕向下移动⼀页,相当于 [PageDown]键(常⽤)Ctrl + b(back)屏幕向上移动⼀页,相当于 [PageUp]键(常⽤)Ctrl + d(down)屏幕向下移动半页
Ctrl + u(up)屏幕向上移动半页
-(数字键上的 -)光标移动到⾮空格的上⼀⾏
+(数字键上的+)光标移动到⾮空格的下⼀⾏
n<space>(数字+空格键)n为数字,即将光标移动到当前⾏当前光标后的第n个
字符出(光标右移动n个字符)。如12<space>:表⽰将
光标移到该⾏当前光标后的第12个字符处
0数字“0”,光标回到⾏⾸(常⽤)
$$美元符号,光标移动到⾏尾(常⽤)
H光标移动到屏幕的最上⽅那⼀⾏的第⼀个字符处
M光标移动到屏幕中央那⼀⾏的第⼀个字符处
L光标移动到屏幕的最下⽅⼀⾏的第⼀个字符处
G光标移动到这个⽂件的最后⼀⾏的第⼀个字符处(常
⽤)
nG n为数字,光标移动这个⽂件的第n⾏。如:30G,表
⽰光标移动到这个⽂件第30⾏的第⼀个字符处。
gg光标移动这个⽂件的第⼀⾏的第⼀个字符处。相当
于:1G(常⽤)
n[Enter]n是数字,光标向下移动多少⾏。如:10+Enter表⽰向
下移动10⾏。(常⽤)
查替换
/word向下查⼀个名称为word的字符串。例如要在⽂件中
查 take这个字符串,输⼊ /take 即可(常⽤)word向上查⼀个名称为word的字符串。
n n为英⽂,n按键。表⽰重复查前⼀个查的操作。
例如刚才我们查 take这个字符串,在输⼊ /take之
后,vi会将光标定位到向下的第⼀个take出现的位
置,按下n键之后,会继续查下个 take 出现的位
置。按 ?take 同理,会向上查take出现的位置。
N N为英⽂键,与n刚好相反,为“反向”进⾏前⼀个查
的操作。例如输⼊ /take 后,按下N键,会向上查
take。
使⽤ /word或者?word的时候,配合n键或N键⾮常有帮助。
:n1, n2s/word1/word2/g n1与n2为数字。在第n1与n2⾏之间查word1这个字
符串,并将该字符串替换为word2.例如:在100到
200⾏之间查word1并替换为word2 “ :100,
200s/word1/word2/g”(常⽤)
:1,$s/word1/word2/g从第⼀⾏到最后⼀⾏查word1 字符串,并将该字符
串替换为word2.(常⽤)
:1,$s/word1/word2/gc从第⼀⾏到最后⼀⾏查word1 字符串,并将该字符
串替换为word2.且在替换前显⽰提⽰字符给⽤户确认
(confirm)是否需要替换(常⽤)
删除、复制、粘贴
x、X在⼀⾏字当中,x为向后删除⼀个字符[相当于del
键],X为向前删除⼀个字符[相当于 Backspace键]
(常⽤)
nx 、 nX n为数字,nx向后连续删除n个字符。例如,向后连续
删除5个字符“5x”。nX向前连续删除n个字符.例如向
前连续删除12个字符“12X”
dd删除光标所在的那⼀整⾏(常⽤)
ndd n为数字。删除光标所在⾏的向下n⾏,例如20dd,
表⽰向下删除20⾏。(常⽤)
d1G删除光标所在⾏到第⼀⾏的所有数据
dG删除光标所在⾏到最后⼀⾏的所有数据
d$删除光标所在位置到该⾏的最后⼀个字符
d0为数字“0”。删除光标所在处到该⾏第⼀个字符
yy复制光标所在的那⼀⾏(常⽤)
nyy n为数字。复制光标所在的向下n⾏,例如20yy则是复
nyy n为数字。复制光标所在的向下n⾏,例如20yy则是复
制20⾏(常⽤)
y1G复制光标所在⾏到第⼀⾏的所有数据
yG复制光标所在⾏到最后⼀⾏的所有数据
y0复制光标所在的那个字符到该⾏⾏⾸的所有数据
y$复制光标所在的那个字符到该⾏⾏尾的所有数据
p,P p为将已经复制的数据在光标下⼀⾏粘贴,P则为光标
的上⼀⾏粘贴。例如:⽬前光标在15⾏处,且已经复
制了8⾏的数据,则按下p后,那8⾏的数据就会粘贴
在原本的15⾏之后,也即在16⾏开始粘贴。但如果按
下P,则当前15⾏会变到23⾏处。(常⽤)
J将光标所在⾏与下⼀⾏的数据结合成同⼀⾏。
c重复删除多个数据。例如:向下删除 10⾏,“10cj”(将
会进⼊到编辑模式,要复原按 Esc键退出,按下 u键
即可还原),向上删除3⾏“3ck”
编辑将更加得⼼应⼿。
.⼩数点。表⽰重复前⼀个操作。例如:想要重复删
除、重复粘贴等操作,可以按下⼩数点“.”。(常⽤)
2.      ⼀般模式切换到编辑模式按键
进⼊插⼊或替换的编辑模式
i、I进⼊插⼊模式(Insert mode):i为从当前光标处插
⼊;I为在⽬前所在⾏的第⼀个⾮空格符处开始插⼊
(常⽤)
a、A进⼊插⼊模式(Insert mode):a为从当前光标处的
下⼀个字符插⼊;A为在光标所在⾏的最后⼀个字符
处开始插⼊(常⽤)
o、O[字母o的⼤⼩写]进⼊插⼊模式(Insert mode):o为从当前光标处的
下⾏插⼊新的⼀⾏;O为光标所处的上⼀⾏插⼊新的
⼀⾏(常⽤)
r、R进⼊替换模式(Replace mode):r替换当前光标处
那个字符⼀次;R⼀直替换到光标所在的⽂字,直到
按下[Esc键]为⽌。(常⽤)
当按下如上按键之后,vi编辑器的左下⽅会出现“——INSERT——”或“——REPLACE——”的字样。
Esc退出编辑模式,回到⼀般模式(常⽤)
3.      ⼀般模式切换到命令⾏模式的按键
命令⾏的保存、离开等命令
:w将编辑的数据写⼊到硬盘⽂件中(常⽤)
:w!若⽂件权限位“只读”,强制写⼊该⽂件。(当然到底
能不能强制写⼊还是看你对当前⽂件的⽂件权限。):q离开vi编辑器(常⽤)
:q!若曾修改⽂件,⼜不想保存离开,使⽤“!”为强制离开
不保存。
“!”感叹号,在vi编辑器中经常具有“强制”的意思。
:
wq保存⽂件后离开vi编辑器。若为“:wq!”则表⽰强制保
存后离开(常⽤)
ZZ若⽂件没有改动,则不保存离开;若⽂件已被改动,
则保存后离开。
:w[filename]将编辑的数据保存成另⼀个⽂件(相当于另存⽂件):r[filename]在编辑的数据中,读⼊另⼀个⽂件的数据,即
:r[filename]在编辑的数据中,读⼊另⼀个⽂件的数据,即
将“filename”这个⽂件内容加到光标所在⾏后⾯
:n1, n2 w [filename]将n1到n2的内容保存成filename这个⽂件
:! command暂时离开vi编辑器到命令⾏模式执⾏command的显⽰
信息。例如“:! ls /root”即可在vi当中查看 /root下⾯以ls
输出的⽂件信息

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。