学习笔记15:Linux终端中的Vi-Vim编辑器常用命令

Vi(Visual interface):使用ssh远程登录服务器时,在没有图形界面时编辑文件,常见的需要修改的文件包括源程序,配置文件。
特点:1.没有图形界面的功能强大的编辑器;2.只能是编辑文本内容,不能对字体,段落进行排版;3.不支持鼠标操作;4.没有菜单;5.只有命令。
Vim = Vi improve :由Vi发展出来的一个文本编辑器,支持代码补全,编译及错误跳转等方便编程的功能,在linux很多发行版中,直接把vi做成vim的软连接。

(1)Vi三种基本工作模式
1.命令模式:通过命令实现常规编辑操作,如定位,翻页,复制,粘贴等。
Vi入口 {
vi 文件名:打开已存在文件或新建一个文件。
vi 文件名 +行数:打开一个文件并定位到指定行(若只写了+而没有行数,则直接跳到末尾)。
d:当vi编辑时异常退出,可能会存在交换文件,当重新打开文件时会提示发现交换文件,保证输入法处于英文状态并按下d删除,不保存异常退出前对文件的修改。}
2.编辑模式:正常文件编辑。
3.末行模式:保存,退出操作,Vi出口。
:w :保存(write) :q :退出,不保存不允许退出(quit) : q! :强制退出,不保存退出(quit) : wq :保存并退出(write&quit) : x :保存并退出。
:e . :打开内置文件浏览器,浏览当前目录下的所有文件。
:e 文件名:浏览已保存的文件。
:n 文件名:新建文件。
:w 文件名:文件另存为,且仍能继续编辑当前文件,不切换到另存的文件,可阶段性备份文件。

三种模式切换图:
在这里插入图片描述
(2)常用命令
命令学习线路:1.重复次数(数字加命令,重复执行指定次数);2.移动和选择(快速移动到编辑代码块);3:编辑操作(删除,复制,粘贴,替换,缩排);4:撤销和重复;5:查找替换;6:编辑。
1)移动
上下左右{ h:向左(食指) j:向下(食指) k:向上(中指) l:向右(无名指)}
行内移动{ w:向后移动一个单词; b:向前移动一个单词; 0:行首; ^:行首第一个不是空白字符的位置;$:行尾 }
行数移动{ gg:文件顶部;G:文件尾部;数字gg或数字G或:数字:移动到数字对应行数}
屏幕移动{ Ctrl+b:向上翻页;Ctrl+f:向下翻页;H:屏幕顶部;M:屏幕中间;L:屏幕底部 }
段落移动{ {:左小括号代表上一段;}:右小括号代表下一段;%:用于成对括号的匹配和切换 }
标记:某一块代码可能需要稍后处理,这时可添加标记,在需要时快速跳转,若在其他行添加相同名称的标记,之前的标记会被替换。{ mx:添加标记x,x是任意大小写字母 ; 'x:直接定位到标记x所在位置 }
选中文本{ v:可视模式,从光标位置开始到光标结束位置按照正常模式选择文本;V:可视行模式,选中光标经过的所有行;Ctrl+v:可视块模式,垂直方向选中文本;Esc:退出可视模式 }
注意:选中文本命令进入可视模式可与上述移动命令连用。
举例:利用可视块给多行代码增加注释{ 1.移动到要添加注释的第1行代码,按^来到行首;2.按Ctrl+v进入可视化模式;3.使用j向下连续选中要添加的代码行;4.输入I进入编辑模式,并在行首插入;4.输入注释符号#;5.按下esc返回到命令模式,在选中行每行代码前已插入注释符号# }
2)编辑
撤销{ u:撤销上次命令;Ctrl+r:回复撤销的命令 }
删除{ x:删除光标所在字符或者选中文字;d(+移动命令使用):删除移动命令对应的内容(常见搭配:dw从光标位置删除到单词末尾,d0从光标位置删除到一行的起始位置,d}从光标位置删除到段落结尾,d代码行G从光标所在行删除到指定代码行之间的所有代码,d’a从光标所在行删除到标记a之间的所有代码);dd:删除光标所在行,可以ndd删除n行;D:删除至行尾 }
复制{ y:复制;yy:复制一行,nyy复制n行;p:粘贴 注意:在其他软件的Ctrl+c复制的内容不能直接p粘贴,需先进入编辑模式(i),然后右键粘贴,返回命令模式(esc)。}
替换{ r:替换当前字符;R:替换当前行光标后的字符(不用进入编辑模式,替换完成后按ESC返回命令模式 }
缩排{ >> :向右增加缩进四个空格;<<:向左减少缩进四个空格(在可视模式下,同时对多行进行缩排只需要一个>或<即可); .:用一个点操作可重复执行缩排。}
插入(进入编辑模式){ i:在当前字符前插入文本;I:在行首插入文本;a:在当前字符后插入文本;A:在行末添加文本;o:在当前行后面插入一空行;O:在当前行前面插入一空行 }

3)查找替换
常规查找{ *:向后查找到当前光标所在单词; #:向前查找到当前光标所在单词(单词快速匹配); /str:查找str;n:查找下一个;N:查找上一个 }
查找并替换(需在末行模式下执行){ :%s/旧文本/新文本/g:一次性替换文件中的所有出现的旧文本 }
可视区域替换(需在末行模式下执行){ :s/旧文本/新文本/g:先选中要替换文字的范围(V),进行可视区域替换 }
确认替换(需在末行模式下执行){ :%s/旧文本/新文本/gc:是否替换会有提示(y替换,n不提换,a替换所有,q退出替换,l最后一个并把光标移到行首,^E/Y向下/上滚屏}
4)分屏
分屏{ :sp 文件名:横向分屏; :vsp 文件名:纵向增加分屏 }
窗口切换(下面窗口命令需先按Ctrl+w){ w:切换到下一个窗口; r:互换窗口; c:关闭当前窗口,但不能关闭最后一个; q:退出当前窗口,如果是最后一个窗口,则关闭vi; o:关闭其他窗口 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值