标签: cc-mode

使php模式(和其他cc模式派生模式)与Emacs 23兼容

我使用的是Emacs 23和php-mode.el 1.5.0.当我在我的这个.emacs:

(require 'php-mode)
Run Code Online (Sandbox Code Playgroud)

我在Emacs启动时收到此错误消息:

警告(初始化):加载`/Users/kdj/.emacs'时出错:

错误:必须在文件中使用`c-lang-defconst'

为确保正常运行,您应该调查并删除初始化文件中的错误原因.使用`--debug-init'选项启动Emacs以查看完整的错误回溯.

如果我(require 'php-mode)在Emacs启动后评估,我不会收到任何错误消息.

我找到了一个博客条目,表明此问题是Emacs 23特有的(也就是说,Emacs 22.x没有错误),但它没有提供任何解决方案.

我不知道这是否重要,但我使用的是Mac OS X,并且我使用当前的CVS源构建了Emacs ./configure --with-ns.

这里发生了什么,和/或我如何解决它?

emacs php-mode cc-mode

29
推荐指数
1
解决办法
1万
查看次数

Java编码样式和Emacs cc模式配置

我在GNU/Linux Debian机器上使用GNU/Emacs HEAD和附带的cc-mode(c-version 5.32.2).

我正在尝试定义一个自定义样式来管理Java编程语言代码约定,Android的贡献者代码样式指南和一些自定义规则.

作为一个lisp初学者,从头开始似乎并不明智.因此,我使用google-c-style作为起点,我设法获得最缩进规则的预期行为,嵌套条件有例外(请参阅下面的代码片段).

那篇文章中,我已经定义(arglist-cont-nonempty . ++)了我的自定义样式(完整代码:custom-java-style.el).不幸的是,虽然大多数情况按预期缩进:

if ((condition1 && condition2)
        || (condition3 && condition4)
        ||!(condition5 && condition6)) {
    doSomethingAboutIt();

    someMethod(longExpression1, longExpression2, longExpression3,
            longExpression4, longExpression5);
}
Run Code Online (Sandbox Code Playgroud)

嵌套条件错误地缩进:

if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
                && deviceRegistred.getName().equalsIgnoreCase(deviceName))) {
    doSomethingAboutIt();
}
Run Code Online (Sandbox Code Playgroud)

Ctrl-c Ctrl+s报告Syntactic analysis: ((arglist-cont-nonempty 2447 2450) (arglist-cont-nonempty 2447 2452))第二行,我显然有16个空格(2次++)缩进而不是8(++).

我想得到以下缩进:

if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
        && deviceRegistred.getName().equalsIgnoreCase(deviceName))) {
    doSomethingAboutIt();
}
Run Code Online (Sandbox Code Playgroud)

我试图定义一个(,(when (fboundp …)))像用于 …

java emacs elisp dot-emacs cc-mode

19
推荐指数
1
解决办法
1128
查看次数

我怎样才能让emacs自动插入关闭括号

我刚刚开始使用emacs,并且有一个我非常喜欢的功能,并且搜索一下也没用.我希望其他人这样做是因为我还不想学习elisp.

void foo()<cursor>
Run Code Online (Sandbox Code Playgroud)

我想输入一个"{"来导致这种情况发生

void foo(){
    <cursor>
}
Run Code Online (Sandbox Code Playgroud)

我希望这只发生在cc模式中,并且只在不在字符串/ comment/etc中的行尾

我想到的第一件事是重新绑定"{"来做到这一点(我可以弄清楚如何自己做),但很难让它只在恰当的时间发生.

任何提示将不胜感激.

emacs curly-braces cc-mode

6
推荐指数
2
解决办法
3517
查看次数

在Emacs中重载密钥绑定

我已经查看了一些其他问题和el文件,寻找我可以修改以满足我的需求但我遇到麻烦所以我来找专家.

无论如何,根据光标在行中的位置,键的行为会有所不同吗?

更具体地说,如果我在行的中间,我想将tab键映射到行的末尾,但如果我的光标位于行的开头,通常会作为制表符工作.

到目前为止,我有大括号和引号自动配对并将光标重新定位在C++/Java等中.我想使用tab键来结束行,例如函数没有任何参数.

emacs elisp cc-mode

5
推荐指数
1
解决办法
258
查看次数

Emacs:如何在cc模式导数中自动插入空格后的空格

假设我有这个代码:

{
  "type"  : "home",
  "number":"212 555-1234"
}
Run Code Online (Sandbox Code Playgroud)

我希望我的emacs在某些模式下自动在冒号后插入空格.特别是我正在使用基于cc模式的javascript模式.它有帮助吗?

预先感谢.

emacs colon cc-mode

5
推荐指数
1
解决办法
457
查看次数

让Emacs对缩进的攻击性降低

每当我输入某些内容时,Emacs就会重新使用当前行,例如";" 要么 "//".这非常令人讨厌,因为有很多地方不够智能缩进.

如何禁用此功能?我仍然希望能够使用TAB缩进该行,但我不希望我输入的任何源代码使其重新启动.

(我正在使用Dylan Moonfire的C#模式,但这可能适用于任何cc模式.)

emacs elisp indentation cc-mode

4
推荐指数
1
解决办法
721
查看次数

Emacs cc模式选项卡行为

多次按Tab键不会将文本向右移动.有没有办法使它的行为像Visual Studio的智能缩进?第一个选项卡缩进,后续选项卡将文本移动到下一个制表位.谢谢.

emacs cc-mode

4
推荐指数
1
解决办法
441
查看次数

Emacs缩进功能

cc-mode在Emacs 工作,我发现缩进非常烦人.

作为一个VIM用户,我几乎习惯了更长的缩进,以及尽可能多地按Tab键选项卡.

在Emacs中,我的TAB映射到goto-line.首先,哪个函数设计用于缩进当前行(或者点之后的内容)?indent-region很烦人,因为你需要突出显示该区域.

第二,修复缩进的最佳方法是什么?

谢谢,

c emacs indentation cc-mode

4
推荐指数
1
解决办法
1406
查看次数

通过参数列表移动

我使用由一个安装一个C++程序员cc-modeCEDET,当然还有我们敬爱的emacs(v24.2).

我缺少的一个功能是一个通过参数列表快速移动点的函数.考虑这个例子:

void takesManyArgs( int a1, int a2, int a3, std::pair<int,int> a4, int a5 ){  
    // does something nifty!  
}  
// [...]
takesManyArgs( b1, b2, b3, make_pair( b4, b5 ), b6 );
Run Code Online (Sandbox Code Playgroud)

点在第一个之前int.现在我想以一种简单的方法快速浏览参数列表,即在第一个非空格字符超过逗号(参数分隔符)之前移动的forward-argument(和backward-argumentaswell)函数.
我已经编写了一个小功能,但它不是我喜欢它的工作方式:

(defun arg-forward ()  
  "Move point forward in the file until we hit an argument separator, i.e. comma, colon or semicolon."  
  (interactive)  
  (progn  
    (re-search-forward "[,]")))  
Run Code Online (Sandbox Code Playgroud)

原则上这个函数只是跳转到下一个逗号.那不是我想要的行为.

我想要一个功能:

  • 编辑:跳转到下一个参数分隔符(即C++的逗号)并在该参数分隔符后面放置点
  • 检查逗号后面是否有空格; 万一有一个点移动到第一个非空白字符(即,而不是,| int它看起来像, |int这里 …

emacs elisp cc-mode

3
推荐指数
1
解决办法
98
查看次数

如何在RET上禁用电动缩进但仍保留其他电子字符(例如"{")?

在Emacs 24.4中,默认缩进行为已更改 - 现在新行自动缩进.从发行说明:

*** `electric-indent-mode' is now enabled by default.
Typing RET reindents the current line and indents the new line.
`C-j' inserts a newline but does not indent.  In some programming modes,
additional characters are electric (eg `{').
Run Code Online (Sandbox Code Playgroud)

我更喜欢旧的行为,所以我补充道

(electric-indent-mode 0)
Run Code Online (Sandbox Code Playgroud)

到我的.emacs档案.但是,这会禁用所有电子角色,这不是我想要的.

是否有任何方法可以禁用新行为,同时仍然有像'{'或':'这样的字符触发缩进?

emacs indentation auto-indent cc-mode emacs24

3
推荐指数
1
解决办法
934
查看次数

标签 统计

cc-mode ×10

emacs ×10

elisp ×4

indentation ×3

auto-indent ×1

c ×1

colon ×1

curly-braces ×1

dot-emacs ×1

emacs24 ×1

java ×1

php-mode ×1