开发者

Customizing emacs to dim or de-highlight one-liners in code

I program extensively in Python, and instead of using fancy debuggers I just use lots of print statements to figure out what my program is doing. I've set it up so that a typical function looks like this:

def do_something(*args, **kwargs):
    verbose = True
    verbose and print("Entered do_something with args: {0} and kwargs: {1}".format(args, kwargs))
    for a in args:
        verbose and print("Looping with {0}".format(a))
        ...

The idea is that since all my "debugging statements" are all on one line, grepping them out is easy enough if/when the time comes. Also, the logic lets me turn certain debugging statements on and off for each function, allowing me to customize what I want to see output into the console.

Anyway, what's annoying me is that they clutter up the place. I want to focus more on the actual code than on my debugger statements when glancing through. Hence, I wonder if emacs is capable of doing some sort of macro that says:

"Change the font color of any line that begins with "verbose" to grey" With the caveat that "begins with" here really means 开发者_如何学Go"after ignoring the leading whitespace."

So is it possible to "de-highlight" those verbose statements? Or maybe a macro that fill hide any such one-liners?

I'm a newbie with emacs, so be explicit :) I use Aquamacs on Mac OS X 10.6 if that makes any difference.


I believe hi-lock-mode will do what you need - it will allow you to highlight lines of text with a specific face. Documentation is here:

http://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html

In principle, once you've enabled hi-lock-mode (e.g. M-x global-hi-lock-mode <RET>), you should be able to use c-x w l verbose <RET> <facename> <RET> to get it highlighted, where facename is the face (font/color/etc.) that you want to use to highlight this. You would have to create a face to do this. It could be that hi-lock has a default face that might work (M-n to go through them after the first <RET>).

However, I'm not sure how (or if) hi-lock-mode and font-lock mode work together - it might be that this won't work for a highlighted source file, and I don't have a copy of emacs on this machine in order to determine the whether this works, and I don't use Aquamacs at all, but this should at least give you something to try.


Read about highlight-lines-matching-regexp in help. If you choose the right face this will do what you want.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜