当前位置: 技术问答>linux和unix
vi里如何:撤销上次操作?,多次重复一组编辑操作?.......还有一个目录问题?大家进来看看,在线等,100分
来源: 互联网 发布时间:2015-12-13
本文导语: 好久没有用Linux了,身边又没有环境,烦请各位给看看,给个准确答案: 1 在 vim 中,遇到如下的编辑问题,应该怎么操作? a) 撤消上一个编辑操作。 b) 重复上一个编辑操作。 c) 还原被撤消的编辑操作。 d) 多...
好久没有用Linux了,身边又没有环境,烦请各位给看看,给个准确答案:
1 在 vim 中,遇到如下的编辑问题,应该怎么操作?
a) 撤消上一个编辑操作。
b) 重复上一个编辑操作。
c) 还原被撤消的编辑操作。
d) 多次重复一组编辑操作。
e) 把一段文字转换为全部大写。
2 下面的目录属性
drwxrwsr-x 7 dijk team 4096 4月 8 19:34 qingli
a) 这里的 s 属性有何作用?
b) 属性字段后的数字 7 表示什么?
3 liback.la 库文件的后缀.la是什么含义?
1 在 vim 中,遇到如下的编辑问题,应该怎么操作?
a) 撤消上一个编辑操作。
b) 重复上一个编辑操作。
c) 还原被撤消的编辑操作。
d) 多次重复一组编辑操作。
e) 把一段文字转换为全部大写。
2 下面的目录属性
drwxrwsr-x 7 dijk team 4096 4月 8 19:34 qingli
a) 这里的 s 属性有何作用?
b) 属性字段后的数字 7 表示什么?
3 liback.la 库文件的后缀.la是什么含义?
|
a) 撤消上一个编辑操作。 ====》 U
b) 重复上一个编辑操作。 =====> .
c) 还原被撤消的编辑操作。 ======> Ctrl + R
d) 多次重复一组编辑操作。
"."命令可以重复最近一次的编辑动作. 但是如果你要做的操作远比
这些小儿科复杂呢? 那就是Vim为什么要引入命令记录的原因. 使用命令
记录分三个步骤1
1. 使用"qfregisterg"命令开始, 后续的动作将被记录进名为fregisterg的
寄存器中. 给出的寄存器名字必需是a到z之间的一个字母2
2 执行你要执行的操作3.
3. 按下q以结束对命令的记录(注意仅仅是q一个字符, 不要键入多
余的字符).
现在你可以通过"@frecordingg"命令来执行刚刚记录下来的记录宏
了.下面的例子将演示如何实际运行该功能. 假如你有如下的文件名列
表:
stdio.h
fcntl.h
unistd.h
stdlib.h
而你实际想要的结果如下:
#include "stdio.h"
#include "fcntl.h"
#include "unistd.h"
#include "stdlib.h"
将光标移动到第一行上. 接下来执行:
qa 开始将后续的命令记入寄存器a
^ 将光标移动到行首
i#include " 在该行之前插入#include "
$ 移动到行尾
a" 在行尾加上"字符
j 移到下一行
q 停止记录
现在你已经将对第一行的操作完成了一遍, 对其它三行只需要执
行3次"@"命令"@a"命令也可以加一个数字前辍1, 这会使该记录被回放由
该数字指定的次数. 在上面的例子中是:
normal mode command
3@a
e) 把一段文字转换为全部大写。
~ 交换大小写(a -> A, A -> a)
U 将小写变大写(a -> A, A -> A)
u 将大写变小写(a -> a, A -> a)
drwxrwsr-x 7 dijk team 4096 4月 8 19:34 qingli
a) 这里的 s 属性有何作用?
set-uid位。当程序执行的时候,会改变执行权限,既设置了set-uid位后程序的执行权限变为文件所有者权限。
b) 属性字段后的数字 7 表示什么?
子目录的个数 包含. ..目录。
b) 重复上一个编辑操作。 =====> .
c) 还原被撤消的编辑操作。 ======> Ctrl + R
d) 多次重复一组编辑操作。
"."命令可以重复最近一次的编辑动作. 但是如果你要做的操作远比
这些小儿科复杂呢? 那就是Vim为什么要引入命令记录的原因. 使用命令
记录分三个步骤1
1. 使用"qfregisterg"命令开始, 后续的动作将被记录进名为fregisterg的
寄存器中. 给出的寄存器名字必需是a到z之间的一个字母2
2 执行你要执行的操作3.
3. 按下q以结束对命令的记录(注意仅仅是q一个字符, 不要键入多
余的字符).
现在你可以通过"@frecordingg"命令来执行刚刚记录下来的记录宏
了.下面的例子将演示如何实际运行该功能. 假如你有如下的文件名列
表:
stdio.h
fcntl.h
unistd.h
stdlib.h
而你实际想要的结果如下:
#include "stdio.h"
#include "fcntl.h"
#include "unistd.h"
#include "stdlib.h"
将光标移动到第一行上. 接下来执行:
qa 开始将后续的命令记入寄存器a
^ 将光标移动到行首
i#include " 在该行之前插入#include "
$ 移动到行尾
a" 在行尾加上"字符
j 移到下一行
q 停止记录
现在你已经将对第一行的操作完成了一遍, 对其它三行只需要执
行3次"@"命令"@a"命令也可以加一个数字前辍1, 这会使该记录被回放由
该数字指定的次数. 在上面的例子中是:
normal mode command
3@a
e) 把一段文字转换为全部大写。
~ 交换大小写(a -> A, A -> a)
U 将小写变大写(a -> A, A -> A)
u 将大写变小写(a -> a, A -> a)
drwxrwsr-x 7 dijk team 4096 4月 8 19:34 qingli
a) 这里的 s 属性有何作用?
set-uid位。当程序执行的时候,会改变执行权限,既设置了set-uid位后程序的执行权限变为文件所有者权限。
b) 属性字段后的数字 7 表示什么?
子目录的个数 包含. ..目录。