Si está escribiendo C / C ++ / Java / Emacs Lisp / Python, entonces semantic-sticky-func-mode hará lo que quiera.
NOTA : Esto parece estar funcionando con CEDET de Git, no con CEDET de inventario actualmente en Emacs 24.4. Para obtener Emacs de Git:
git clone http://git.code.sf.net/p/cedet/git cedet
Y cargue CEDET primero sobre todo lo demás en su archivo init:
(load-file (concat user-emacs-directory "/cedet/cedet-devel-load.el"))
(add-to-list 'load-path (concat user-emacs-directory "cedet/contrib"))
(load-file (concat user-emacs-directory "cedet/contrib/cedet-contrib-load.el"))
Cuando se habilita, este modo muestra que el punto de función se encuentra actualmente en la primera línea del búfer actual. Esto es útil cuando tiene una función muy larga que se extiende más que una pantalla, y no tiene que desplazarse hacia arriba para leer el nombre de la función y luego desplazarse hacia abajo a la posición original.
Muestra la interfaz de función completa (tipo de retorno, nombre de función y parámetros), no solo el nombre de función.
Para habilitarlo, ponga este código en su archivo init:
(require 'semantic)
(semantic-mode 1)
(global-semantic-stickyfunc-mode 1)
ACTUALIZACIÓN : Uno de los problemas con la corriente semantic-stickyfunc-mode
es que no muestra todos los parámetros que están dispersos en varias líneas. Para resolver este problema, creé el paquete stickyfunc-mejorar .
DEMO :
Aquí hay una demostración en C:
Aquí hay una demostración en Emacs Lisp:
ACTUALIZACIÓN : Alternativamente, puede usar helm-semantic-or-imenu . Cuando está dentro de una función y ejecuta el comando, el cursor se coloca directamente en la función de la lista, para que siempre pueda ver la interfaz de la función completa. MANIFESTACIÓN:
Primero, uso helm-semantic-or-imenu
para moverme a la función helm-define-key-with-subkeys
y mover el punto allí.
Entonces, comienzo de helm-semantic-or-imenu
nuevo y helm-define-key-with-subkeys
es preseleccionado.
Luego, muevo el punto a la variable helm-map y ejecuto helm-semantic-or-imenu
nuevamente en dos funciones: helm-next-source y helm-previous-source. Esta vez, en lugar de mostrar la etiqueta semántica actual en la que estoy operando (que es helm-map), muestra las otras dos etiquetas en el búfer Helm Semantic. Esto se debe a que proporcioné un argumento de prefijo antes de ejecutar el comando.
Además, esta demostración está en Emacs Lisp, también funciona para C / C ++ y es más flexible si tiene una interfaz de función realmente larga.