VIM 测试题(给用 VIM 做数据处理的初学者)
来源:互联网 发布:js实现购物车加减特效 编辑:程序博客网 时间:2024/04/29 06:24
以前写的,主要是针对数据处理的,虽然写得不好,不过也发到版上留个备份啦。:-)
VIM 测试题(给用 VIM 做数据处理的初学者)
请回答以下操作所需的步骤或命令:
01. (4) 光标移到最后一行
02. (4) 设置跳格(Tab)宽度为 4
03. (4) 忽略大小写查找字符串 elephant(本题不得使用 GUI)
04. (4) 将所有 elephant 替换为 pig(本题不得使用 GUI)
05. (4) 打开 VIM 关于正则表达式的帮助文档
06. (4) 在阅读 VIM 帮助时遇到链接如何跳转?如何返回?
07. (6) 比较编辑两个内容相近的文件
08. (6) 借助外部命令 sort 将文件的行按字母顺序进行排序
09. (6) 将每一行的第一个字符与第二个字符交换
10. (6) 将当前目录中所有文件的文件名插入到当前文本中
假设文件 data.txt 内容如下:
ACDSee 000001 499.95 ACD Systems, Ltd.
Internet Explorer 000004 1999.50 Microsoft Corp.
Vi IMproved 000015 0.00 Bram Moolenaar
FlashFXP 000204 199.00 CEDsoft
请回答以下操作所需的正则表达式(可查阅帮助,反复尝试):
11. (4) 匹配每行的软件名字段
12. (4) 匹配每行的编号字段
13. (4) 匹配每行的价格字段
14. (4) 匹配每行的开发者字段
请回答以下操作所需的步骤或命令:
15. (6) 交换每行的编号和价格字段
16. (8) 借助外部命令 sort 将文件的行按软件价格进行排序
17. (8) 将连续两个或以上的空格替换为一个跳格字符
18. (6) 删除每行的开发者字段
送分题,写得越多越好:
19. (8) 请写出任何难以用 notepad 完成的并且你会的 VIM 功能。
============================================================================
参考答案
01. G
在 Normal 模式下按 G 快速跳到最后一行,按 gg 跳到第一行,当然,也可以按Ctrl-Home 和 Ctrl-End。
02. :set tabstop=4
将 Tab 设成大一点的宽度,比如 16,查看数据文件的时候比较有用,对齐清晰。
03. 方法一,先设置忽略大小写,然后查找
:set ignorecase
/elephant
:set noignorecase
方法二,在前面加入 \c 表示忽略大小写
/\celephant
04. :%s/elephant/pig/g
g 表示如果一行有多个 elephant 将全部替换,没有 g 表示只替换每行第一个。
另外还有 i 标志,有 i 表示忽略大小写。i g 这两个标志非常基础!
05. :help pattern
用 :help xxx 看一个东西帮助,提示:在 :help 后面可以尝试按 tab 补全,
比如输入 :help search 然后按 tab(一次或多次),你就可以看到
search-pattern 正是你想要看的。
06. Ctrl-] Ctrl-T
帮助里面用两个 | 括起来高亮的,比如 |pattern| 都是可以跳转的链接,按
Ctrl-](按住 Ctrl 按右中括号)跳进去,再按 Ctrl-T 跳回来。
07. 在命令行下 vim -d file1.txt file2.txt 可以用比较模式查看编辑两个文件,
或者如果在 Windows 下面,可以先选中两个文件,然后鼠标右点菜单,选
“Diff with Vim”。一般在比较某个文件的两个版本(即是一个是以前的,
一个是修改后的)时很有用。
08. :%!sort
表示将整个文件的行用外部命令 sort 过滤一遍,不过要当心 Windows 的 sort
命令在某些条件下会产生错误的排序结果。
09. 方法一,用正则表达式匹配替换每行的前两个字符
:%s/^\(.\)\(.\)/\2\1/
方法二,用块选择
Normal 模式下,先把光标移到第一行第一个字符上,按 Ctrl-V 进入块选择模式,
移动光标到最后一行第一个字符上,这时选中的是每一行的第一列字符,按 d
删除,然后移动光标到第一行第二个字符,按 P(注意是大写)粘贴,刚才删除的
第一列就被粘到第二列上了。
10. :split .
打开当前目录(. 表示当前目录,当然也可以是比如 C:\ ),然后就可以将目录
中的文件名复制粘贴过来了。
请把 :help pattern 那一页帮助内容仔仔细细阅读 99 遍!:-)
11. 软件名字段的特征是:位于行首;由若干个单词组成,单词之间用一个空格分开。
^\S\+\( \S\+\)*
12. 编号字段的特征是:恰好六个数字。
\<\d\{6}\>
13. 价格字段的特征是:若干个数字,一个点,若干个数字。
\d\+\.\d\+
14. 开发者字段的特征跟软件名字段的特征类似,但是位于行末。
\S\+\( \S\+\)*$
15. 同 09 题方法二,用块选择。
16. 用块选择将价格字段换到前面,然后用 :%!sort 排序,然后换回来。
17. :%s/ \+/\t/g (注意这里是两个空格)或者
:%s/ \{2,}/\t/g
18. 用块选择,按 D(大写)删除。块选择后按 d 跟 D 的区别是:d 删除选中的块,
D 删除选中的块以及后面一直到行末的内容。
19. 略。
VIM 测试题(给用 VIM 做数据处理的初学者)
请回答以下操作所需的步骤或命令:
01. (4) 光标移到最后一行
02. (4) 设置跳格(Tab)宽度为 4
03. (4) 忽略大小写查找字符串 elephant(本题不得使用 GUI)
04. (4) 将所有 elephant 替换为 pig(本题不得使用 GUI)
05. (4) 打开 VIM 关于正则表达式的帮助文档
06. (4) 在阅读 VIM 帮助时遇到链接如何跳转?如何返回?
07. (6) 比较编辑两个内容相近的文件
08. (6) 借助外部命令 sort 将文件的行按字母顺序进行排序
09. (6) 将每一行的第一个字符与第二个字符交换
10. (6) 将当前目录中所有文件的文件名插入到当前文本中
假设文件 data.txt 内容如下:
ACDSee 000001 499.95 ACD Systems, Ltd.
Internet Explorer 000004 1999.50 Microsoft Corp.
Vi IMproved 000015 0.00 Bram Moolenaar
FlashFXP 000204 199.00 CEDsoft
请回答以下操作所需的正则表达式(可查阅帮助,反复尝试):
11. (4) 匹配每行的软件名字段
12. (4) 匹配每行的编号字段
13. (4) 匹配每行的价格字段
14. (4) 匹配每行的开发者字段
请回答以下操作所需的步骤或命令:
15. (6) 交换每行的编号和价格字段
16. (8) 借助外部命令 sort 将文件的行按软件价格进行排序
17. (8) 将连续两个或以上的空格替换为一个跳格字符
18. (6) 删除每行的开发者字段
送分题,写得越多越好:
19. (8) 请写出任何难以用 notepad 完成的并且你会的 VIM 功能。
============================================================================
参考答案
01. G
在 Normal 模式下按 G 快速跳到最后一行,按 gg 跳到第一行,当然,也可以按Ctrl-Home 和 Ctrl-End。
02. :set tabstop=4
将 Tab 设成大一点的宽度,比如 16,查看数据文件的时候比较有用,对齐清晰。
03. 方法一,先设置忽略大小写,然后查找
:set ignorecase
/elephant
:set noignorecase
方法二,在前面加入 \c 表示忽略大小写
/\celephant
04. :%s/elephant/pig/g
g 表示如果一行有多个 elephant 将全部替换,没有 g 表示只替换每行第一个。
另外还有 i 标志,有 i 表示忽略大小写。i g 这两个标志非常基础!
05. :help pattern
用 :help xxx 看一个东西帮助,提示:在 :help 后面可以尝试按 tab 补全,
比如输入 :help search 然后按 tab(一次或多次),你就可以看到
search-pattern 正是你想要看的。
06. Ctrl-] Ctrl-T
帮助里面用两个 | 括起来高亮的,比如 |pattern| 都是可以跳转的链接,按
Ctrl-](按住 Ctrl 按右中括号)跳进去,再按 Ctrl-T 跳回来。
07. 在命令行下 vim -d file1.txt file2.txt 可以用比较模式查看编辑两个文件,
或者如果在 Windows 下面,可以先选中两个文件,然后鼠标右点菜单,选
“Diff with Vim”。一般在比较某个文件的两个版本(即是一个是以前的,
一个是修改后的)时很有用。
08. :%!sort
表示将整个文件的行用外部命令 sort 过滤一遍,不过要当心 Windows 的 sort
命令在某些条件下会产生错误的排序结果。
09. 方法一,用正则表达式匹配替换每行的前两个字符
:%s/^\(.\)\(.\)/\2\1/
方法二,用块选择
Normal 模式下,先把光标移到第一行第一个字符上,按 Ctrl-V 进入块选择模式,
移动光标到最后一行第一个字符上,这时选中的是每一行的第一列字符,按 d
删除,然后移动光标到第一行第二个字符,按 P(注意是大写)粘贴,刚才删除的
第一列就被粘到第二列上了。
10. :split .
打开当前目录(. 表示当前目录,当然也可以是比如 C:\ ),然后就可以将目录
中的文件名复制粘贴过来了。
请把 :help pattern 那一页帮助内容仔仔细细阅读 99 遍!:-)
11. 软件名字段的特征是:位于行首;由若干个单词组成,单词之间用一个空格分开。
^\S\+\( \S\+\)*
12. 编号字段的特征是:恰好六个数字。
\<\d\{6}\>
13. 价格字段的特征是:若干个数字,一个点,若干个数字。
\d\+\.\d\+
14. 开发者字段的特征跟软件名字段的特征类似,但是位于行末。
\S\+\( \S\+\)*$
15. 同 09 题方法二,用块选择。
16. 用块选择将价格字段换到前面,然后用 :%!sort 排序,然后换回来。
17. :%s/ \+/\t/g (注意这里是两个空格)或者
:%s/ \{2,}/\t/g
18. 用块选择,按 D(大写)删除。块选择后按 d 跟 D 的区别是:d 删除选中的块,
D 删除选中的块以及后面一直到行末的内容。
19. 略。
- VIM 测试题(给用 VIM 做数据处理的初学者)
- 用VIM做IE源代码的编辑器
- 用VIM做任务管理工具(一)
- 用VIM做任务管理工具(二)
- 给程序员的Vim速查卡
- 给程序员的Vim速查卡
- 给程序员的VIM速查卡
- 给自己的VIM配置
- 给程序员的VIM速查卡
- 给程序员的Vim速查卡
- 给程序员的VIM速查卡
- 给程序员的VIM速查卡
- 用vim编辑编译执行一个c程序(初学者对编译器的认识)
- 我如何退出:Vim的初学者指南
- 初学者VIM配置(.vimrc for beginners)
- 初学者VIM配置(.vimrc for beginners)
- 初学者VIM配置
- 初学者如何学习Vim
- 控制WinForm控件上的键盘,鼠标事件响应
- 4、SQL Server 基本的查询流程
- vim C++ 编程include文件之间切换
- 5、SQL Server Select中的Where条件
- 6、SQL Server 对结果集的排序以及谓词的使用(distinct、top)
- VIM 测试题(给用 VIM 做数据处理的初学者)
- 中国·北京第一届(国际)开源大会见闻 2013年5月29日
- SIFT算法原理与OpenCV源码分析5:关键点描述
- 7、SQL Server 使用表达式
- Android NDK文档翻译
- Windows 8 全国pm2.5查看隐私声明
- Linux makefile 教程 非常详细,且易懂
- 穿着华丽的死人
- 8、SQL Server 使用标量函数