当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : VIM写C的时候怎么设置才能有EMACS的这种效果?
帖子发表于 : 2007-10-31 0:50 

注册: 2007-09-26 9:00
帖子: 113
送出感谢: 0 次
接收感谢: 0 次
VIM中的自动缩进,虽然可以,但自从用了EMACS后……

假设我写了以下的程序:
#include<stdio.h>
int main()
{
printf("hello,world");
printf("world,hello");
}

当然,如果默认一行一行输入,VIM(开启了set cindent)和EMACS都会在printf前面插上制表符(或空格组成的空白)
假设你每一行都没缩进或不整齐的话(一行多一行少,例如上一个printf前面两个制表符而下一个前面四个制表符,再最后一个花括号前面一个制表符)……
如果是EMACS,只要把光标移到当前行,按一下TAB,马上自动调整好,(两个printf前面只一个制表符,而后一个花括号前面取消,即没有)……
如果是VIM……怎么才能有这种效果?


同理(即),如果没事按按tab的话,VIM会努力在当前位置插入制表符,而EMACS却是将当前行的缩进调整(相当于不会插入制表符,仅调整前边的缩进)。


当然,说的是文件名以C后缀的情况下,可能EMACS是以这个为语法基准的。


本人懒人一个,特喜欢EMACS的这种功能,很希望VIM能找出什么命令或设置使之也能这样做……


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-10-31 1:17 

注册: 2007-09-26 9:00
帖子: 113
送出感谢: 0 次
接收感谢: 0 次
找到答案了,原来在VIM下是=,尤其是gg=G自动调整全篇缩进很强大。但是,如何禁用插入制表符呢?(即TAB键只有调整当前行缩进的作用)


反正两者都不熟,暂时因为这个功能转投EMACS……


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-10-31 8:50 

注册: 2006-09-20 19:56
帖子: 768
送出感谢: 0 次
接收感谢: 1
氢离子 写道:
找到答案了,原来在VIM下是=,尤其是gg=G自动调整全篇缩进很强大。但是,如何禁用插入制表符呢?(即TAB键只有调整当前行缩进的作用)


反正两者都不熟,暂时因为这个功能转投EMACS……


呵呵做个广告,gg=G在Emacs中这样子:C-x h C-M-\,前提是没有修改默认的键绑定。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-10-31 16:21 

注册: 2007-01-27 14:11
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
Emacs 中其实不用按 TAB,因为当你输入 ; 或 , 时候会自动缩进;甚至连 RET 也不用按,如果你用了 auto newline mode 的话。事实上,由于 CC Mode 使用了一个下推自动机,Emacs 已经可以对代码本身做一些简单的分析了。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译