更改 Emacs 前向字行为
正如标题所说,如何改变 emacs 前向字函数的行为?例如,假设 [] 是光标。然后:
my $abs_target_path[]= abs_path($target);
<M-f>
my $abs_target_path = abs[_]path($target);
我知道我可以只使用 Mf Mb 但就我而言,这应该是没有必要的,我想改变它。特别是,我想要两件事:
- 当我按 Mf 时,我想要转到下一个单词的第一个字符,无论该点是在单词内、在一组空格内还是在其他位置。
- 根据模式自定义单词字符。毕竟,在 CPerl 模式下移动与 TeX 模式等不同。
因此,在上面的示例中,项目 1 在点击 Mf 后会将光标移动到“a”(及其左侧的点)。第 2 项允许我将下划线和符号定义为单词字符。
As the title says, how does one change the behaviour of emacs forward-word function? For example, suppose [] is the cursor. Then:
my $abs_target_path[]= abs_path($target);
<M-f>
my $abs_target_path = abs[_]path($target);
I know I could just use M-f M-b but as far as I'm concerned, that shouldn't be necessary and I'd like to change it. In particular, I want two things:
- When I press M-f, I want to go to the first character of the next word regardless of whether the point is within a word, within a group of spaces or somewhere else.
- Customize word-characters on a mode-by-mode basis. After all, moving around in CPerl mode is different than, say, TeX mode.
So, in the above example, item 1 would have the cursor would move to the 'a' (and the point to it's left) after hitting M-f. Item 2 would allow me to define underscores and sigils as word characters.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
尝试:
然后使用
Mxforward-to-word
并查看它是否符合您的要求。然后,您可以重新绑定Mf
等。要使
_
不是 C 和 C 的单词分隔符(即使其成为单词成分),请执行以下操作: C++ 模式,您可以这样做:有关语法表的更多信息,请阅读此 wiki 页面。语法表通常命名为 tex-mode-syntax-table 和 cperl-mode-syntax-table。
Try:
Then use
M-x forward-to-word
and see if it does what you want. You can then rebindM-f
, etc.To make the
_
not a word separator (i.e. make it a word constituent) for C & C++ mode, you would do this:For more information on syntax tables, read this wiki page. Syntax tables are generally named like
tex-mode-syntax-table
andcperl-mode-syntax-table
.另请参阅forward-same-syntax 函数。也许这是你需要的基础。
See forward-same-syntax function also. probably this is you needed to base on.
我有一个次要模式,可以更改基于单词的命令以对语法更改(以及 CamelCaseSubwords)进行操作。对于某些人来说,它可能有点太细粒度了,但我发现我基本上已经不再使用单个角色的动作了。
https://bitbucket.org/jpkotta/syntax-subword
I have a minor mode that changes word-based commands to operate on syntax changes (and also CamelCaseSubwords). It may be a bit too fine-grained for some tastes, but I find I basically ever use single character movement anymore.
https://bitbucket.org/jpkotta/syntax-subword
我想复制以前编辑器的行为,因此需要更多的控制,所以这是我的看法:
I wanted to copy the behavior of my previous editor thus needed a bit more control, so here's my take on it: