您当前的位置: 首页 > 

phymat.nico

暂无认证

  • 2浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

vi格式化代码,撤销,重做,回退操作

phymat.nico 发布时间:2018-08-06 17:49:28 ,浏览量:2

 

在vim中其实也有像Eclipse中的ctrl + shift +F 的自动格式化代码的操作,尽管非常强大,但是通常会破坏代码的原有的缩进,

所以不建议在python这样缩进代替括号的语言中和源程序已经缩进过的代码中使用,废话少说,下面说步骤:

1,gg 跳转到第一行

2,shift+v 转到可视模式

3,shift+g 全选

4,按下神奇的 =

 

 

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

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 执行前进。 相关帮助:  :helpCTRL-O  :helpCTRL-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  "  在该行之前插入#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   表示什么?    子目录的个数   包含.  ..目录。

 

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

 

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

 

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

 

关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0925s