Comment maintenir les onglets lors du collage dans Vim
- Je utiliser la touche de tabulation pour indenter mon code python dans Vim, mais à chaque fois que je l'ai copier et coller un bloc de Vim remplace chaque onglet avec 4 espaces, ce qui pose un IndentationError
J'ai essayé de réglage :set paste
comme le suggère les questions connexes, mais il ne fait aucune différence
D'autres sites suggèrent coller 'tabless code et à l'aide de l'éditeur visuel pour re-tiret, mais c'est d'avoir des ennuis quand il s'agit de gros blocs
Sont là tous les paramètres que je peux appliquer à vim de maintenir les onglets sur le copier/coller?
Merci pour toute aide 🙂
edit:
Je suis de copier et de coller dans vim en utilisant le standard de gnome-terminal techniques (ctrl+maj+c /souris, etc.)
mon .vimrc est:
syntax on
set ts=4
if has("terminfo")
let &t_Co=8
let &t_Sf="\e[3%p1%dm"
let &t_Sb="\e[4%p1%dm"
else
let &t_Co=8
let &t_Sf="\e[3%dm"
let &t_Sb="\e[4%dm"
endif
J'ai regardé que les ts -> onglet Jeux s'arrête à la n de la saisie de texte, mais vous ne savez pas quelle est la valeur qui permettrait de maintenir un caractère de tabulation
Quels sont vos paramètres de retrait?
tabstop
, expandtab
, shiftwidth
, shiftround
, autoindent
, copyindent
.Je suis de copier et de coller dans vim, mais en utilisant le standard de gnome-terminal techniques (ctrl+maj+c ou le bouton droit de la souris cliquez -> copie)
voir modifier les paramètres actuels 🙂
En fait, à l'aide de 4 espaces pour l'indentation est la méthode recommandée.
OriginalL'auteur Awalias | 2012-09-25
Vous devez vous connecter pour publier un commentaire.
Voir
:h tabstop
pour toutes les options et la façon dont ils interagissent les uns avec les autres.Ce sont de bons réglages, si vous préférez onglets:
Avec ces paramètres, vous frappez
<Tab>
et vous obtenez<Tab>
.Ce sont de bons réglages, si vous préférez les espaces:
Avec ces paramètres, vous frappez
<Tab>
et vous obtenez<Space><Space><Space><Space>
.Quoi que vous choisissiez, vous ne devez pas utiliser votre terminal raccourcis clavier pour copier/coller. À l'intérieur de Vim, vous devriez "yank" avec
y
et "mettre" avecp
ouP
; éventuellement, en utilisant un registre spécifique, comme"ay
/"ap
à tirer/vers/à partir du contenu du@a
ou"+y
/"+p
de copier/coller vers/à partir du presse-papiers du système (si votre Vim est construit avec le support du presse-papier).Comme une note de côté, vous devez utiliser la forme longue les noms de vos paramètres tels qu'ils sont plus lisibles que leur courte homologue. Votre future auto vous remercie.
OriginalL'auteur romainl
Ce romainl dit. Aussi, il ya quelques autres paramètres que je trouve utile. Voici un extrait de mon .vimrc:
Dans vim, entrez
:h <setting>
pour chacun de ces paramètres pour en savoir plus sur ce qu'ils font,OriginalL'auteur pillmuncher
Tout d'abord, assurez-vous que vos paramètres de retrait représenter votre style préféré, comme romainl a indiqué dans sa réponse.
Si vous devez coller le code de l'extérieur de Vim (par exemple, une sélection à partir d'un autre terminal), le
:retab!
commande peut fixer les espaces en Tabulations; pour le texte collé l'intégralité de la commande avec la bonne gamme seraitSinon, vous pouvez essayer de coller avec le
"*]p
de commande, qui s'adapte automatiquement le retrait de la position du curseur (voir:help ]p
).OriginalL'auteur Ingo Karkat
J'étais moyen-cliquez sur coller dans un terminal vim instance. J'ai cela dans mon vimrc:
J'ai couru
et vim préservé le les onglets qui étaient dans le texte source. Sans écraser mon
expandtab
paramètre, vim a été auto-en expansion les onglets dans le texte source.OriginalL'auteur djeikyb