Vim编辑器

vi的使用

基本上 vi 共分为三种模式,分别是“一般指令模式”、“编辑模式”与“命令行命令模式”。 这三种模式的作用分别是:
1、 一般指令模式 (command mode)
以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、贴上”来处理你的文件数据。
2、 编辑模式 (insert mode)
在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现“ INSERT或 REPLACE ”的字样,此时才可以进行编辑。而如果要回到一般指令模式时, 则必须要按下“Esc”这个按键即可退出编辑模式。
3、命令行命令模式 (command-line mode)
在一般模式当中,输入“ : / ? ”三个中的任何一个按钮,就可以将光标移动到最下面那一列。在这个模式当中, 可以提供你“搜寻数据”的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!
1)、简单执行范例

  • 使用“ vi filename ”进入一般指令模式
    [dmtsai@study ~]$ /bin/vi welcome.txt
    在 CentOS 7 当中,由于一般帐号默认 vi 已经被 vim 取代了,因此得要输入绝对路径来执行才行!
    直接输入“ vi 文件名”就能够进入 vi 的一般指令模式了。 如果使用一般帐号来测试,得要使用绝对路径的方式来执行 /bin/vi 才好!另外,请注意,记得 vi 后面一定要加 文件名,不管该文件名存在与否!
  • 按下 i 进入编辑模式,开始编辑文字
    在一般指令模式之中,只要按下 i, o, a 等字符就可以进入编辑模式了!在编辑模式当中,你可以发现在左下角状态列中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示啰!这个时候,键盘上除了 [Esc] 这个按键之外,其他的按键 都可以视作为一般的输入按钮了,所以你可以进行任何的编辑啰!
  • 按下 [ESC] 按钮回到一般指令模式
    好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 [Esc] 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!!
  • 进入命令行界面,文件储存并离开 vi 环境
    OK,我们要存盘了,存盘 (write) 并离开 (quit) 的指令很简单,输入“:wq”即可存盘离开! (注意了,按下 : 该光标就会移动到最下面一列去!) 这时你在提示字符后面输入“ ls -l ”即可看到我们刚刚创建的 welcome.txt 文件啦!

2)、按键的说明

  • 第一部分:一般模式可用的按键说明,复制粘贴、光标移动、查找替换

移动光标的方法

h 或向左方向键(←)光标向左移动一个字符
j 或 向下方向键(↓)光标向下移动一个字符
k 或 向上方向键(↑)光标向上移动一个字符
l 或 向右方向键(→)光标向右移动一个字符
[Ctrl] + [f]屏幕“向下”移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]屏幕“向上”移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]屏幕“向下”移动半页
[Ctrl] + [u]屏幕“向上”移动半页
+光标移动到非空白字符的下一列
-光标移动到非空白字符的上一列
n那个 n 表示“数字”,例如 20 。按下数字后再按空白键,光标会向右移动这一列的 n 个字符。例如 20 则光标会向后面移动 20 个字符距离。
0 或功能键[Home]这是数字“ 0 ”:移动到这一列的最前面字符处 (常用)
$ 或功能键[End]移动到这一列的最后面字符处(常用)
H光标移动到这个屏幕的最上方那一列的第一个字符
G移动到这个文件的最后一列(常用)
gg移动到这个文件的第一列,相当于 1G 啊! (常用)
nn 为数字。光标向下移动 n 列(常用)

搜寻与取代

/word向光标之下寻找一个名称为 word 的字串。例如要在文件内搜寻 vbird 这个字串,就输入 /vbird 即可!(常用)
:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 列之间寻找 word1 这个字串,并将该字串取代为 word2 !举例来说,在 100 到 200 列之间搜寻 vbird 并取代为 VBIRD 则: “:100,200s/vbird/VBIRD/g”。(常用)
:1,$s/word1/word2/g从第一列到最后一列寻找 word1 字串,并将该字串取代为 word2 !(常用)
:1,$s/word1/word2/gc从第一列到最后一列寻找 word1 字串,并将该字串取代为 word2 !且在取代前显示提示字符给使用者确认 (confirm) 是否需要取代!(常用)

删除、复制与粘贴

x, X在一列字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是倒退键) (常用)
dd删除光标所在的那一整行(常用)
nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
yy复制光标所在的那一列(常用)
nyyn 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
p Pp 为将已复制的数据在光标下一列贴上,P 则为贴在光标上一列! 举例来说,我目前光标在第 20 列,且已经复制了 10 列数据。则按下 p 后,那 10 列数据会贴在原本的 20 列之后,亦即由 21 列开始贴但如果是按下 P 呢? 那么原本的第 20 列会被推到变成 30 列。 (常用)
u复原前一个动作。(常用)
[Ctrl]+r复原前一个动作。(常用)
.不要怀疑!这就是小数点!意思是重复前一个动作(重复上一个命令)的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点“.”就好了! (常用)
  • 一般模式切换到命令行界面可用的按钮说明
    命令行界面的储存、离开等指令
:w将编辑的数据写入硬盘文件中(常用)
:w!若文件属性为“只读”时,强制写入该文件。不过,到底能不能写入, 还是跟你对该文件的文件权限有关啊!
:q离开 vi (常用)
:q!若曾修改过文件,又不想储存,使用 ! 为强制离开不储存盘案。
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
  • 一般模式切换到编辑模式可用的按钮说明
i I进入编辑模式(Insert mode): i 为“从目前光标所在处插入”, I 为“在目前所在列的第一个非空白字符处开始插入”。 (常用)
a, A进入编辑模式(Insert mode): a 为“从目前光标所在的下一个字符处开始插入”, A 为“从光标所在列的最后一个字符处开始插入”。(常用)
o, O进入插入模式(Insert mode): 这是英文字母 o 的大小写。o 为“在目前光标所在的下一列处插入新的一列”; O 为在目前光标所在处的上一列插入新的一列!(常用)
r, R进入取代模式(Replace mode): r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
[Esc]退出编辑模式,回到一般指令模式中(常用)

特别注意,在 vi 中,“数字”是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。举例来说,要删除 50 列,则是用 “50dd” 对吧! 数字加在动作之前~那我要向下移动 20 列呢?那就是“20j”或者是“20↓”即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值