第4讲 文本编辑器Vim_练习题
- 格式:pdf
- 大小:70.50 KB
- 文档页数:2
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 』之后最后一行会出现『复制九行』之类的说明字样。
在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呢?在查找、替换命令使用以下正则表达式元字符,功能强大。
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在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字符的位置。
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进程是所有用户进程的父进程。
vi设计习题答案
Vi设计习题答案
在学习计算机编程的过程中,Vi编辑器是一个非常重要的工具。
它可以帮助程
序员快速、高效地编辑文本文件,提高工作效率。
为了帮助大家更好地掌握Vi
编辑器的使用,下面我们来看一些Vi设计习题的答案。
1. 如何在Vi编辑器中进行文本的复制和粘贴?
答:要复制文本,首先按下“ESC”键,然后按下“v”键来选择要复制的文本,接着按下“y”键进行复制。
要粘贴文本,将光标移动到要粘贴的位置,然后按下“p”键即可。
2. 如何在Vi编辑器中进行文本的查找和替换?
答:要查找文本,首先按下“ESC”键,然后按下“/”键,输入要查找的文本,按下“Enter”键即可。
要替换文本,按下“ESC”键,然后输入“:s/要替换的文本/替换后
的文本/g”即可进行替换操作。
3. 如何在Vi编辑器中进行文本的撤销和重做?
答:要撤销操作,按下“ESC”键,然后按下“u”键即可撤销上一步操作。
要重做
操作,按下“ESC”键,然后按下“Ctrl + r”键即可重做上一步操作。
通过这些设计习题的答案,相信大家对Vi编辑器的使用已经有了更深入的了解。
希望大家能够多加练习,熟练掌握Vi编辑器的各种操作,提高自己的编程技能。
Vi编辑器是一个非常强大的工具,掌握它将对你的编程之路大有裨益。
第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。