vim的代码缩进
例如下面一段代码:
现在要统一缩进6个tab,在UltraEdit里首先要选中文本,然后按6次tab,VIM中的操作是:首先按V(shift+v)进入行visual模式,然后按7次j选中这段文本(或者7j也行),然后按“6>”(shift+.),如果不确定几个tab,可先>一次,这时自动退出了visual模式,再次缩进不需要重复上述操作,只要按点号(“.”,重复前次命令)即可。
2013-01-10更新:上面的方法太麻烦了,gg>G即可。如果只缩进第2~6行:2G>6G
下面的代码vim有更智能的缩进方法:
public static int rank(int key, int[] a) {
int lo = 0;
int hi = a.length - 1;
while (lo <= hi) {
// Key is in a[lo..hi] or not present.
int mid = lo + (hi - lo) / 2;
if (key < a[mid]) hi = mid - 1;
else if (key > a[mid]) lo = mid + 1;
else return mid;
}
return -1;
}
假设光标在while循环内的某处,用>aB就可以缩进,<aB反缩进,其中a表示包括分隔符(这里是{和}),B表示block,即代码块(参考http://www.viemu.com/a-why-vi-vim.html)。
上面的方法移动整个代码块,如果只想把嵌套部分向内缩进,将光标放在块内的任意行首,然后用>iB,重复这个缩进动作用“.”命令。
2013-10-28更新:
上面的方法是手工缩进,但vim支持大部分编程语言的自动缩进(用"="键),即根据打开文件的扩展名决定缩进方法,上面的缩进一条指令搞定:ggvG=
与手工缩进相比,自动缩进受文件扩展名的限制,例如无法在xml文件的buffer里修改C代码的缩进;
最新文章
- effective java —— 终结方法守卫者
- ProcessOn
- Android横竖屏切换重载问题与小结
- 高大上的uGUI正式版发布了
- InputStream复用,mark和reset
- WKWebView API精讲(OC)
- MySQL修改约束
- js禁止从浏览器缓存读取消息
- opencv 手写选择题阅卷 (三)训练分类器
- 当mysql遇上PHP
- CentOS 7下GitLab搭建及配置
- python爬虫学习之Scrapy框架的工作原理
- Servlet----------在使用doGet()和doPost()是如何处理中文乱码
- TCP与UDP各自优缺点与区别
- linux安装Anconda
- 查看library的依赖树
- 机器学习之路:python支持向量机回归SVR 预测波士顿地区房价
- Oracle中查询表字段基本信息、主键、外键(整理)
- try...finally的妙用
- Android 框架学习3:从 EventBus 中学到的精华