Pergunta

Para o meu dia de trabalho, eu vivo no Emacs.Totalmente.Eu também tornaram-se muito dependentes CScope para me ajudar a encontrar coisas no código.

Normalmente, eu tenho 2 windows em uma divisão (C-x 3):alt texto http://bitthicket.com/files/emacs-2split.JPG

E eu uso o direito da janela para o código de buffers e o esquerdo da janela para o CScope buffer de pesquisa.Quando você fizer uma CScope de pesquisa e seleccione um resultado, ele automaticamente atualiza o lado direito da janela para mostrar o buffer conhecido pelo resultado.Isso é tudo muito bem, exceto que ele me faz perder o meu lugar em algum outro buffer que eu estava estudando.Às vezes, isso é nada demais, porque [C-s u] me leva de volta para onde eu estava.

O que seria melhor, porém, é ter 3 divisão windows como este ([C-x 2] na janela da esquerda):alt texto http://bitthicket.com/files/emacs-3split.jpg

E tem a parte inferior esquerda da janela de conter o CScope buffer de pesquisa, e a parte superior esquerda da janela de ser o único buffer que CScope sempre as atualizações.Dessa forma, eu posso ver o meu CScope pesquisas e navegar em torno do código, sem perder o tampão estou focado em.

Alguém sabe como posso fazer isso?

Foi útil?

Solução

Coloque isso no seu .emacs arquivo:

;; 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)))

Em seguida, vinculá-lo a alguns dos principais - eu uso a tecla Pause:

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

E, em seguida, usá-lo para se "dedicar" a janela que você deseja bloqueado.em seguida, cscope só pode abrir arquivos a partir da sua janela do resultado em OUTRA janela.Funciona um charme.Eu especificamente usá-lo exatamente com este propósito - manter arquivo de uma fonte sempre na tela, enquanto usando o cscope em um segundo buffer/janela, e olhando para cscope resultados em um terceiro.

Outras dicas

Bem, eu decidi não ser uma reputação-prostituta e encontrar a resposta sozinho.Eu olhei em cscope.el, como mostrado no Emacs wiki, bem como o xcscope.el que vem com o cscope pacote RPM no RHEL.

Nem aparecer para dar um jeito para fazer o que eu estou querendo.A forma é, provavelmente, para editar o diretī orio elisp adicionando uma variável de pacote como *browse-buffer* ou algo e apenas inicializar a variável se não estiver inicializado a primeira vez que o usuário faz [C-c C-s g] ou seja o que for, e sempre tem o código resultante é mostrado na *browse-buffer*.Em seguida, o usuário pode colocar o *browse-buffer* onde quer que ele quer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top