Éditeur de texte avec option d'écran partagé

26

Existe-t-il un éditeur qui a la possibilité de "diviser l'écran" en deux ou plusieurs parties, accédant à plus d'un fichier (éventuellement avec une arborescence de fichiers) sans ouvrir plus de fenêtres d'éditeur à la fois, et comment procéder (quelles sont les commandes).

Je ne sais pas si je me suis bien fait comprendre, mais "écran partagé" est le seul moyen de décrire ce que je veux réaliser. Je veux l'utiliser pour programmer, ayant plus d'un fichier ouvert pour l'édition. Notez que je suis assez nouveau pour vi et emacs, si ceux-ci sont capables de le faire. De plus, si cela doit être fait via un éditeur de terminal, peut-il être fait dans le même terminal, quelle que soit la taille de l'écran?

Veille
la source
1
Je sais que vous avez spécifiquement posé des questions sur les éditeurs et non sur les terminaux, mais je pense que cela vaut la peine de noter pour les futurs visiteurs: l'émulateur de terminal terminatora également la fonction d'écran partagé: ctrl + shift + ese divisera verticalement et ctrl + shift + ose divisera horizontalement (et ctrl + shift + touvrira également un nouvel onglet)
Carlos Campderrós
@ CarlosCampderrós Je garderai cela à l'esprit, merci!
Eve
1
@ CarlosCampderrós: ​​Vous pouvez également utiliser un multiplexeur comme screen ou tmux pour y parvenir dans d'autres émulateurs de terminaux. L'inconvénient, bien sûr, est que vous devez vous rappeler de les exécuter en premier, mais la flexibilité en vaut probablement la peine.
Phoshi

Réponses:

38

vim peut facilement le faire:

ctrl+ ws- Fenêtres divisées

ctrl+ ww- basculer entre les fenêtres

ctrl+ wq- Quitter une fenêtre

ctrl+ wv- Fractionner les fenêtres verticalement

:sp filename

s'ouvrira filenamedans un nouveau tampon et divisera une fenêtre.

Vous pouvez aussi faire

vim -o file1 file2

Pour ouvrir les fichiers dans une disposition d'écran divisé. Remplacez -opar -Opour une séparation verticale plutôt qu'horizontale.

se ruer
la source
4
Ou tapez :help CTRL-Wpour voir toutes les opérations de la fenêtre fractionnée.
Bernhard
1
Wow, super! Je suis également tombé sur ": split", mais il ne se divise que horizontalement. Pouvez-vous simplement indiquer de quelle version de vim il s'agit? Merci!
Eve
@Eve J'utilise VIM (Vi IMproved) 7.3.
précipiter
1
@Eve - vous pouvez également utiliser :vsplitpour créer une séparation verticale, et comme avec :splitelle accepte un nom de fichier ou une commande
Inutile
1
Et comme <C-w>h/ j / k / l se déplacera entre les fenêtres dans des directions spécifiques, <C-w>H/ J / K / L (en majuscule) déplacera la fenêtre dans cette direction.
Izkata
13

Cela peut être fait en utilisant Emacs. Il fonctionne en GUI et en mode terminal. Vous pouvez même diviser plusieurs fois. Voici quelques combinaisons de touches de base:

Cx 2 Fractionner la fenêtre sélectionnée en deux fenêtres, l'une au-dessus de l'autre (split-window-below).
Cx 3 Fractionner la fenêtre sélectionnée en deux fenêtres, positionnées côte à côte (split-window-right).
C-Mouse-2 Dans la ligne de mode d'une fenêtre, divisez cette fenêtre.

Source: http://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html

jordanm
la source
1
Pour ceux qui ne connaissent pas la terminologie Emacs , il convient de noter qu'une fenêtre Emacs est ce que de nombreux autres éditeurs appellent un écran ou un panneau . Un cadre Emacs est ce que d'autres appellent une fenêtre (on l'appelle un cadre parce que les fenêtres qu'il contient sont encadrées soit par la décoration du bureau (barre de titre et bordures) soit par le terminal ... Les fenêtres contiennent des tampons (du texte; généralement un fichier).
Peter.O
1
@ Peter.O - Pas seulement pour ceux qui ne connaissent pas Emacs ... J'utilise Emacs depuis plus de 5 ans et je n'aurais pas pu expliquer les différences. Je l'utilise juste.
jordanm
11

Avec vim, vous pouvez utiliser splitou vsplit.

Le premier se divisera horizontalement et le second se divisera verticalement.

CTRLw puis pour naviguer dans les écrans divisés.

Vous pouvez également utiliser l'onglet. tabnew filenameouvrira le nom de fichier dans un nouvel onglet. Vous pouvez utiliser tabnextet :tabpreviouspour naviguer entre les onglets.

Je mappe personnellement les flèches gauche et droite pour naviguer entre les onglets:

map <right> :tabnext<CR>
map <left> :tabprevious<CR>
inoremap <right> <ESC>:tabnext<CR>a
inoremap <left> <ESC>:tabprevious<CR>a
Luc M
la source
1
De plus, le plug-in NERD_tree peut être utilisé pour afficher l'arborescence de répertoires dans une division distincte. ( vim.org/scripts/script.php?script_id=1658 )
Bernhard
7

Kate

L'éditeur de texte avancé de KDE est très fonctionnel.
Il contient tout ce que vous avez décrit dans la question et bien plus encore .

Voir par vous-même:

Capture d'écran

Pour diviser la vue, accédez à VueFractionner la vue . Ensuite, vous pouvez sélectionner l'une de ces options:

  • Fractionner vertical ( Ctrl+ Shift+ L)
  • Fractionner Horizotal ( Ctrl+ Shift+ T)
  • Fermer la vue actuelle ( Ctrl+ Shift+ R)

Pour obtenir la mise en page comme sur cette capture d'écran, Fractionner vertical , cliquez sur la vue du bas puis Fractionner horizontal .

Bien sûr, les limites des vues peuvent être modifiées en faisant glisser les bordures (séparateurs) entre elles. Pour basculer entre les vues, utilisez F8et Shift+ F8.

Soit dit en passant, Kate a un soi-disant mode VI ( ParamètresConfigurer Kate…Édition → Mode d'entrée VI). Les raccourcis pour le fractionnement des vues deviennent alors les mêmes que dans Vim (voir cette réponse ).

Oleh Prypin
la source
7

joe( Joe's Own Editor ) peut aussi le faire:

ctrl+ ko- fenêtre divisée horizontalement

ctrl+ kp- passer à la fenêtre précédente

ctrl+ kn- passer à la fenêtre suivante

ctrl+ ke- ouvrir un nouveau fichier dans la fenêtre actuelle

ctrl+ kg- augmenter la hauteur de la fenêtre actuelle

ctrl+ kt- réduire la hauteur de la fenêtre actuelle

ctrl+ ki- masquer toutes les fenêtres sauf la fenêtre actuelle, appuyez à nouveau pour afficher à nouveau toutes les fenêtres

ctrl+ cou ctrl+ kx- ferme une fenêtre

scai
la source
5

Sublime Text 2 peut le faire (et bien d'autres).

Dan F.
la source
4

Si vous êtes intéressé à vous familiariser un peu mieux avec VIM, consultez vimcasts.org , il a un tas de didacticiels vidéo vraiment sympathiques. Celui-ci spécialement pour la magie de l'écran partagé

Prendre plaisir!

lwm
la source
C'est bien, merci beaucoup! J'augmenterais davantage, mais je n'en ai qu'un.
Eve
2

Concernant les arborescences de fichiers, j'utilise personnellement NERDtree avec Vim. Il nécessite un agent pathogène. J'ai trouvé que la commande pour ouvrir l'arborescence ( :NERDtree toggle, iirc) était un peu longue, alors je l'ai remappée <F2>. Si vous travaillez sur un projet avec beaucoup de fichiers dans beaucoup de répertoires (pensez aux projets Rails), c'est vraiment sympa.

MODIFIER:

NERDtree est sur Github: https://github.com/scrooloose/nerdtree

Voici le remappage que j'utilise dans mon .vimrc: map <F2> :NERDTreeToggle<CR>

AlexWebr
la source
Merci, j'ai peut-être d'autres questions à ce sujet. Ceux que je réserve pour une autre fois. ;)
Eve
1

J'utilise tmuxet vimpour l'édition d'écran partagé dans un environnement basé sur un terminal, bien que vous puissiez utiliser n'importe quel éditeur de texte en ligne de commande pour cela (par exemple nano, emacsetc.).

tmuxest l'abréviation de "terminal multiplexeur" et il vous permet de créer des sessions avec plusieurs terminaux, fonctionnant dans des "fenêtres" distinctes et également des "volets" dans ces fenêtres, ce qui vous permet de diviser l'écran. tmuxest inclus dans les référentiels de nombreuses distributions Linux et BSD. Je trouve que c'est l'option la plus flexible pour le codage, car je peux également ajouter des divisions et des fenêtres qui contiennent des terminaux où je peux compiler du code et utiliser un système de contrôle de version, comme à gitcôté de mon édition de code.

Voici un exemple de la façon dont je créerais une session d'édition d'écran partagé en utilisant tmuxet vim.

Ouvrez d'abord un terminal. Dans les commandes ci-dessous écrites après $sont émises à partir de la ligne de commande. Cela utilise les raccourcis clavier par défaut dans tmux.

  1. Démarrez une nouvelle session tmux. Ici, nous en faisons un appelé "codage":

    $ tmux new -s coding

    tmux vient d'ouvrir

  2. Appuyez sur Ctrl+, bpuis sur %pour un fractionnement vertical ou "pour un fractionnement horizontal.

    séparation verticale

    fente horizontale

  3. Vous pouvez vous déplacer entre les divisions (ou en tmuxlangage, les "volets") en appuyant sur Ctrl+ bsuivi de o.

  4. Ouvrez maintenant un éditeur de texte avec les fichiers que vous souhaitez modifier dans chaque volet. Ici, je viens d'ouvrir deux fichiers texte en utilisant vim, par exemple

    $ vim file1.txt

    Changer de volet: Ctrl+ bsuivi de o.

    $ vim file2.txt

    modification simultanée de deux fichiers

tmuxest extrêmement avancé, permettant plusieurs volets dans une seule fenêtre disposés de différentes manières et vimvous permet d'ouvrir plusieurs fichiers texte à la fois dans des onglets. J'ai tendance à utiliser à la fois la tabulation vimet les volets tmuxpour me permettre d'éditer, de contrôler la version et de déboguer le code simultanément. Si vous avez le temps d'investir dans l'apprentissage des raccourcis clavier et de ses fonctionnalités, tmuxcela peut être un environnement de développement très puissant.

Une tmuxfeuille de triche pour commencer: écran de dayid et feuille de triche tmux

Un tutoriel sur les onglets dans vim: Astuces Vim: Utilisation des onglets

James Womack
la source
0

personnellement, j'utiliserais un écran ou un tmux. les deux vous permettent d'ouvrir plusieurs panneaux, même si je pense que tmux est meilleur pour récupérer une session multi-panneaux que l'écran. vous obtenez également l'avantage supplémentaire de pouvoir vous attacher à la session si vous vous déconnectez de votre session de bureau locale, puis de SSH. Vous avez même la possibilité de partager la session avec d'autres utilisateurs pour la collaboration.

morggin
la source
voici un downvote parce que vous n'utilisez pas shift
peterh dit réintégrer Monica
0

A côté vim, emacset les joeéditeurs, voici quelques autres terminaux (TTY) / x-terminaux éditeurs de l' émulateur, qui peuvent montrer au moins deux fichiers en même temps. Ce ne sont peut-être pas les couteaux suisses les plus mignons, mais la courbe d'apprentissage ne semble en tout cas pas trop abrupte:

1) mcedit

Fait partie de Midnight Commander (un gestionnaire de fichiers en mode texte, installez-le avec apt-get install mcdans les distributions basées sur Debian).

mcedit

2) wpe \ xwpe

Disponible avec des apt-get install xwpedistributions Dedbian. Cependant, il semble que ce soit une protection arrêtée.

xwpe

3) nfte \ efte

eFTE est également disponible via apt-get install efte.

efte

D'un autre côté, pour la X-window, il y a aussi quelques outils GUI "diff" qui pourraient être utiles à cet effet. Dans ma Linux Mint, j'en ai au moins deux:

4) xxdiff

Une application basée sur Qt ( apt-get install xxdiff)

xxdiff

Non testé et non montré, mais existe également en Fldiffutilisant le Fast Light Toolkit (FLTK) mais inspiré en partie xxdiff. Également dans les dépôts officiels ( apt-get install fldiffet vous pouvez le tester vous-même). La même chose s'applique à mgdiff.

5) kdiff3

Une application KDE similaire ( apt-get install kdiff3).

kdiff3

Fran
la source
0

Vous pouvez utiliser l'éditeur de texte atom de github. Il est livré avec une fonctionnalité d'écran partagé.

Göktuğ Aşçı
la source