第4讲 文本编辑器Vim_练习题

合集下载

第04章_Vim编辑器PPT课件

第04章_Vim编辑器PPT课件

22
4.3 末行模式命令
1. 退出命令 2. 显示和取消行号 3. 行号与文件 4. 字符串搜索 5. 正文替换 6. 删除正文 7. 恢复文件 返回本章目录 使用前请先按 ESC 键确定在命令模式下按 ‘:’ 或 ‘/’
或 ‘?’ 叁键即可进入末行模式
精选PPT课件
23
4.3 末行模式命令
1. 退出命令
ZZ在命令模式下可以用 ZZ 命令退出 vi 编 辑程序,该命令保存对正文所作的修改,覆 盖原始文件。
:wq或:x 先保存再退出vi :w或 :w filename 保存/保存为filename名
精选PPT课件
14
4.1 Vim编辑器简介
可按<Esc>键,或用退格键将输入的命 令全部删除之后,再按一下退格键,即 可使 vi 回到命令模式下。
精选PPT课件
15
4.1 Vim编辑器简介
Vi编辑器的三种工作模式之间的转换如下:
Linux
退出Vi
Vi/vi文件
P108
文本插入命令 i、I、a、A、o、O 等
精选PPT课件
3
4.1 Vim编辑器简介
4.1.0 gedit 图形化文本编辑器 4.1.1 Vim编辑器概述 4.1.2 Vim编辑器的工作模式 返回本章目录
精选PPT课件
4
4.1 Vim编辑器简介
4.1.0 gedit 图形化文本编辑器
点击“应用程序”→“附件”→ “文本编辑 器”。
精选PPT课件
13
4.1 Vim编辑器简介
末行模式
在 vi 中,命令通常是单个键,如 i。在 命令模式下,用户按 “:” 键即可进入末 行模式下,此时 vi 会在屏幕的最后一行 显示一个“:”作为末行模式的提示符, 等待用户输入命令。多数文件管理命令 都是在此模式下执行的(如把编辑缓冲 区的内容写到文件中等)。末行命令执 行完后,vi 自动回到命令模式。

vi练习

vi练习

1. 在屏幕上单击鼠标右键,选择“打开终端”进入shell终端环境。

2. 在终端#提示符后面输入命令“mkdir /tmp/vitest”,系统将会在 /tmp 这个目录下建立一个名为 vitest 的目录;3. 继续在终端输入“cd /tmp/vitest”命令,进入 vitest 这个目录当中;4. 使用“cp /etc/man.config.”(注意最后一个空格后有一个英文的点号,代表复制到当前文件夹并保留原文件名)命令将 /etc/man.config 复制到当前目录底下。

5. 使用vi编辑器打开/tmp/vitest/man.config这个文件6.Q:在 vi 中设定显示行号;A:『:set nu』然后你会在画面中看到左侧出现数字即为行号。

7.Q:移动到第 58 行,向右移动 40 个字符,请问你看到的双引号内是什么目录?A:先按下『58G』(或:58)再按下『40→』(或40l)会看到『/dir/bin/foo』这个字样在双引号内;8.Q:移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串,请问他在第几行?A:先执行『1G』或『:1』或『gg』后,直接输入『/bzip2』,则会去到第 137 行才对!9.Q:接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』,并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按『y』,结果会在最后一行出现改变了几个 man 呢?A:直接下达『 :50,100s/man/MAN/gc 』即可!若一直按『y』最终会出现『在 23 行内置换25 个字符串』的说明。

10.Q:修改完之后,突然反悔了,要全部复原,有哪些方法?A:(1)简单的方法可以一直按『 u 』回复到原始状态,(2)使用不储存离开『 :q! 』之后,再重新读取一次该档案;11.Q:我要复制 65 到 73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后;A:『65G』然后再『 9yy 』之后最后一行会出现『复制九行』之类的说明字样。

GVIM_使用

GVIM_使用

在insert模式下,C-R (register) 插入register里的内容,一个有趣的reg是"=".假设你想输入123K的具体字节数,不用打开计算器,试试这个“=1024*123”,“125952”就出来了!另外在命令行里C-R C-W和C-R C-A是必用的技巧,它们将光标下的和考到命令行里,省了你无数的typing。

3. C-X (auto complete)在insert模式下,C-X C-P/N/L/F等自动完成前面的词、行、文件名等,是编程时必用的命令。

其中C-P和C-N可以不用C-X。

4. [p & ]p (smart paste)paste同时自动根据目标行的缩进调整来源行的缩进。

在copy代码段的时候非常有用。

5. C-O (fast out, fast in)在insert模式下,用C-O后可以执行一个normal命令,然后立即返回insert模式,省去了用ESC的麻烦。

6. [I (fast grep )[I显示文件中包含光标下的所有行。

我常用来浏览某个id在程序中的引用情况。

还有很多相关的命令::h include-search7. object-selectiw, aw, ib, i], i} ... 都非常有用!看help吧:h object-select先写这么多,以后再补充吧。

例如你想把所有的"..."形式的串替换成'...'的形式但引号里的内容不变你就可以用%s/"\(.*\)"/'\1'/来做上面这个正则表达式"\(.*\)"里\用来表示()是元字符第一个在括号里的被匹配的串就可以被\1来代表, 以后依次是\2 \3。

顺便说一句,我到现在还不知道怎么限制vim里正则表达匹配的贪婪算法。

------------------------------------里面说的非贪婪匹配是\{-},也就是%s/"\(.\{-}\)"/'\1'/g\ 太多了可以用\v,%s/\v"(.{-})"/'\1'/g详细:h /\{-:h \v另外和perl 正则表达式的区别在:h perl-patterns把 替换为~字符~~~~~数字和点我用s/\(^.*)\(\.\d*.\)com/\/结果为请问有没有好点儿的办法?谢谢☆─────────────────────────────────────☆alphatan ( C ) 于(Tue Aug 10 09:27:19 2004) 提到:【在qiaolin (风儿) 的大作中提到: 】: 把 替换为: ~字符~~~~~数字和点: 我用s/\(^.*)\(\.\d*.\)com/\/1. \(^.*\) 一下子把整个字符串吞进去了. \1 = 2. 遇到com把com从\1中吐出来. \1 = aaaaa.20300.2000.3. 遇到.把com前面的\.吐出来\1 = aaaaa.20300.20004. 遇到\d*, 再把随后的2000吐出来\1 = aaaaa.20300.5. 遇到\., 把.也呕出来了. \1 = aaaaa.20300所以, 得到你要的结果.可以用\{-}进行非贪婪匹配.但为什么不直接把数字跟它们的点去掉呢?s/[0-9.]\ //g: 结果为: 请问有没有好点儿的办法?谢谢☆─────────────────────────────────────☆qiaolin (风儿) 于(Tue Aug 10 09:36:27 2004) 提到:谢谢大侠,有问题请教:贪婪匹配的顺序是怎样的呢?在这个例子中,先匹配第一个pattern,再从最后面的pattern一个一个“吐”出来?【在alphatan ( C ) 的大作中提到: 】: 1. \(^.*\) 一下子把整个字符串吞进去了. \1 = : 2. 遇到com把com从\1中吐出来. \1 = aaaaa.20300.2000.: 3. 遇到.把com前面的\.吐出来\1 = aaaaa.20300.2000: 4. 遇到\d*, 再把随后的2000吐出来\1 = aaaaa.20300.: 5. 遇到\., 把.也呕出来了. \1 = aaaaa.20300: 所以, 得到你要的结果.: 可以用\{-}进行非贪婪匹配.: 但为什么不直接把数字跟它们的点去掉呢?: s/[0-9.]\ //g这里没有这样用是因为aaaaa也可能是a123a,可不可以用/w呢?在查找、替换命令使用以下正则表达式元字符,功能强大。

4vi

4vi

将old_user登陆名改为new_user 将指定的用户锁定 对锁定的用户进行解锁 更新使用者新的登入目录。
-l testA testB -L test -U test -d /home/test testA
groupadd
添加一个组 语法: groupadd [-g] groupname 参数说明: -g 自行设定 GID 的大小 注:该GID大于500 范例:
修改已有用户的信息 语法:usermod [-ldLU] [/path] [username1] [username2] 参数说明: –l -L -U -d 范例:
[root@localhost ~]#usermod [root@localhost ~]#usermod [root@localhost ~]#usermod [root@localhost ~]#usermod
userdel
删除用户 语法:userdel [-r] username 参数说明: -r 连同用户的家目录一起删除,默认情况下是不删除的。 范例:
[root@localhost ~ ]#userdel testa [root@localhost ~ ]#userdel -r testb
usermod
:1,$s/word1/word2/g
:1,$s/Li/li/gc :1,$s/^/#/g
一般模式---删除、复制与粘贴
x,X nx dd ndd yy nyy p,P J u x为向后删除一个字符,X为向前删除一个 字符 向后删除n个字符 删除光标所在的那一行 删除光标所在行向下n行 复制光标所在行 复制光标所在行的向下n行 将复制的数据粘到下一行(p)或上一行(P) 将光标所在行与下一行的数据合成一行 恢复上一次的操作

vim练习120200417

vim练习120200417

vim练习1202004171. 请在 /tmp 这个⽬录下创建⼀个名为 vitest 的⽬录;2. 进⼊ vitest 这个⽬录当中;3. 将 /etc/man_db.conf 复制到本⽬录下⾯(或由上述的链接下载 man_db.conf ⽂件);4. 使⽤ vi 打开本⽬录下的 man_db.conf 这个⽂件;5. 在 vi 中设置⼀下⾏号;6. 移动到第 43 列,向右移动 59 个字符,请问你看到的⼩括号内是哪个⽂字?7. 移动到第⼀列,并且向下搜寻⼀下“ gzip ”这个字串,请问他在第⼏列?8. 接着下来,我要将 29 到 41 列之间的“⼩写 man 字串”改为“⼤写 MAN 字串”,并且⼀个⼀个挑选是否需要修改,如何下达指令?如果在挑选过程中⼀直按“y”,结果会在最后⼀列出现改变了⼏个 man 呢?9. 修改完之后,突然反悔了,要全部复原,有哪些⽅法?10. 我要复制 66 到 71 这 6 列的内容(含有MANDB_MAP),并且贴到最后⼀列之后;11. 113 到 128 列之间的开头为 # 符号的注解数据我不要了,要如何删除?12. 将这个⽂件另存成⼀个 man.test.config 的⽂件名;13. 去到第 25 列,并且删除 15 个字符,结果出现的第⼀个单字是什么?14. 在第⼀列新增⼀列,该列内容输⼊“I am a student...”;15. 储存后离开吧!答案前提(先su root打开权限)1. “mkdir /tmp/vitest”2. “cd /tmp/vitest”3. “cp /etc/man_db.conf .”4. “/bin/vi man_db.conf”5. “:set nu”然后你会在画⾯中看到左侧出现数字即为⾏号。

6. 先按下“43G”再按下“59→”会看到“ as ”这个单字在⼩括号内;7. 先执⾏“1G”或“gg”后,直接输⼊“/gzip”,则会去到第 93 列才对!8. 直接下达“ :29,41s/man/MAN/gc ”即可!若⼀直按“y”最终会出现“在 13 列内置换 13 个字串”的说明。

vim练习

vim练习

Vim 练级攻略当你安装好一个编辑器后,你一定会想在其中输入点什么东西,然后看看这个编辑器是什么样子。

但vim不是这样的,请按照下面的命令操作:启动Vim后,vim在Normal模式下。

让我们进入Insert模式,请按下键i 。

(陈皓注:你会看到vim–左下角有一个insert–字样,表示,你可以以插入的方式输入了)“”此时,你可以输入文本了,就像你用记事本一样。

如果你想返回Normal模式,请按ESC键。

现在,你知道如何在Insert和Normal模式下切换了。

下面是一些命令,可以让你在Normal模式下幸存下来: i→Insert模式,按ESC回到Normal模式.x→ 删当前光标所在的一个字符。

:wq→ 存盘+ 退出(:w存盘,:q退出) (陈皓注::w 后可以跟文件名)dd→ 删除当前行,并把删除的行存到剪贴板里p→ 粘贴剪贴板推荐:hjkl(强例推荐使用其移动光标,但不必需) →你也可以使用光标键(←↓↑→). 注:j就像下箭头。

:help <command>→ 显示相关命令的帮助。

你也可以就输入:help而不跟命令。

(陈皓注:退出帮助需要输入:q)你能在vim幸存下来只需要上述的那5个命令,你就可以编辑文本了,你一定要把这些命令练成一种下意识的状态。

于是你就可以开始进阶到第二级了。

当是,在你进入第二级时,需要再说一下Normal模式。

在一般的编辑器下,当你需要copy一段文字的时候,你需要使用Ctrl键,比如:Ctrl-C。

也就是说,Ctrl键就好像功能键一样,当你按下了功能键Ctrl后,C就不在是C了,而且就是一个命令或是一个快键键了,在VIM的Normal模式下,所有的键就是功能键了。

这个你需要知道。

标记:下面的文字中,如果是Ctrl-λ我会写成<C-λ>.以:开始的命令你需要输入<enter> —回车,例如如果我写成:q也就是说你要输入:q<enter>.第二级感觉良好–上面的那些命令只能让你存活下来,现在是时候学习一些更多的命令了,下面是我的建议:(陈皓注:所有的命令都需要在Normal模式下使用,如果你不知道现在在什么样的模式,你就狂按几次ESC键)1.各种插入模式a→ 在光标后插入o→ 在当前行后插入一个新行O→ 在当前行前插入一个新行cw→ 替换从光标所在位置后到一个单词结尾的字符2.简单的移动光标0→ 数字零,到行头^→ 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)$→ 到本行行尾g_→ 到本行最后一个不是blank字符的位置。

07vi文本编辑器的使用-参考答案

07vi文本编辑器的使用-参考答案
广东科学技术职业学院
计算机学院
实 验 报 告
专业班级成绩评定______
学号姓名教师签名廖建飞
实验题目vi文本编辑器的使用第周星期第节
一、实验目的与要求(此栏实验前由老师填写)
掌握vi的三种工作模式工作方式
二、实验题(答案均以截图方式上交)
1、文本编辑模式的操作:
1)使用vi编写zuoye.c,求1+2+3+……+100的和。
#vi /etc/passwd
:set nu
:set nonu
2)将当前文件/etc/passwd另存到/root/cc.txt
#vi /etc/passwd
:w /root/cc.txt
3)将zuoye.c文件内容插入到cc.txt文档中第8行。
#vi cc.txt
:8 !cat /root/zuoye.c
#vi cc.txt
:%s/teacher/student/g
7)在文档cc.txt中正向查找字符student。
#vi cc.txt
/student
n定位下一个匹配的被查找的字符串
4、综合题:使用vi编辑器编辑/etc/samba/smb.conf
1)在末行模式下,将smb.conf文件另存为/root/smb.conf
4)将文件cc.txt中1~4行的内容,保存到/root/aa.txt中。
#vi cc.txt
:1,4 w /root/aa.txt
5)将文件cc.txt中第1行到第7行中的root换成gen。
#vi cc.txt
:1,7 s/root/gen/g
6)将文件cc.txt中的teacher换成student。

linux练习题

linux练习题

linux练习题一、单项选择题1、/root目录是:A、系统的根目录B、超级用户的主目录C、动态连接库D、系统管理程序2、chmod为了表示“目标文件只有这些权限”,可以用符号_____A、=B、+C、-D、!3、检查文件系统完整性的命令是:A、fsck //检查并修复文件系统B、mvC、mountD、cp4、下面的哪一个shell具有自动补齐功能?A、cshB、tcshC、bashD、sh5、在gzip命令中,-t的作用是:A、解压-dB、显示压缩文件C、检验压缩文件D、删除压缩文件6、管道符是:A、||B、|C、<<D、//7、at命令中需要从标准输入中读入所有的命令,不能指定_______选项。

A、-qB、-bC、-d //删除指定的调度作业D、-f //从指定文件而非标准输入设备获取将要执行的命令8、chmod中通过指定"ugoa"可以控制哪些用户对某文件(目录)的权限可以被改变,其中"a"表示:A、文件的所有者uB、其他组的用户oC、与文件所有者同组的用户gD、所有用户9、Linux系统引导将启动__________进程。

A、initB、gettyC、syslogdD、lpd10、假设执行如下的命令:alias lcd 'ls –l \\!;pwd * 现在输入lcd test1 test2,shell实际上执行的是:A、ls –l test1B、ls –l test1 test2;pwdC、pwdD、ls –l ; pwd11、/sbin目录存放的是:A、使用者经常使用的命令B、动态连接库C、系统管理程序D、设备12、关于at命令下列说法正确的是:A、任何用户都可以使用该命令B、若at.deny不为空,那么除at.deny中指定的用户之外,所有的用户都可以使用该命令C、若at.deny不为空,那么只有at.allow中的用户才能使用该命令D、只有超级用户才能使用该命令(x)13、crontab文件的格式是:A、M D H m d cmdB、M H D d m cmdC、 D M H m d cmdD、M H D m d cmd14、在当前目录下有文件test,文件属主为guest;我们使用admin身份,用命令cp test /tmp,拷贝文件到/tmp(目录属主为root),则/tmp/test的文件属主为:A、guestB、rootC、adminD、其它15、用户user2对下一文件有何权力:-rw-r----- 1 user1 100 1320 Oct 27 08:16 testA、无权B、读C、读写D、执行16、init进程是所有用户进程的父进程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4讲文本编辑器Vim 练习题
1、创建目录/vi.test ,拷贝文件/etc/inittab到/vi.test目录下,使用vi编辑/vi.test/inittab文件,把其中
的第23行到29行注释(使用连续行注释命令)
2、编辑/vi.test/inittab文件,把第10行到20行之间的字符串init都替换为boot ;并且在文件末尾
导入当前编辑文件的时间
3、定义快捷键Ctrl+e可以输入兄弟连网址并自动返回命令行模式
4、设置vim配置文件,使每次使用vi编辑任何文件都自动显示行号;并定义在vi中只要输入mymail
就自动转换为admin@
5、编辑/vi.test/inittab文件,定位到第35行,光标跳到行尾添加“”,然后复
制此行到第40行后
6、删除/vi.test/inittab文件的第1行到第20行
7、编辑/vi.test/inittab定位到屏幕下端,把光标所在处字符替换为“x”,查找字符串“NOT”,找
到后替换为“YES”,保存退出
第4讲文本编辑器Vim 练习题答案
1、创建目录/vi.test ,拷贝文件/etc/inittab到/vi.test目录下,使用vi编辑/vi.test/inittab文件,把其中
的第23行到29行注释(使用连续行注释命令)
mkdir /vi.test
cp /etc/inittab /vi.test
vi /vi.test/inittab
:23,29s/^/#/g
2、编辑/vi.test/inittab文件,把第10行到20行之间的字符串init都替换为boot ;并且在文件末尾
导入当前编辑文件的时间
:10,20s/init/boot/g
:r !date
3、定义快捷键Ctrl+e可以输入兄弟连网址并自动返回命令行模式
:map ^E <ESC>
4、设置vim配置文件,使每次使用vi编辑任何文件都自动显示行号;并定义在vi中只要输入mymail
就自动转换为admin@
vi ~/.vimrc
set nu
ab mymail admin@
5、编辑/vi.test/inittab文件,定位到第35行,光标跳到行尾添加“”,然后复
制此行到第40行后
:35 or G35
按A ,输入 ,按ESC ,yy复制,G40 ,p粘贴
6、删除/vi.test/inittab文件的第1行到第20行
:1,20d
7、编辑/vi.test/inittab定位到屏幕下端,把光标所在处字符替换为“x”,查找字符串“NOT”,找
到后替换为“YES”,保存退出
L
r 输入“x”
/NOT
R 输入“YES”
:wq or ZZ。

相关文档
最新文档