Question

En utilisant la fonctionnalité distante dans vim, est-il possible de réutiliser une instance de vim pour charger plusieurs fichiers selon les besoins.

Il sera intéressant d’avoir cette installation dans la même instance de terminal.

Je suis plus désireux d’avoir une interface à onglets, disponible dans vim 7+ Le scénario devrait être

  1. Ouvrir un terminal
  2. vim file1.cpp
  3. Édition - Enregistrer - Ctrl + Z pour accéder à l'invite
  4. ouvrir un autre fichier
    • vim file2.cpp
  5. File1.cpp et file2.cpp sont maintenant ouverts dans le même éditeur

Est-ce possible?!

Était-ce utile?

La solution

J'ai quelques suggestions à vous faire, bien qu'aucune ne soit exactement ce dont vous parlez. Le premier est NERD Tree , qui vous donne une belle base d'arborescence. navigateur de fichiers pour ouvrir d'autres fichiers. Très utile. J'ai également configuré une touche de raccourci (ctrl+o) pour ouvrir l'arbre NERD pour moi. Je garde un alias de tout projet sur lequel je suis dans ~/curr/trunk, donc cela fonctionne toujours pour moi:

map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>

L’autre chose que je suggérerais est de supprimer Ctrl + z. C'est un peu maladroit, et tous ceux que je connais qui utilisent cette méthode ont tendance à s'égarer et à se retrouver avec 3 ou 4 vim en tâche de fond. Découvrez comment ouvrir une coque pour vous-même. J'utilise une carte pour; s exécuter un script shell:

map ;s :!~/.vim/shell.sh<CR>

Qui exécute:

#!/bin/sh
/usr/local/bin/bash -l;

J'ai aussi un peu de magie dans mon .profile pour le rendre évident que je suis dans VIM:

if [ "$VIMRUNTIME" != "" ] ; then
    export PS1="\u@\h \W \t$ vim> "
fi

< / 2 cents >

Autres conseils

Je ne sais pas si cela peut être fait exactement de la manière que vous spécifiez, mais vous pouvez probablement faire quelque chose de très similaire avec un serveur vim exécuté sur votre ordinateur local.

Regardez dans :help remote.txt dans Vim.

Si votre version de vim a été compilée avec +clientserver, vous pouvez utiliser vim pour créer un serveur vim, puis exécuter des commandes sur celui-ci, par exemple. ouvrir un autre fichier.
Le commutateur --servername peut créer un nouveau serveur et le commutateur --remote peut lui envoyer des commandes ou des fichiers supplémentaires.

par exemple

vim --servername test file1.txt
vim --servername test --remote file2.txt

J'ai jeté un coup d'œil et le vim que j'utilise en standard sur xubuntu sur l'un de mes ordinateurs n'en est pas équipé, mais il existe des instructions ici qui peut aider si le vôtre l’a compilé. Si ce n'est pas le cas, installer gvim et créer des liens symboliques est apparemment une option (comme gvim l'a inclus par défaut), ou compiler les fichiers binaires à partir des sources.

Modifier:
J'ai plus joué avec gvim et cela ne semble pas possible de le faire dans le terminal. Control-Z suspend le travail au niveau du processus. Je pensais que cela pourrait fonctionner avec screen, mais aucune communication ne semble avoir lieu à moins que gvim ne soit lancé dans une fenêtre graphique,

Ceci est facile à faire si vous avez compilé VIM avec +clientserver, comme Andy a suggéré dans une réponse précédente .

J'ai fait ce qui suit:

J'ai démarré VIM en tant que serveur:

vim --servername abc

Je l'ai suspendu avec CTRL+Z et j'ai fait:

vim --servername abc --remote ~/.cshrc
fg 

Le VIM était maintenant ~/.cshrc ouvert.

Puis j'ai fait:

vim --servername abc --remote ~/.aliases
fg 

Maintenant, VIM avait un tampon avec ~/.aliases et un autre avec ~/foo_bar.

Puis j'ai fait:

vim --servername abc --remote-tab ~/foo_bar
fg 

Et maintenant, je disposais d’un onglet avec les deux tampons précédents ouverts et d’un autre avec <=> ouvert.

Dans les cas d’appel, VIM s’exécutait dans le terminal et non comme interface graphique.

Vous pouvez fractionner l'écran actuel et ouvrir deux fichiers (ou plus) de la manière suivante:

Pour une scission horizontale, faites:

:sp 'filename'

et pour une division verticale, faites:

:vsp 'filename'

Pour faire la distinction entre les deux, appuyez sur ctrl + w, puis utilisez une touche de direction pour naviguer vers le fichier que vous souhaitez modifier.

De même, si vous souhaitez simplement changer de fichier (et n'en ouvrir qu'un), vous pouvez le faire:

:e 'filename'

G'day,

Ou si vous voulez avoir plusieurs fichiers mais que vous utilisez la fenêtre entière de vim pour un fichier à la fois, vous pouvez simplement entrer

:e 'filename'

pour ouvrir le nouveau fichier. Vous pouvez le faire plusieurs fois. Pour voir ce que vous avez ouvert, entrez

:ls

Pour faire le lien entre les fichiers que vous avez ouverts, vous pouvez utiliser cntl- ^ (shift-cnt-6) et alterner entre les fichiers principal et secondaire (affiché avec% et # dans la liste des fichiers)

Ou vous pouvez entrer

:n b

où n est le numéro au début du fichier que vous voulez dans la liste affichée par la commande 'ls'.

HTH

acclamations,

Vous pouvez définir la fonctionnalité hidden sur vim pour lui permettre d'ouvrir plusieurs fichiers:

:set hidden

Ensuite, vous pouvez ouvrir autant de fichiers que vous le souhaitez, sans vous soucier de les sauvegarder à chaque fois que vous souhaitez changer de & "tampon &";:

:e 'filename'

Vous avez plusieurs commandes pour parcourir les tampons:

:bnext
:bprev
:buffers

Bien sûr, comme mentionné par samoz, vous pouvez diviser votre écran pour afficher plusieurs mémoires tampons dans la même fenêtre.

Je suggérerais de lire this pour une bonne introduction à vim, it vous fera économiser beaucoup de temps.

Bonne chance!

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