首先,请注意,以下所讲的,全部是键盘在英文输入模式下。如果键盘是在中文输 入模式,全部的指令不正确。

vi 有两种模式: Command Mode(指令模式) and Insert Mode(我姑且称为书写模 式).

一.启动 vi 的方法:

$vi abc.txt //abc.txt 可以是事先不存在的文件名字;

abc.txt 也可以是事先存在的 或者就:

$vi //如我们在课堂上做的,写了一些东西之后,

再用指令: “:w abc.txt”存 为”abc.txt”

二. 模式转换 A. 进入指令模式(Command Mode): (无论当前是什么模式)按”Esc”键,进入指令模式(Command Mode)。可以多按几 次”Esc”键。 B. 从指令模式(Command Mode)进入书写模式(Insert Mode):

(1)i: 代表 insert. 如下,小写和大写有不同的插入位置: 按”i”键:从光标所在处前面一个字母开始输入。比如,假设在指令模式时, 你的光标在如下红色的”m”: I have a dream. 按”i”键,你的输入就在”drea”之后,”m”之前。 按”I”键(就是 SHIFT + i),光标移动到这一行的最开头,并且成为书写模式。

(2)a: 代表 append. 如下,小写和大写有不同的插入位置: 按”a”键:从光标所在处后面一个字母开始输入。比如,假设在指令模式时, 你的光标在如下红色的”m”: I have a dream. 按”a”键,你的输入就在”dream”之后,”.”之前。 按”A”键(就是 SHIFT + a),光标移动到这一行的最᳿尾,并且成为书写模式。

(3)o: 代表 open a new line(新开一行)。如下,小写和大写有不同的插入位置: 按”o”键:从你光标所在的当前行,下面新开一行,并且成为书写模式。 按”O”键:从你光标所在的当前行,上面新开一行,并且成为书写模式。

三. 指令模式下的一些常用命令 在指令模式下,有很多的命令可以用。我们先从一些常用的开始学习。 请记住,这里所有的命令都是在指令模式下运行

(1)显示每行的数字 :set number :set nonumber //不显示每行的数字

(2)移动光标(在指令模式下进行,光标移动到新的位置后,仍然是指令模式, 不是书写模式)

a. 移动到某一行,比如: 7G //移动光标到第七行 1G //移动光标到第一行 SHIFT + g //移动光标到最后一行

b. 按”w”键, (w 代表 word),光标会一个词,一个词往前面跳。 (如果是书写模式,你按”w”键,”w”会出现在屏幕上。在指令模式下,”w”是一个 指令。) 按”W”键,光标会一个词,一个词往前面跳。与上面的区别是,有时候上面认 为是两个词,比如 “$30” (按”w”时,这需要两步;按”W”时,这是一步)。 如果要往前面跳三个词,按”3w”或者”3W”。

c. “h”: 光标左移 (与左尖头相同) “l”(小写的 L): 光标左移 (与右尖头相同) “j”: 光标下移 (与向下尖头相同) “k”: 光标上移 (与向上尖头相同) “h”, “l”, “j”, “k” 由于就在指头底下,熟悉之后,比用上下左右尖头方便。有一些网 页游戏(比如 www.vim-adventures.com),让你练习使用“h”, “l”, “j”, “k”来移动光 标。

d. 按”$”键(也就是按 SHIFT + 4),光标移动到ᴀ行最后一个字母。 (请记住,”$”代表ᴀ行的᳿尾。”d$” 删除从当前光标位置到ᴀ行最后。) 按”∧”键(也就是按 SHIFT + 6),光标移动到ᴀ行最开头的字母。 (请记住,”∧”代表ᴀ行的开头。”d∧”(也就是先按’d’键,再按 SHIFT + 6)删除从 当前光标位置到ᴀ行开始。)

(3)删除 “dw” 代表 delete word。当你的光标在一个单词的头上,这个命令删除这个单词。 如果你的光标在这个单词的中间,这个命令删除从你的光标位置到词尾。 “d5w” 删除 5 个单词。 ”d$” 和 ”d∧”上面已经说过。 “dd”删除当前行。”d3d”删除当前行和下面两行。 “:3,5d” 删除第三行到第五行。 “:3,$d” 删除第三行到该文章的᳿尾。请注意,”$”总是代表᳿尾。

(4)复制/黏贴 “:3,5y” 复制第三行到第五行。之后,移动光标到目的地: 按”p”键,该三行就黏贴到ᴀ行的下面。 按”P”键,该三行就黏贴到ᴀ行的上面。 p: 代表 paste 同理,当你用”dd”(删除当前行), “d2d”(删除当前和下面行), “:4,7d”(删除第 四到第七行)后,移动光标到目的地,用”p”或者”P”就把先前切掉的内容黏贴到当 前行的下面,或者上面。 “yy” 代表复制当前行。y 代表 yank “y5y” 复制当前及下面四行。

四.存储和推出 vi 在指令模式下 “:w abc.txt” (存储为 abc.txt. 假设你是用 “vi” 而不是 “vi abc.txt” 开始的)。

“:w” 存储 (假设之前你已经命名了这个文件)

“:q” 退出 vi。假若你对文件有改动,但没有存。

Vi 会不让你退出,提醒你还没有 存你的改动。

“:q!” 坚决退出,不要存。

“:wq” 存储,然后推出 vi w 代表 write q 代表 quit

最新文章

  1. IOS网络开发(三)
  2. Adaboost算法初识
  3. AWR报告-数据库概要信息(一)
  4. cygwin如何断点续传
  5. 信号量和PV操作写出Bakery算法的同步程序
  6. iOS 检测网络状态
  7. HTTP服务负载均衡总结
  8. HTTP请求响应机制与响应状态码
  9. P1577 切绳子
  10. Java程序入口:main()方法讲解
  11. 20165235实验四 Android程序设计
  12. Permission denied (publickey). fatal: Could not read from remote repository.
  13. Python的列表和元组
  14. artTemplate/template.js模板将时间格式化为正常的日期
  15. 使用Git进行协同开发
  16. 基于jQuery果冻式按钮焦点图切换代码
  17. Cw210开发板
  18. 浅谈js冒泡事件1
  19. Linux内核设计笔记7——中断
  20. BZOJ1568:[JSOI2008]Blue Mary开公司——题解

热门文章

  1. Spring Cloud(4):断路器(Hystrix)
  2. Windows10内置Linux子系统初体验
  3. 纹理特征描述之灰度差分统计特征(平均值 对比度 熵) 计算和比较两幅纹理图像的灰度差分统计特征 matlab代码实现
  4. 【CodeForces - 598D】Igor In the Museum(bfs)
  5. nginx 增加认证
  6. HTML accessKey约定俗成的标准
  7. GET POST请求区别
  8. 并不对劲的复健训练-bzoj5250:loj2473:p4365:[九省联考2018]秘密袭击
  9. Codeforces 1236C. Labs
  10. Codeforces 1228E. Another Filling the Grid