Pourquoi ne Vim experts préfèrent les tampons sur les onglets?
Je n'ai pas comprendre tampons. Quand j'ai ouvert 3 fichiers sur le même onglet et fermer ma fenêtre, je suis ennuyé pour trouver la prochaine fois je ouvrir un de ces fichiers qu'il y a d'étranges les fichiers de swap de longue durée et de me donner satanés messages. Mais des fois j'ai lu que ces choses sont la productivité nirvana je suis absent dehors sur et que les onglets ont été faites pour les plébéiens à utiliser.
Je vous demande donc, le Vim expert: quels sont les avantages de l'utilisation de tampons sur les onglets? Je ne vois pas comment la différence pourrait être profondément différente, mais je me considère uniquement à des débutants-niveau intermédiaire au fonctionnement de Vim. Est :ls
:b#
vraiment beaucoup plus rapide que gt
ing autour? Je sens qu'il faut aller plus loin.
- Pour ceux qui souhaitent apprendre Vim ou de Vim fortement influence par d'autres GUI basée éditeurs, je vous conseille de d'abord lire @Jonathan Bord de la réponse et puis revenir vers le haut de réponse ici.
- Ne vous inquiétez pas trop à ce sujet. J'ai utiliser les onglets comme mon principal mode de navigation parmi les fichiers. Comme vous le dites, <#>gt est facile à saisir. Pour le rendre encore plus facile à utiliser, je personnaliser mon tabline de données à inclure le numéro d'onglet. Si j'ai besoin d'afficher plus d'un tampon à un moment, j'ai divisé une nouvelle fenêtre dans l'onglet. En dépit de ce que @romaini revendications, cette façon d'utiliser Vim me fait très productive car elle correspond à mon personnel de métaphores. Notons également que, dans un 37 (jusqu'à présent) ans de carrière en tant que programmeur, je n'ai pas encore eu à avoir plus que cinq ou six fichiers ouverts en même temps et que très rarement. Faire ce qui fonctionne pour vous. 🙂
- Faire ce qui fonctionne. Certaines personnes utilisent un grand nombre de fichiers dans une session, afin de tampons question beaucoup plus. Même Bram Moolenaar dit "de les organiser comme vous le souhaitez." Avoir 20 onglets ouverts n'est pas la bonne manière, mais les onglets pour quelques fichiers n'est pas la fin du monde. Bram solution pour gérer un grand nombre de fichiers est l'ouverture de plusieurs sessions terminal server. Il dit que c'est comment il le fait, mais pas que c'est de cette façon tout le monde devrait le faire.
- La seule différence évidente qui ne semble pas être correctement mis en évidence, c'est que si vous restez dans un onglet, vous pouvez afficher plusieurs fichiers en même temps avec par
:split
ting dans "windows". Si vous avez tous vos tampons (fichiers) dans les différents onglets, vous n'obtiendrez pas que la vue simultanée. Je vous recommande d'apprentissage à l'aide de vim 1 onglet pour commencer et de s'habituer à des splits.
Vous devez vous connecter pour publier un commentaire.
Que ZyX dit sur #vim, cette question sonne comme "Pourquoi ne Vim experts préfèrent savoureux plus chaud?".
"Vim experts" ne préfère pas les tampons sur les onglets: ils utilisent des tampons, comme le fichier des procurations qu'ils sont et des pages à onglet, comme les espaces de travail qu'ils sont. Tampons et des pages à onglet, ont des finalités différentes, de sorte préférant l'un à l'autre n'a aucun sens que ce soit.
Le problème avec les tampons et les onglets est l'un des confusion, causée par une combinaison de faits indépendants.
Plus "moderne" des éditeurs de texte et IDEs utiliser un onglet métaphore pour représenter les fichiers chargés. Cette métaphore agit comme un système d'information — il montre à l'utilisateur quels sont les fichiers ouverts et leur état — et comme un dispositif interactif — il permet à l'utilisateur de manipuler (réorganiser, de sélectionner, de proximité...) ces fichiers ouverts. En dépit de leurs nombreuses limites, les onglets sont partout et les gens sont habitués à eux et attendre partout.
Vim introduit onglet pages dans la 7.0 comme une façon pour ses utilisateurs de créer ad-hoc "espaces de travail". Rien dans leurs caractéristiques, leurs options, leurs commandes ou leurs
:help
sections suggère que les pages à onglet qui pourrait ou devrait être utilisé que par procuration.Rien, sauf le nom et l'apparition de l'onglet "pages", bien sûr, ce qui conduit à beaucoup de confusion.
Sans
:set hidden
, qui est désactivé par défaut et pas très facile à trouver, Vim fait qu'il est impossible de passer à un autre tampon, sans l'écriture du courant de l'un ou de l'abandon de ses changements. Les nouveaux utilisateurs, pas au courant de cette option, n'ont d'autres choix que de se tourner vers lourdes fenêtres usage ou à celui le plus proche "de l'onglet" comme de la fonction qu'ils peuvent trouver: onglet pages.Onglet"page" est un malheureux choix de nom pour cette fonction, surtout dans une ère dominée par l'idée que la lecture de la documentation est une perte de temps.
Dans Vim, onglet pages sont une abstraction construite au-dessus des fenêtres, elles-mêmes, une abstraction construite au-dessus de tampons. Chaque niveau ajoute des fonctionnalités utiles mais restreint votre flux de travail.
Le "tampon de façon"
Avec un tampon à base de flux de travail, les fichiers que vous travaillez avec sont répartis le long d'une dimension unique. Vous pouvez faire défiler vos tampons, vous pouvez accéder à un tampon spécifique en tapant une partie de son nom (à l'achèvement) ou son numéro, vous pouvez alterner entre les tampons, vous pouvez cibler assez facilement. Il n'y a fondamentalement pas de frottement.
Huit tampons ouvert, seul visible:
De commutation par nombre:
De commutation par nom:
Tampons sont Vim dans le fichier proxy. Si vous pensez en termes de fichiers, vous pensez en termes de tampons.
La "fenêtre de façon"
Avec fenêtre sur la base de flux de travail, vos "fichiers" sont distribués le long de la même "virtuel" de dimension, comme ils le feraient si vous n'utilisez tampons et le long de deux autres "physique" dimensions. Mais le cartésien des espaces dans lesquels ces dimensions sont presque complètement séparés: le déplacement vers un autre tampon, signifie encore "passer à un autre fichier", mais de passer à un autre n'est pas le cas. Le tampon qui correspond au fichier désiré peut être affiché dans cette fenêtre, mais il pourrait également être affiché dans un autre, peut-être dans un autre onglet de la page, ou pas du tout.
Avec windows, la navigation entre les fichiers ouverts, soit devient trop complexe ou trop simpliste, même avec
'switchbuf'
et:sb
. Principalement parce que vous êtes obligé d'utiliser deux jeux de commandes pour ce qui est essentiellement la même chose: l'accès à un tampon.Windows ont leur utilité, comme décrit ci-dessous, mais ils n'ont pas ce qu'il faut pour remplacer les tampons de quelqu'un flux de travail.
Ici, je suis en train de travailler sur un Vim colorscheme. Les deux fenêtres sont vues différentes de la même tampon: celui du haut sert de référence, avec un tableau des codes de couleur utilisés dans le colorscheme, et celui du bas est l'endroit où je travaille:
Windows ne sont pas conçus comme fichier-procurations et ne peut pas être fait dans l': ils sont les "conteneurs" ou "fenêtres" conçu pour vous offrir une vue dans une mémoire tampon. Pas plus, pas moins.
L'onglet "chemin"
Avec un onglet à base de flux de travail, vous essayez d'imiter l'expérience de l'utilisateur que vous êtes habitué à partir de votre ancien éditeur tout en ignorant complètement la nature de Vim de l'onglet pages. Si nous oublions un instant que cette stratégie est généralement très improductif, il est également impossible, tout comme avec windows, à force de Vim pour adhérer à ce "fichier = un onglet" paradigme sans perdre beaucoup de flexibilité.
Travaille toujours avec les mêmes fichiers comme ci-dessus, le tabline prend un espace significatif pour pratiquement aucun avantage. Tous mes fichiers et tous mes onglets sont appelés
javascript*.vim
donc je ne peux pas faire3gt
et être sûr que je vais finir à la bonne place et il est impossible de parvenir à un onglet spécifique par nom. Ajoutez à cela le fait que son étiquette peut très bien être très peu serviable, mais parfaitement logique[Quickfix List]
... Puisqu'il n'existe aucun moyen pratique pour attacher un fichier/tampon à un onglet de page, vous êtes de gauche avec seulement un moyen pratique pour naviguer entre les pages à onglet/tampons/fichiers: cyclisme.Et ouais, mon tabline est assommé avec seulement 8 onglets, imaginez si j'avais 20!
Huit tampons ouvert dans les huit pages à onglet (mauvais)
Deux onglets pour les deux tâches spécifiques (à droite)
Onglet pages sont des "conteneurs" ou "fenêtres" conçu pour contenir une ou plusieurs fenêtres, eux aussi "conteneurs" conçu pour contenir des tampons.
En conclusion
"Vim experts" (supposons que je peux parler comme si j'étais un) ne préfère pas les tampons sur les onglets: ils suffit d'utiliser Vim comme il a été conçu et parfaitement à l'aise avec cette conception:
"Vim experts" ont 2, 30 ou 97 tampons chargé et nous sommes très heureux qu'ils n'ont pas à traiter avec la distribution spatiale;
quand ils en ont besoin pour comparer deux fichiers de travail ou dans une partie de la mémoire tampon active tout en gardant l'autre comme une référence, "Vim experts" de l'utilisation de windows parce que c'est la façon dont ils sont destinés à être utilisés;
quand ils en ont besoin pour fonctionner pendant un certain temps sur une autre partie du projet sans vous embêter avec leur point de vue actuel, "Vim experts" charger une image de marque nouvelle page de l'onglet.
gt
's? Avec un count:4gt
? ou utilisez-vous quelque chose comme CtrlP? Si vous êtes en utilisant principalement floue du finder, puis, vous êtes essentiellement faire un quasi tampon approche centrée sur l'. J'imagine que si vous l'appliquer à grande échelle à partir de 20 fichiers à quelque chose comme 50+ et de ne pas utiliser toute la commutation des plugins, vous arriverez à comprendre les différents besoins des onglets et des tampons de remplissage.:b
, tags/cscope, args/quickfix listes,gf
, marques, etc. J'utilise des plugins pour remplir tous les vides comme un flou finder pour rapidement d'ouverture profondément imbriqués les fichiers et les projectionniste pour gérer les intera-projet de navigation. Je trouve cette approche rend pour un simple flux de travail.*.c
,*.h
,scripts/*
ettest/**/*.lua
fichiers). Étant donné que mon terminal est seulement 239 colonnes “un fichier par l'onglet” approche est impossible à utiliser.Ctrl + P
et de correspondance floue à mesure que vous tapez le nom de fichier (alors qu'il n'a pas vraiment d'importance lorsque l'onglet est). Je pense que c'est similaire à la commutation entre les tampons dans Vim.help
, ne sont pas utilisés pour le titre de l'onglet. J'ai aussi un<Tab><Tab>
fichiers de configuration utilisateur carte qui ouvre la fenêtre de l'onglet de commutation.J'ai utilisé pour garder chaque tampon dans un onglet séparé, mais j'ai grandi fatigué de constamment gt et gT-ing autour de partout.
Je sentais aussi que les tampons étaient trop difficiles à gérer.
Voici quelques techniques qui a totalement changé mon précédent avis:
:b
. Vous obtenez étonnamment rapide à ce. Voir vim, la commutation entre les fichiers rapidement à l'aide de la vanille Vim (pas de plugins)Voici mon flux de travail typique:
:e
(généralement avec une regex comme:e src/**/F*Bar.js
) pour ouvrir un tampon:e
pour cela aussi bien. Si je veux basculer entre le tampon et sont actuellement ouvertes tampon je vais utiliser:sp
ou:vsp
pour l'ouvrir dans une fenêtre séparée.J'ai senti qu'après une semaine ou deux de forcer ces nouveaux modèles, il est devenu beaucoup plus facile de visualiser ce qui les tampons que j'avais ouvert, et comment obtenir de l'un à l'autre en seulement quelques automatique coups.
gT
était la commande pour changer d'onglet, j'avais été à la recherche pour le remplacement dectrl+tab
. Je vous remercie donc de fait véritablement aider un nouvel utilisateur plutôt que de simplement leur faire sentir stupide.nnoremap <leader>b :ls<CR>:b<space>
est tout à fait agréable pour basculer rapidement tampons, car il vous affiche une liste de ouvrir tampons. Aussi, des noms partiels sont acceptés (tant qu'il y a un seul match).ctrl N
ouctrl P
(P est ce que j'utilise habituellement), il vous donnera une liste de mots à terminer ce que vous avez tapé... Sa smart en fonction de votre tampon, ceux des ruptures, celles que vous étiez juste en train de regarder, et tous les autres d'ouvrir le fichier!L'inconvénient d'onglets est que vous ne pouvez voir le contenu d'un seul à la fois. Donc, si vous les utilisez comme dans un navigateur, vous êtes perdant sur l'affichage de plusieurs tampons de côté par côté, ou encore la visualisation des parties différentes du même fichier dans les splits. Par conséquent, de nombreux recommandons d'utiliser les onglets uniquement à séparer les différents espaces de travail (par exemple, ont un pour un projet en Java, un autre pour la liste des choses à faire, un tiers de hack sur un script sur le côté).
Les problèmes que vous décrivez faire croire que vous êtes à l'aide de Vim mal. Ont (pour la plupart) une seule instance dédiée. Ensuite, tampons qui sont cachés seront tout simplement "réapparaître" si vous ré-éditer (et vous pouvez maintenant utiliser le tampon de la liste de rappel), et il n'existe pas de fichier d'échange de messages. Ou, utilisez un Vim cas par projet /fichier /session d'édition, mais d'en faire une habitude pleinement
:quit
chaque instance lorsque vous avez terminé avec le fichier.Une autre astuce, lors de l'utilisation de la mémoire tampon nom de l'argument :mémoire tampon, vous n'avez pas à spécifier ensemble de noms. Cependant, si plus d'un tampon correspond à l'argument donné, les tampons ne sera pas changé.
Tout fragment de la mémoire tampon, le nom peut être utilisée pour la correspondance. Par exemple, si vous avez les tampons
request_manager.java
etqueue_manager.java
puis:buffer que
ou:b que
correspond à la fois, mais passer à queue_manager.java comme il correspond au début.Je utiliser les onglets, Ctrl-P et Vim séances dans mon flux de travail et ce, depuis maintenant plus d'un an:
J'ai ) et ( mappé "aller à l'onglet suivant" et "aller à l'onglet précédent", respectivement. tn ouvre un nouvel onglet. Je fais aussi de l'utilisation de tabm pour aider à garder les choses organisées.
J'utilise Vim pour des séances de groupes de fichiers relatifs à l'histoire courante/bug je suis en train de travailler sur le, fait généralement par catégorie. Ces séances d'être écrasés au cours du processus.
Je n'ai pas encore trouvé quelque chose de mieux que Ctrl-P, mais il prend un peu de traiter tous les dossiers pour trouver.
Ajoutez-les à votre
.vimrc
et commencer à aimer les tampons:De cette façon, vous pouvez faire défiler vers l'avant/vers l'arrière à travers eux dans mode normal via Tab/MajTab.
<C-I>
. Carte<C-Tab>
au lieu de cela, si vous le voulez vraiment.:n
et:N
se rapportent à la liste d'arguments, ne pas ouvrir les tampons. Vous voulez:bn
et:bp
(:bnext
et:bprev
). tpope est irréprochable fournit des mappages]b
et[b
pour cela (et d'autres bonnes choses) si vous le souhaitez.(
et)
, ou<left>
et<right>
flèches, serait sans doute moins utile clés pour remplacer de tab, si vous voulez vraiment un court de cartographie.Ctrl + Tab
que c'est ce que la plupart des autres GUI éditeurs et les navigateurs utilisent.Je charge "sélectionné" tampons comme des onglets rapidement (ONGLET/S-TAB) basculer entre elles.
Le cadre des espaces de travail s'inscrit ici car pour moi les tampons VS onglets est surtout la visibilité de la chose. Je peux pop importantes/les fichiers de travail dans des onglets et des fenêtres et masquer celles que je n'ai pas besoin actuellement, à utiliser en arrière-plan à la volée sans avoir à se souvenir de chemins ou de prendre le temps de chercher et de les charger à nouveau une fois que le besoin s'en fait sentir. Cela permet de gérer plusieurs tâches ou des projets dans un VIM session, je suppose que cela utilisé pour être important dans la faible capacité de mémoire des machines, mais aussi bon pour la concentration de toutes les tâches d'édition sous un cadre de l'application. J'ai également de la mémoire tampon de décalage de définir des raccourcis pour les touches Ctrl-à Droite/à Gauche donc je peut vite tourner au travers de différents tampons ainsi.
Ligne de fond, on ne peut le séparer de certaines fenêtres pour son utilise autant que l'écran de l'immobilier va, mais on peut tenir plusieurs paramètres windows en plusieurs onglets ainsi l'expansion de son espace de travail et améliorer le flux de travail permettant la pratique de la division des tâches complexes renouvelable plus d'un fichier.
Pour le fichier d'échange, vous pouvez dire VIM pour garder toutes les dans un dossier de votre désignation. Pour cette utilisation
:set directory
.Je voudrais suggérer une brillent mise en œuvre d'un bon nombre d'années: kien/tabman.vim. Il précise les éléments suivants:
Il a été un merveilleux redécouverte de cette magie plugin, ce qui aurait dû rester dans ma configuration à Vim pour un bon nombre d'années.
Alors que je continue de regarder pour quelque chose qui affiche également toutes les tampons cachés, TabMan est mon superman quand il vient à avoir une vue d'oeil d'oiseau de la manière dont les tampons ont été organisées à travers les différents onglets.
Les onglets et les Tampons sont deux différentes normes en Vi.
La lecture de ces trois définitions:
Lire cet article pour plus https://joshldavis.com/2014/04/05/vim-tab-madness-buffers-vs-tabs/