Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1334394
  • 博文数量: 436
  • 博客积分: 7854
  • 博客等级: 少将
  • 技术积分: 3225
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-18 16:30
文章分类

全部博文(436)

文章存档

2013年(2)

2012年(56)

2011年(70)

2010年(308)

分类:

2010-09-02 11:12:43


按v进入visual状态,选择多行,按住shift同时用>或<缩进或缩出 

1,开始行 ma
2,移动到结束行
3,>'a   缩进一个tab,

如果要缩进多个则:'a,. >>...           一个>代表一个tab,自己数
   < 往左  >往右


对于c语言,我最常用的还是cb,(indent好像不错,但是好像只能基于文件)
在vi下
从函数开始处ma,光标挪到结束处
:'a,. !cb -s
如果你不喜欢tab键,一般情况可以
:'a,. !cb -s | expand -t4
我说一般情况,指在literal的字符串没有tab字符。一般这样的情况到不是很多。-t4表示tab扩展成四个空格,4可以换成其他的数字。
想gnu的很多缩进就是2个字符,就可以用expand -t2。

---------------------------------------------------------

1.如何缩进多行?比如把某几行缩进4个空格?
到你需要缩进的第一行最前面,按Ctrl-v,接着按j到需要缩进的最下面一行,再按大写的I(插入),再按四次空格键,最后按Esc,搞定。
如果只是要正常缩进,gg=G,搞定,或者用v选择要缩进的区域,按=。

2.vi怎样进行块注释?
a.插入注释:
用v进入virtual模式
用上下键选中需要注释的行数
按Control+v进入列模式
按大些“I”进入插入模式,输入注释符“#”,然后立刻按下ESC

b.删除注释
先按Control+v进入列模式
按光标键选中需要删除的注释符
按x键删除

3.如何用vi 复制第5行到第10行并粘贴到第12行之后?
a.光标放到第五行,
输入:y6y
光标放到第12行,
输入:p

b.命令行模式下输入
:5,10 co 12

c.延伸一下, 有时候不想费劲看多少行或复制大量行时,可以使用标签来替代

光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc

然后 :'a,'b co 'c

把 co 改成 m 就成剪切了

 

4.一次多行删除

  1. :x,.d #从x行删除到当前行;
  2. :.,xd #从当前行删除到x行;
  3. :x,.+3d #从x行删除到当前行后第三行;
  4. :x,.-1d #从x行删除到当前行前一行。
  5. y2y也可以复制两行的,p是粘贴。
    dd既是删除,也是剪切。
5.多行复制
  
nyy或yny复制n行的,p是粘贴。

6.多行剪切
  dd既是删除,也是剪切。
  命令行模式下:5,10 m 12  

阅读(2414) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~