Linux学习-vi编辑器
>>>>>>>>>>
vi编辑器简介
这是⽂本的编辑器,后⾯多次⽤到了这个命令,导致我不会,验证影响了我的进度
vi是Linux中最经典的⽂本编辑器,为什么使⽤这个,就是速度快,
vi的核⼼设计思想,让程序员的⼿指始终保持在键盘的核⼼区域,就能完成所有编辑操作
vi只能编辑不能排版,没有图像界⾯
vi不⽀持⿏标操作,没有菜单,只有命令,
vim是从vi发展出来的,有代码补全,等功能,被称为编辑器之神,
程序员都是⾸选vim,在Linux中直接把vi做成了vim的软连接,你使⽤vi命令就是使⽤的vim
>>>>>>>>>>#
vim编辑:
vim是LINUX系统必备啊
安装:sudo apt-get install vim
配置:sudo vim /etc/vim/vimrc,在这个⾥⾯进⾏配置,更加详细的配置上⽹查
>>>>>>>>>#
vi打开新建⽂件:
vi ⽂件名,⽂件存在就是打开,不存在就是新建,vi hello.py
vi ⽂件名 +⾏数,打开⽂件并且定位⾏,
异常处理,如果vi异常退出,在磁盘上可能会有保持的交换⽂件,下次在使⽤vi时,会看到发现交换⽂件,按d可以删除交换⽂件,注意输⼊的时候关闭输⼊法,在vim格式未保存时退出,或者两台机器同时操作⼀个⽂件时都会出现这个问题(保存在⼀个swap⽂件)
看看当前的⽂件内容是不是原先的内容,如果觉得和你想要的差不多不需要恢复,那就直接执⾏rm指
令删除那个swap⽂件
执⾏这个操作不会对你现在的⽂件产⽣影响。如果内容变化较⼤,你想要恢复,那就按:q
>>>>>>>>##
⼯作模式
有三种⼯作模式,这个很重要,
1,命令模式,打开和esc,
命令模式,使⽤vi命令打开⼀个⽂件,就是命令模式,
命令模式下,可以进⾏常规的操作,⽐如定位,翻页,复制,粘贴,删除,
在其他的图形编辑器下都是⿏标操作的,但是vi是通过命令的,
2,末⾏模式,冒号:
末⾏模式,执⾏保存,退出等操作,
w就是write,写⼊的意思,保存,
q就是退出,quit的意思,退出,
末⾏模式是出⼝,命令模式就是⼊⼝,
怎么进⼊出⼝,就是输⼊冒号:,进⼊末⾏模式,
从末⾏模式到命令模式,按⼀下esc就进⼊命令模式
3,编辑模式,i,
编辑模式,正常的编辑⽂字,
输⼊字母i,insert,就进⼊了编辑模式,不能使⽤⿏标,其他基本⼀样,
按esc返回命令模式,在命令模式可以快速定位,在编辑模式只能上下键定位代码,
编辑模式到命令模式,命令模式到末⾏模式,编辑模式不能直接到末⾏模式,
现在基本可以操作了
⼯作模式练习:
⽂件改完之后⽤命令q和wq和!w都不能退出来!上⽹⼀查才发现原来vi命令在直接⽤vi+enter进⼊⽂件的时候这些命令退出不了,
解决⽅法:直接⽤ctrl+z退出就⾏了
.test.py.swp  .test.py.swo,这种⽂件都是不正常退出⽂件导致的交换⽂件,这些可以使⽤rm直接删除,
末⾏模式的命令
:w 保持
:q 退出
:wq 保持退出
:q! 强⾏退出,不保存退出,这也是⽐较常⽤的,⽐如修改错了,
:x 这也是保持退出
>>>>>>>>###
常⽤命令:
vi⾮常强⼤,命令⾮常多,不要期望⼀下⼦都记住,
要按照使⽤频率学习,使⽤vi命令的时候,
命令线路图
重复次数,输⼊⼀个数字,跟上⼀个命令,就可以重复执⾏指定次数,
1,移动和选择(多练),这个⽐较多,
2,编辑操作,删除,复制,粘贴,替换,
3,撤销和重复
4,查和替换
5,编辑
注意关闭中⽂输⼊法,因为输⼊vi命令的时候是没有显⽰的,
>>>>>>>>>
进⼊vi的命令
vi filename :打开或新建⽂件,并将光标置于第⼀⾏⾸
vi +n filename :打开⽂件,并将光标置于第n⾏⾸
vi + filename :打开⽂件,并将光标置于最后⼀⾏⾸
vi +/pattern filename:打开⽂件,并将光标置于第⼀个与pattern匹配的串处
vi -r filename :在上次正⽤vi编辑时发⽣系统崩溃,恢复filename
filename :打开多个⽂件,依次进⾏编辑
>>>>>>>>##
移动命令
上下左右的移动,
h向左,j向下,k向上,l向右
⾏内移动,
w 向前移动单词,b先后移动⼀个单词,
0数字零⽴刻到⾏⾸,$dollor符号⽴刻到⾏尾,
^到⾏⾸,第⼀个不是空⽩字符的位置,
⾏数移动:
gg ⽂件顶部,G⽂件末尾,这个命令⾮常的重要,
数字gg,移动到指定⾏数,数字G移动到指定⾏数,
:数字,移动到对应⾏数,⼀般都是还是⽤go,
屏幕移动,
ctrl+b,向上翻页,ctrl+f,向下翻页,
H屏幕顶部,M屏幕中间,L屏幕底部,注意只需要⼀个⼤写字母,
段落移动, {这是往上寻段落,}这是往下寻段落,这是⽐较常⽤的切换⽅式
括号切换,⼩括号,⽅括号,花括号,都是程序员常⽤的,可以使⽤百分号%切换括号
如果有代码需要随后处理,需要参考别的代码,把编号移⾛,到时候怎么回来呢?
可以使⽤标记,可以使⽤m 输⼊⼀个字母,然后移动光标,怎么胡来输⼊单引号,然后输⼊直接的标记的字母  ‘k,不⽤管标记如何删除,相同的会覆盖,删除⾏标记也会删除,不⽤管,
选中命令,
要复制要先选中,可以使⽤v,切换到可视模式,V 切换到可视⾏模式,ctrl+v,可视块模式,可以竖着选,很厉害,
可视模式下,可以使⽤移动命令,快速选中⽂本,
>>>>>>>>>
撤销命令
u,在命令模式,输⼊u,撤销上次的命令,可以不停的回撤,到最初的命令,undo,
ctrl+r,在命令模式,就是恢复撤销的命令,
这两个⾮常的重要,保命的命令,
删除命令
x 删除光标所在的字符,或者选中的字符,
5+x,这就是删除5个字符,
d 需要和移动命令结合在⼀起⽤,删除选中的⽂本,
dd 可以把光标所在的⾏删除
D,可以删除⾄⾏尾,
删除命令可以结合移动命令使⽤,所以移动命令很重要,
复制和粘贴的命令
y 复制,copy的英⽂,yy 复制⼀⾏,可以myy复制多⾏
p粘贴 paste,,5+p,就是粘贴的内容复制5次,
注意1:删除命令,本质就是剪切,可以再复制回来,⽐如dd,删除⼀⾏,p,就复制回来了,
注意2:如果在其他软件复制的内容,你在命令模式p粘贴是不⾏的,要i,进⼊编辑模式,点击右键粘贴就对了,按esc就可以返回命令格式了,
替换命令
如果修改⼀个单词,就可以使⽤替换命令,⽐较快,否则就是i进⼊编辑模式,然后修改,然后esc,才可以,
r,替换当前字符,输⼊r,然后输⼊H,这样就会把当前字符替换成⼤H了,
如果是使⽤编辑模式呢,要输⼊i,然后删除,然后⼤写输⼊,然后esc退出编辑模式,
R,替换当前⾏光标后的所有内容,
linux系统vim编辑器缩排和重复执⾏命令
缩排就是缩进,空格越少级别越⾼,
>> 这是向右缩进
<< 这是向左移动代码
. 重复上次的操作,
>>>>>>>>>##
/str  查str
n查下⼀个
N查上⼀个
* 单词快速匹配,这是向上寻,
# 单词快速匹配,这是向下寻,
>>>>>>>>>>##
查和替换:
:%s///g,这就是替换的格式,
全局替换
:%s/旧⽂本/新⽂本/g,,这是全局替换,:%s/hello/world/g
可视区域替换
可视区域范围内的替换,这样可以控制开发的风险,
先选中,然后:s/旧⽂本/新⽂本/g,只是没有百分号,这就是可视区域替换
确认替换,
这是推荐使⽤的⽅式,
%s///gc,confirm确认的意思,
(y/n/a/q/l/^E/^Y)?yes,no,all替换所有,q退出,只需要记住前四个
⽽且这个是每⼀个替换都要确认,
>>>>>>>>>##
进⼊编辑命令的⽅式:
I,⼤写的i,可以在⾏⾸插⼊,
A,这个是在⾏尾进⼊编辑模式,这个⽤的多,
i,当前字符前⾯添加⽂本,
a,当前字符后添加⽂本,这个⽤的少,
o⼩写,在光标上⽅插⼊⼀个空⾏,O,
O⼤写,在光标下⽅插⼊⼀个空⾏,
编辑和数字是可以连起来⽤的,
1,输⼊10,表⽰重复10次
2,输⼊i进⼊编辑模式
3,输⼊*,也就是重复的⽂字,
4,按下esc,返回命令模式,返回之后,vi就会把2,3两步重复10次,
所以在编辑之前不要随便输⼊数字,会重复的,
利⽤可视块,对多⾏代码添加注释,
1,移动到需要增加注释的第⼀⾏代码,按^来到⾏⾸
2,ctrl+v,进⼊可视块模式
3,输⼊⼤I进⼊编辑模式,并在⾏⾸插⼊,
4,输⼊#,也就是注释
5,按下esc回到命令模式,返回之后会在选中的每⼀⾏添加#号了,
>>>>>>>###
分屏命令:
末⾏命令拓展,
e.,在末⾏模式,输⼊e,会打开内置的⽂件浏览器,浏览当前⽬录下的⽂件,edit
到⽂件,然后回车,就到了另⼀个⽂件了,注意,这个时候⼀定⽂件要保存,
在末⾏模式,e ⽂件名,直接到了另⼀个⽂件,不知道⽂件名,就是e. 点,
这样可以不⽤退出vi,就可以继续编辑另⼀个⽂件了,
:n ⽂件名,这是新建⼀个⽂件,
:w ⽂件名,这是把当前编辑的⽂件全部写⼊⼀个⽂件,当前编辑的⽂件不会切换,
w,为什么要这么设计?可以阶段性的备份代码,
分屏命令练习
sp ⽂件名,横向增加分屏
:vsp ⽂件名,纵向分屏
ctrl+w,这是快捷键
r,互换窗⼝
c 关闭窗⼝,
###
把⼀个⽂件清空的办法:
使⽤ echo 命令清空⽂件
在这⾥,你可以使⽤ echo命令将空字符串的内容重定向到⽂件中,具体如下:# echo "" > access.log
或者
# echo > access.log
>>>>>>>>#### >>>>>>>>###

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

发表评论