349_emacs中快速选中一个函数以及在函数前后移动
这个功能的发现,说起来其实偶然。我不小心按错了按键,选中了一个函数。但是,重复了好几次没有找出我究竟是如何按的。好在还有一个*Message* buffer,顺利找到了相应的功能。
选中一个函数,使用的功能叫做c-mark-function。具体的描述如下:
功能**的效果如下:
在此之前,选中一个函数我采用的更多的是expand-region。功能设计上,算是更加细致一点。不过,从函数级别的操作上,做不到这么快速的一步到位操作。
从上面的帮助信息,能够看到这个功能的大概用法。如果光标在函数内,直接选中一个函数,否则选中就近的一个。除此之外,也让我们看到了另外两个操作。这两个操作能够实现在函数前后的跳转。
比如,如果光标在上图位置。C-M-a的效果:
C-M-e的效果:
这让我想到了emacs默认的C-a和C-e以及相应功能的注释,注释中的描述我称之为“面向RMS编程”。
我又找到了之前看过的代码,觉得这个东西的确还是很有意思的。
在我知道这个C-M-a/e跳转之前,我采用的方式通常是vim的括号对跳转。直接使用%操作符,不过现在看来,在这种场景下还是不如这个功能实用。值得一说的是,这个功能其实不是spacemacs中独有的配置,而是emacs本身就存在的。而且,类似的功能其实存在于多种编程语言的识别中,例如在emacs lisp中,也有着类似的行为方式。看起来,工具用起来之所以不顺手,还是因为我对这个工具本身了解的并不够深入。不过,emacs的这个深度可真算得上是一门学问了。