关于文本编辑器
Linux下的文本编辑器有很多,比如图形模式的gedit、kwrite、OpenOffice ……,文本模式下的编辑器有vi、vim(vi的增强版本)……,vi是Linux中默认的编辑器。我们有必要介绍一下vi的用法,以让Linux入门级用户在最短的时间内学会使用它。 而vim作为vi的增强版本,向来有着最好用的IDE之称,这来自于其继承自vi的多样化的编辑体验,以及自身对多种代码的支持。
vi 编辑器
为什么要学会简单应用vi?众所周知,linux中一切皆文件,虽然并非所有文件都是用文本编辑器进行read or write,但一般来说,几乎所有的配置文件都需要用到文本编辑器。vi或vim是Linux中最基本的文本编辑工具,vi或vim虽然没有图形界面编辑器那样点鼠标的简单操作,但vi编辑器在系统管理、服务器管理中,永远不是图形界面的编辑器能比的。当你没有安装X-windows桌面环境或桌面环境崩溃时,我们仍需要是用字符模式下的编辑器vi,而在进行纯字符编辑时,vi或vim无疑是一个高效的工具。
vi 编辑器的使用方法
如何调用vi
[root@localhost ~]# vi filename
vi 常用的的三种模式
命令模式,用于输入命令; 插入模式,用于编辑文本; 末行模式,用于各种功能的实现。
flowchart LR a(vi/vim 文件)-->b(命令模式) b--aio等键-->c(插入模式) b--:-->d(末行模式) c--esc键-->b d--esc键-->b
光标移动
当我们进入vi的命令模式后,我们可以用下面的一些键位来移动光标:
k 向上移动一行 j 向下移动一行
h 向左移动一个字符 l 向右移动一个字符
ctrl+b 向上移动一屏 ctrl+f 向下移动一屏
当然,默认的:向上箭头=向上移动,向下箭头=向下移动,向左箭头=向左移动,向右箭头=向右移动。 我们编辑一个文件时,对于 j、k、l和h键,还能在这些动作命令的前面加上数字,比如 3j,表示向下移动3行。
文本内容的删除、复制和粘贴
命令模式是vi或vim的默认模式,无论我们处于其它什么模式,都可以通过ESC键切换过来。 当我们按ESC键后,接着再按下特定的按键组合,可以实现某些功能,如删除、复制和粘贴。
按键 | 功能 |
---|---|
x | 删除一个字符 |
#x | 删除几个字符,#表示数字,比如3x |
dw | 删除一个单词 |
#dw | 删除几个单词,#用数字表示,比如3dw表示删除三个单词 |
dd | 删除一行 |
#dd | 删除多个行,#代表数字,比如3dd 表示删除光标行及光标的下两行 |
d$ | 删除光标到行尾的内容 |
J | 清除光标所处的行与上一行之间的空格,把光标行和上一行接在一起 |
其实删除也带有剪切的意思,当我们删除文字时,可以把光标移动到某处,然后按P^大写^键就把内容贴在光标之前,然后再移动光标到某处,然后再按p^小写^键将内容贴在光标之后。
取决于剪切的内容是整行还是某些字符,在进行粘贴时,也会有所不同,如剪切的是整行,按下p键粘贴时,会在光标行的下方进行粘贴,而如果剪切的是某些字符,则会直接在光标后进行粘贴。
按键 | 功能 |
---|---|
yw | 复制一个单词 |
y#w | 复制几个单词,#用数字表示,比如y3w表示复制三个单词 |
yy | 复制一行 |
#yy | 复制多个行,#代表数字,比如3yy 表示复制光标行及光标的下两行 |
y$ | 复制光标到行尾的内容 |
yG | 复制光标到末尾所有行 |
插入模式(文本的插入)
i 在光标之前插入; a 在光标之后插入;
I 在光标所在行的行首插入; A 在光标所在行的行末插入;
o 在光标所在的行的下面插入一行; O 在光标所在的行的上面插入一行;
s 删除光标位置的一个字符,然后进入插入模式; S 删除光标所在的行,然后进入插入模式;
末行模式下的保存与退出
作为win下notepad的受害者,很多vi编辑器的初学者经常采用错误的方式退出vi,这很可能使得文件的编辑失去作用。正确的保存与退出,需要输入:号,进入末行模式,并按某些按键实现具体的功能。
按键 | 功能 |
---|---|
:w | 保存 |
:w filename | 另存为filename |
:wq! | 保存退出 |
wq! filename | 以filename为文件名保存后退出 |
q! | 不保存退出 |
恢复修改及恢复删除操作
按ESC键返回命令模式,然后按下u键可以撤消最近的一次修改或删除操作,如果您想撤消多个以前的修改或删除操作,请按多按几次u。这和Word的撤消操作没有太大的区别。
关于行号
有时我们配置一个程序运行时,会出现配置文件X行出现错误 。这时我们要用到行号相关的操作,按下ESC键回到命令模式,然后输入:set nu
即可设置显示行号,再次按下:set nonu
取消行号显示,并且可按下#G快速跳转第#行。
查找和替换功能
查找
首先,我们要进入ESC键,进入命令模式,我们输入/或?就进入查找模式了。
/word
注:正向查找word,按n键,把光标移动到下一个符合条件的地方,按N键,把光标移动到上一个符合条件的地方。
?word
注:反向查找word,按n键,把光标移动到下一个符合条件的地方,按N键,把光标移动到上一个符合条件的地方。
替换
按ESC键进入命令模式。
按下:s /old/new
注:把当前光标所处的行中的第一个old单词,替换成new
:s /old/new/g
注:把当前光标所处的行中的old单词,替换成new,并把所有old高亮显示;
:%s /old/new
注:把文档中所有行的第一个old替换成new;
:%s /old/newg
注:把文档中所有的old替换成new;
:#,# s /old/new/g
注:#号表示数字,表示从多少行到多少行,把old替换成new。
在这之中,g表示全局查找。
举例说明: 比如我们有一篇文档要修改,我们把光标所在的行,把所有单词the,替换成THE,应该是 :s /the/THE/g
我们把整篇文档的所有的the都替换成THE,应该是 :%s /the/THE/g
我们仅仅是把第1行到第10行中的the,替换成THE,应该是 :1,10 s /the/THE/g
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1096485692@qq.com