我使用“--无init-file”运行emacs 23和24,以避免加载自定义。但之后,我明确地加载了我的python-mode.el ( 3.105版本,最后一次版权通知)的旧版本,并看到了我将要描述的相同的行为,所以我相信它是核心emacs,而不是python。
考虑以下代码( *标记游标位置):
*def emacs_is_fun():
for x in range(3):
print(x)将光标放在"def“开头的第4列。
使用emacs 23,运行mark-sexp将选择"def“。
使用emacs 24,mark-sexp选择整个代码块,直到print语句的末尾。
这还不错。主要的问题是这种常见的用法:
*very_long_var_name[very_long_expn] += long_function_call(long_arg_list, blah)同样,光标位于行的可打印部分的开头,col 4。
在emacs 23中,mark-sexp选择very_long_var_name。
在emacs 24中,mark-sexp选择完整的行,从col 4到末尾。
我一直在使用Ctrl-alt-space alt-w来快速保存变量名。(或者alt-2 ctrl-alt-space alt-w来保存ref表达式。)现在它不见了。它是emacs,所以这必须是可定制的,但是我还没有找到新的行为是在哪里实现的(请记住,我使用的是一个大约15年前的python模式)。我需要在我的.emacs文件中放什么?
发布于 2016-02-03 02:13:18
@Eric有趣。谢谢你对我另一个答案的评论中的内容。
我想你可能只想这样:
(add-hook 'python-mode-hook (lambda () (setq forward-sexp-function nil)))
来自python-mode内置emacs 24的评论(我认为你可能会得到)
最后,但并非最不重要的是,专门的
python-nav-forward-sexp允许在代码块之间进行轻松的导航。如果你喜欢cc-mode-likeforward-sexp运动,把forward-sexp-function设为0就够了.
就像我在另一个答案中提到的那样,这更接近于我对性行为的看法,但在lisp之外,性行为似乎至少有点模棱两可。
https://stackoverflow.com/questions/35162556
复制相似问题