Question

Pour mon travail quotidien, je vis chez Emacs.Tout à fait.Je suis également devenu assez dépendant de CScope pour m'aider à trouver des éléments dans le code.

Normalement, j'ai 2 fenêtres dans un split (C-x 3) :texte alternatif http://bitthicket.com/files/emacs-2split.JPG

Et j'utilise la fenêtre de droite pour les tampons de code et la fenêtre de gauche pour le tampon de recherche CScope.Lorsque vous effectuez une recherche CScope et sélectionnez un résultat, la fenêtre de droite est automatiquement mise à jour pour afficher le tampon auquel le résultat fait référence.Tout cela est bien beau, sauf que cela me fait perdre ma place dans un autre tampon que j'étudiais.Parfois, ce n'est pas grave, parce que [C-s u] me ramène là où j'étais.

Ce qui serait mieux, cependant, c'est d'avoir 3 fenêtres divisées comme celle-ci ([C-x 2] dans la fenêtre de gauche) :texte alternatif http://bitthicket.com/files/emacs-3split.jpg

Et faites en sorte que la fenêtre en bas à gauche contienne le tampon de recherche CScope et que la fenêtre en haut à gauche soit le seul tampon que CScope met à jour.De cette façon, je peux voir mes recherches CScope et naviguer dans le code sans perdre le tampon sur lequel je me concentre.

Quelqu'un sait comment je peux faire ça ?

Était-ce utile?

La solution

Mettez ceci dans votre fichier .emacs :

;; Toggle window dedication

(defun toggle-window-dedicated ()

"Toggle whether the current active window is dedicated or not"

(interactive)

(message 

 (if (let (window (get-buffer-window (current-buffer)))

       (set-window-dedicated-p window 

        (not (window-dedicated-p window))))

    "Window '%s' is dedicated"

    "Window '%s' is normal")

 (current-buffer)))

Ensuite, liez-le à une touche - j'utilise la touche Pause :

(global-set-key [pause] 'toggle-window-dedicated)

Et puis utilisez-le pour « dédier » la fenêtre que vous souhaitez verrouiller.alors cscope ne peut ouvrir les fichiers qu'à partir de sa fenêtre de résultats dans une AUTRE fenêtre.Fonctionne à merveille.Je l'utilise spécifiquement dans ce but précis : garder un fichier source toujours à l'écran, tout en utilisant cscope dans un deuxième tampon/fenêtre, et en regardant les résultats de cscope dans un troisième.

Autres conseils

Eh bien, j'ai décidé de ne pas être une putain de réputation et de trouver la réponse moi-même.J'ai regardé dans cscope.el comme indiqué sur le wiki Emacs, ainsi que dans xcscope.el fourni avec le package cscope RPM sur RHEL.

Aucun des deux ne semble permettre de faire ce que je veux.La solution consiste probablement à modifier l'ELisp en ajoutant une variable de package telle que *browse-buffer* ou quelque chose et initialisez simplement cette variable si elle n'est pas déjà initialisée la première fois que l'utilisateur le fait [C-c C-s g] ou autre, et ayez toujours le code résultant affiché dans *browse-buffer*.L'utilisateur peut alors mettre le *browse-buffer* où il le veut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top