vi中的撤销与重做

在vi中按u可以撤销一次操作

  撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作

注意:
如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了。
重做
如果你撤销得太多,你可以输入CTRL-R(redo)回退前一个命令。换句话说,它撤销一个撤销。要看执行的例子,输入CTRL-R两次。字符A和它后面的空格就出现了:
young intelligent turtle
有一个特殊版本的撤销命令:“U”(行撤销)。行撤销命令撤销所有在前一个编辑行
上的操作。 输入这些命令两次取消前一个“U”:
A very intelligent turtle
xxxx 删除very
A intelligent turtle
xxxxxx 删除turtle
A intelligent
用“U”恢复行
A very intelligent turtle
用“u”撤销“U”
A intelligent
“U”命令自己改变自己,“u”命令撤销操作,CTRL-R命令重做操作。这有点乱,但不用
担心,用“u”和CTRL-R命令你可以切换到任何状态。

流行的文本编辑器通常都有前进和后退功能,可以在文件中曾经浏览过的位置之间来回移动。在 vim 中使用 Ctrl-O 执行后退,使用 Ctrl-I 执行前进。
相关帮助:  :help CTRL-O  :help CTRL-I   :help jump-motions

 

 

好久没有用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是什么含义?

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   "<Esc>   在该行之前插入#include   "  
  $   移动到行尾  
  a"<Esc>   在行尾加上"字符  
  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   表示什么?  
  子目录的个数   包含.   ..目录。

 

liback.la     库文件的后缀.la是什么含义?  
  表示libback是个静态库。

 

b)   属性字段后的数字   7   表示什么?  
  子目录的个数   包含.   ..目录。?  
   
  这里的7,应该是指链接到此文件的个数吧.!

 

这里的7,应该是指链接到此文件的个数吧.!  
  ==========================================  
  链接是ln创建的文件??  
   
  这样解释把:  
  7专业的叫法是连接记数。  
  任何一个叶目录(不包含任何其他目录,也就是子目录的目录)其连接记数总是2,数值2来自于命名该目录的目录名以及该目录中的.项。当创建一个子目录该子目录里的..项指向他的父目录,使父目录的连接记数加1。  
  所以也可以说7是子目录的个数+目录名+.    
  我上面说的..不包含在内。(不好意思)


原文链接  http://blog.sina.com.cn/s/blog_5caa94a00100ijtw.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值