vim 文本复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim 文本复制相关的知识,希望对你有一定的参考价值。

参考技术A vim复制多行文本

1、在命令行模式中,按下末号(: start, end copy target) 输入需要复制行的起始位置到指定行 

tips:  : 15, 20 copy 30 把15 到20行的内容复制到30行

2、 在命令行模式中,按下V进入可视模式,将光标移动到你需要复制结束的位置,按y复制, 将光标移动到你需要复制的地方,按下p

3、在命令行模式下,将光标移动到需复制的首行出,按下”nyy“复制n行, 把光标移动要需要复制的位置,按下p

为啥当我将文本从浏览器复制并粘贴到文件时,Vim 会再次缩进每一行?

【中文标题】为啥当我将文本从浏览器复制并粘贴到文件时,Vim 会再次缩进每一行?【英文标题】:Why does Vim indent every line once more when I copy and paste text from my browser to a file?为什么当我将文本从浏览器复制并粘贴到文件时,Vim 会再次缩进每一行? 【发布时间】:2019-11-04 19:46:46 【问题描述】:

当我将一些文本从浏览器窗口复制到我正在使用 Vim 编辑的文件中时,为什么会出现这种情况?如何让线路正确排列?

from django.db import models
from django.contrib.gis.db import models

# Create your models here.
class WorldBorder(models.Model):
        # Regular Django fields corresponding to the attributes in the
            # world borders shapefile.
                name = models.CharField(max_length=50)
                    area = models.IntegerField()
                        pop2005 = models.IntegerField('Population 2005')
                            fips = models.CharField('FIPS Code', max_length=2)
                                iso2 = models.CharField('2 Digit ISO', max_length=2)
                                    iso3 = models.CharField('3 Digit ISO', max_length=3)
                                        un = models.IntegerField('United Nations Code')
                                            region = models.IntegerField('Region Code')
                                                subregion = models.IntegerField('Sub-Region Code')
                                                    lon = models.FloatField()
                                                        lat = models.FloatField()
                                                             # GeoDjango-specific: a geometry field (MultiPolygonField)
                                                                mpoly = models.MultiPolygonField()
                                                                     # Returns the string representation of the model.
                                                                       def __str__(self):              # __unicode__ on Python 2
                                                                                    return self.name

【问题讨论】:

Turning off auto indent when pasting text into vim的可能重复 【参考方案1】:

您可能打开了autoindentcindent。当您选择其中一个选项时,Vim 不知道粘贴到终端的换行符和您自己输入的换行符之间的区别。因此,当您粘贴换行符时,Vim 会缩进该行,然后您还会粘贴空格以提供额外的缩进,以此类推,直到您在屏幕上超出您想要的范围。

解决方法是使用:set paste设置粘贴模式再粘贴,然后:set nopaste关闭粘贴模式。在粘贴模式下,Vim 不会自动缩进行,因此将大量行粘贴到终端不会导致缩进不断增加。

如果您的特定平台上有支持剪贴板的 Vim,您也可以使用 "*"+ 寄存器进行粘贴(例如,使用 "*p 进行粘贴),这也不会有这个问题。

【讨论】:

实现相同结果的另一种方法::set noai 禁用autoindent 模式,:set ai 再次启用它

以上是关于vim 文本复制的主要内容,如果未能解决你的问题,请参考以下文章

vim复制和粘贴内容

VIM快速复制多行

转vim复制与粘贴

一文搞懂vim复制粘贴

vim复制,粘贴,剪切文本

vi & vim复制,粘贴,剪切文本