Dans emacs, comment puis-je garder plusieurs fichiers ouverts à la fois?

10

Pour le moment, j'utilise C-xC-fpour ouvrir un nouveau fichier, mais cela devient assez fastidieux.

Yazz.com
la source
Quel est ton but? Ouvrir un tas de fichiers à la fois? Ou gérer de nombreux fichiers déjà ouverts?
viam0Zah
Ou voulez-vous simplement voir plusieurs fichiers à la fois? Parce qu'Emacs garde tous ces fichiers "ouverts" (dans un sens, ils sont chargés, mais ne sont pas "ouverts" dans un sens "le descripteur de fichier est ouvert").
Jürgen A. Erhard
Je veux éditer plusieurs fichiers source d'un programme
Yazz.com
Allez -y avant d'utiliser emacs
surexchange

Réponses:

19

Lorsque vous chargez un fichier dans Emacs avec find-file (lié Ctrl-x Ctrl-fpar défaut), il est placé dans un "tampon". Tant que vous ne tuez pas le tampon, il reste en mémoire, vous n'avez pas besoin de le recharger.

Vous accédez aux fichiers déjà chargés (tampons) avec switch-to-buffer (lié à Ctrl-x b). Appuyez sur les touches, puis saisissez le nom du tampon vers lequel vous souhaitez basculer (par défaut, c'est le nom de base de tout fichier chargé).

Vous pouvez également appuyer sur Ctrl-x Ctrl-bpour obtenir une liste des tampons existants. Et cliquez sur n'importe quel tampon avec la souris pour y basculer (IIRC, utilisez rarement la souris avec Emacs ;-))

Vous pouvez également diviser l'écran en deux (ou plus) parties pour voir différents fichiers (tampons) avec Ctrl-x 2. Initialement, cela montre deux fois le même tampon. Basculez vers un autre tampon dans l'une des fenêtres pour voir un autre fichier.

Jürgen A. Erhard
la source
1
Cx 3 peut également être utilisé pour diviser l'écran en deux, Cx 0 pour afficher un seul tampon à la fois.
Rémi
3

Cx b et Cx Cb sont ce que vous voulez. Pensez également à essayer iswitchb ou ido. Depuis que j'ai commencé à utiliser ceux-ci, je souhaite que tous les programmes que j'utilise puissent changer d'onglet / de fenêtre / de document aussi rapidement et facilement qu'emacs. Souvent, j'ai 50 fichiers ou plus ouverts dans emacs, vous pouvez trouver celui que vous voulez très rapidement avec iswitchb ou ido.

Justin Smith
la source
1

De plus, si vous utilisez une version graphique d'emacs, vous pouvez faire ctrl-x 5 b pour ouvrir un tampon existant dans une nouvelle fenêtre (appelée un cadre dans emacs-speak), ou ctrl-x 5 f pour charger un nouveau fichier dans une nouvelle fenêtre.

KeithB
la source
1
cx 5 b fonctionne également dans un tty, mais changer de trame est ennuyeux en mode tty :)
Justin Smith
@Justin Merci. Je n'ai jamais joué avec des frames dans un tty. Y a-t-il un avantage à utiliser uniquement plusieurs tampons.
KeithB
Vous pouvez utiliser des cadres vs fenêtres comme vous utiliseriez des espaces de travail vs windows dans un gestionnaire de fenêtres Linux - ie. pour travailler sur elisp code frame 1 a deux fenêtres, une avec le fichier info pour elisp, l'autre avec ielm pour tester le code interactivement, frame 2 n'a qu'une seule fenêtre, avec le fichier que vous éditez (afin que vous puissiez obtenir autant de lignes visibles que possible, il n'est pas divisé). Avec une liaison de touches décente pour une autre image, cela pourrait être un arrangement très productif si, pour une raison quelconque, vous ne vouliez pas exécuter X.
Justin Smith
0

Vous pouvez facilement ouvrir plusieurs fichiers à la fois (ou agir sur eux de différentes manières).

  1. Utilisez C-x dpour visiter un répertoire (dossier), qui répertorie tous ses fichiers et sous-répertoires.

  2. Marquez les fichiers que vous souhaitez ouvrir (ou pour agir d'une autre manière). Vous pouvez marquer des fichiers individuellement ou en groupes en fonction de diverses caractéristiques, notamment des modèles de nom de fichier. Voir les menus de la barre de menus Mark et Regexp - il vous montre quelques possibilités de marquage disponibles, ainsi que leurs raccourcis clavier.

Par exemple:

  • % m marque les fichiers dont les noms correspondent à une expression régulière.

  • % g marque les fichiers dont le contenu correspond à une expression régulière.

  • * * marque les fichiers exécutables.

Pour ouvrir tous les fichiers marqués en même temps, vous devez avoir chargé la bibliothèque standard dired-x.el. Faites M-x load-library dired-xou mettez (require 'dired-x)votre fichier init.

Ensuite, vous pouvez utiliser F( dired-do-find-marked-files) pour visiter tous les fichiers marqués en même temps. Utilisez C-x C-bpour voir une liste des tampons ouverts, où vous pouvez choisir parmi ces tampons de fichiers.

A dessiné
la source