No emacs, como posso manter muitos arquivos abertos ao mesmo tempo?

10

No momento, eu uso C-xC-fpara abrir um novo arquivo, mas ele fica bastante entediante.

Yazz.com
fonte
Qual é o seu objetivo? Abrindo um monte de arquivos de uma só vez? Ou gerenciando muitos arquivos já abertos?
Viam0Zah
Ou você só quer ver vários arquivos de uma só vez? Como o Emacs mantém todos esses arquivos "abertos" (em certo sentido, eles são carregados, mas não são "abertos" no sentido "o descritor de arquivo é aberto").
Jürgen A. Erhard
Eu quero editar vários arquivos de origem de um programa
Yazz.com 19/02/10
Passe por isso antes de usar o emacs
overexchange 13/17

Respostas:

19

Quando você carrega um arquivo no Emacs com o arquivo find (vinculado Ctrl-x Ctrl-fpor padrão), ele é colocado em um "buffer". Contanto que você não mate o buffer, ele permanece na memória, não é necessário recarregá-lo.

Você acessa arquivos já carregados (buffers) com alternar para buffer (vinculado a Ctrl-x b). Pressione as teclas e digite o nome do buffer para o qual você deseja alternar (por padrão, é o nome da base de qualquer arquivo carregado).

Você também pode pressionar Ctrl-x Ctrl-bpara obter uma lista dos buffers existentes no momento. E clique em qualquer buffer lá com o mouse para alternar para ele (IIRC, raramente use o mouse com o Emacs ;-))

Você também pode dividir a tela em duas (ou mais) partes para ver arquivos diferentes (buffers) com Ctrl-x 2. Inicialmente, isso mostra o mesmo buffer duas vezes. Alterne para outro buffer em uma das janelas para ver outro arquivo.

Jürgen A. Erhard
fonte
11
Cx 3 também pode ser usado para dividir a tela em dois, Cx 0 para mostrar apenas um buffer de uma vez.
Rémi
3

Cx be Cx Cb são o que você deseja. Considere também tentar iswitchb ou ido. Desde que comecei a usá-los, desejo que todos os programas que eu usei possam alternar guias / janelas / documentos com a rapidez e conveniência do emacs. Freqüentemente, tenho 50 arquivos ou mais abertos no emacs, você pode encontrar o que deseja rapidamente com iswitchb ou ido.

Justin Smith
fonte
1

Além disso, se você estiver usando uma versão gráfica do emacs, poderá pressionar ctrl-x 5 b para abrir um buffer existente em uma nova janela (chamada de quadro no emacs-speak) ou ctrl-x 5 f para carregar um novo arquivo em uma nova janela

KeithB
fonte
11
cx 5 b também trabalha em um tty, mas a mudança quadros é irritante no modo tty :)
Justin Smith
@ Justin Obrigado. Eu nunca brinquei com quadros em um tty. Existe algum benefício em usar apenas vários buffers.
KeithB
Você pode usar quadros x janelas da mesma maneira que usaria áreas de trabalho x janelas em um gerenciador de janelas Linux - ou seja. para trabalhar no elisp, o quadro 1 tem duas janelas, uma com o arquivo de informações para elisp e a outra com o ielm, para testar o código de maneira interativa. quanto possível, não está dividido). Com uma combinação de teclas decente para outro quadro poderia ser um arranjo muito produtivo se você por algum motivo não queria estar executando X.
Justin Smith
0

Você pode facilmente abrir vários arquivos de uma só vez (ou agir sobre eles de outras maneiras).

  1. Use C-x dpara visitar um diretório (pasta), que lista todos os seus arquivos e subdiretórios.

  2. Marque os arquivos que você deseja abrir (ou agir de alguma outra maneira). Você pode marcar arquivos individualmente ou em grupos com base em várias características, incluindo padrões de nome de arquivo. Veja os menus da barra de menus, Mark e Regexp - mostra algumas possibilidades de marcação disponíveis, bem como seus atalhos de teclado.

Por exemplo:

  • % m marca arquivos cujos nomes correspondem a uma expressão regular.

  • % g marca arquivos cujo conteúdo corresponde a uma expressão regular.

  • * * marca arquivos executáveis.

Para abrir todos os arquivos marcados de uma só vez, você precisa ter carregado a biblioteca padrão dired-x.el. Faça M-x load-library dired-xou coloque (require 'dired-x)no seu arquivo init.

Então você pode usar F( dired-do-find-marked-files) para visitar todos os arquivos marcados de uma só vez. Use C-x C-bpara ver uma lista dos buffers abertos, onde você pode escolher entre esses buffers de arquivo.

Desenhou
fonte