(EMACS 24.2)我需要高亮度调用函数.我在网上找到了这个
(add-hook 'c-mode-hook (lambda ()
(font-lock-add-keywords nil '(
("\\<\\(\\sw+\\) ?(" . 'font-lock-function-name-face))t)))
Run Code Online (Sandbox Code Playgroud)
它有效,但它也突出了以下开括号.我对正则表达式没有信心,请问,如何修改匹配字符串以避免括号突出显示?

我的存储过程有问题(在MySQL上).如果记录存在,我需要表的数据更新过程,否则插入记录.我有:
DELIMITER //
CREATE PROCEDURE saveorUpdate(in product varchar(30), price int, stock int, active varchar(5))
BEGIN
DECLARE id int;
SELECT id_pro FROM products WHERE product=product into id;
IF(id_pro=id)THEN
UPDATE products SET product=product, price=price, stock=stock, active=active
WHERE id_pro=id;
ELSE
INSERT INTO products (product, price, stock, active) VALUES
(product, price, stock, active);
END IF;
END
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
这两行产生以下输出gdb.注意两个临时字符串的地址,first_str并且second_str具有相同的地址.这是为什么?
char *first_str = inet_ntoa(first->dest);
char *second_str = inet_ntoa(second->dest);
(gdb) p first_str
$3 = 0x7ffff7ff06d8 "54.208.71.98"
(gdb) p second_str
$4 = 0x7ffff7ff06d8 "54.208.71.98"
Run Code Online (Sandbox Code Playgroud)
first->dest并second->dest包含不同的值.
我是ML的新手并且一直在尝试简单的功能,但我在尝试使用实数来处理函数时遇到了麻烦.例如,这个反向功能....
fun reverse (nil) = nil
| reverse (x::xs) = if xs = nil then [x]
else (reverse xs) @ [x];
Run Code Online (Sandbox Code Playgroud)
我得到了整数和字符串的propper输出.
- reverse [1,2,3,4];
val it = [4,3,2,1] : int list
- reverse ["a" , "b" , "c" , "d" ];
val it = ["d","c","b","a"] : string list
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释为什么这个函数不适用于实数?
这是我尝试实时的输出...
- reverse [1.0, 2.0];
stdIn:1.2-53.9 Error: operator and operand don't agree [equality type required]
operator domain: ''Z list
operand: real list
in expression:
reverse (1.0 :: 2.0 :: nil)
Run Code Online (Sandbox Code Playgroud) 启动emacs时出现以下错误:(如消息缓冲区所示):
c-font-lock-fontify-region: Symbol's function definition is void: nil
Run Code Online (Sandbox Code Playgroud)
如何在此功能中追踪导致错误的确切原因?debug-on-error是真的,但它仍然没有提供更多信息.
我学习了Emacs Lisp,因为我想自定义我的编辑器并且要清楚我对动态绑定的工作原理有点困惑.
这是一个例子:
(setq y 2)
(let ((y 1)
(z y))
(list y z))
==> (1 2)
Run Code Online (Sandbox Code Playgroud)
结果我回来了=> (1 2) 请一些人解释一下究竟发生了什么.我尝试使用框架的概念来解释它,每个框架创建本地绑定,但它似乎在这里以不同的方式工作.
为什么它不在最近的帧中取最接近的'y'值?
如果可以详细描述这里发生了什么,我会很高兴.
提前致谢.缺口.
我在emacs启动时遇到错误导致它无法加载我在命令行上提供的文件名.我在〜.emacs或〜/ .emacs.d/init.el中没有看到任何关于'debian-startup'的内容.这是什么消息?我怎么让它消失?如果它消失了,我可以直接从命令行打开文件,如[emacs project.clj]吗?我不知道它是否重要,但它的GNU Emacs 24.3.50.1在Ubuntu Saucy Server VM上运行.
我正在尝试更改emacs中的默认字体.我按照emacs wiki上的说明进行操作并添加:
(set-face-attribute 'default nil :font "Avenir" ))
(set-frame-font "Avenir" nil t)
Run Code Online (Sandbox Code Playgroud)
到我的〜/ .emacs文件(我相信这是我的初始文件,因为我在Mac上).
当我再次尝试运行emacs时,我得到了
警告(初始化):加载`/Users/name/.emacs'时发生错误:
读取语法无效:)
调试消息如下所示:
调试器进入- Lisp的错误:(无效读取语法")")
EVAL-缓冲液(#无"/Users/rex/.emacs"无T); 读取bu $ load-with-code-conversion("/ Users/name/.emacs""/ Users/name/.emacs"tt)load("〜/ .emacs"tt)#[0"^ H\205\262 ^ @
\306 =\203 ^ Q ^ @\307 ^ H\310Q\202; ^ @\311 =\204 ^^^ @\307 ^ H\312 $
command-line()normal-top-level ()
我正在尝试在Emacs中设置行号.
Linum效果很好,但是当我打开两个缓冲区时,空行的编号会消失.我使用Manjaro Linux.Emacs在终端工作.
来自.emacs文件的代码:
(add-hook 'find-file-hook (lambda () (linum-mode 1)))
(unless window-system
(add-hook 'linum-before-numbering-hook
(lambda ()
(setq-local linum-format-fmt
(let ((w (length (number-to-string
(count-lines (point-min) (point-max))))))
(concat "%"(number-to-string w) "d"))))))
(defun linum-format-func (line)
(concat
(propertize (format linum-format-fmt line) 'face 'linum)
(propertize " " 'face 'mode-line)))
(unless window-system
(setq linum-format 'linum-format-func))
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我在.emacs文件中设置了以下键绑定:
(global-set-key (kbd "C-S-M-w") 'windmove-up)
(global-set-key (kbd "C-S-M-s") 'windmove-down)
(global-set-key (kbd "C-S-M-d") 'windmove-right)
(global-set-key (kbd "C-S-M-a") 'windmove-left)
(global-set-key (kbd "C-S-a") 'shrink-window-horizontally)
(global-set-key (kbd "C-S-d") 'enlarge-window-horizontally)
(global-set-key (kbd "C-S-s") 'shrink-window)
(global-set-key (kbd "C-S-w") 'enlarge-window)
Run Code Online (Sandbox Code Playgroud)
当他们在自己的窗口时,他们工作得很好.但是,如果我在终端(emacs -nw)中运行它,则不会加载键绑定.即使在加载.emacs文件后,我仍然没有键绑定.
当我使用emacs守护进程并在客户端和终端中打开时,这是相同的故事.如果重要的话,我在linux机器上.
emacs ×7
c ×1
debian ×1
elisp ×1
emacs-faces ×1
font-lock ×1
gdb ×1
key-bindings ×1
line-numbers ×1
ml ×1
mysql ×1
numbers ×1
parentheses ×1
sql ×1
terminal ×1
ubuntu ×1