gpt4 book ai didi

Vim:在多行中插入相同的字符

转载 作者:行者123 更新时间:2023-12-03 04:01:49 31 4
gpt4 key购买 nike

有时我想跨多行编辑某个可视文本 block 。

例如,我会采用如下所示的文本:

name
comment
phone
email

让它看起来像这样

vendor_name
vendor_comment
vendor_phone
vendor_email

目前我要做的方式是......

  1. V 键,然后按 j 四次,选择 block 的所有 4 行线。
  2. 缩进>
  3. 使用 h 返回一个字母。
  4. 使用 Ctrlv 进入 block 视觉模式。
  5. j 四次选择向下四行。此时,您已选择了 4x1 视觉空白 block (四行一列)。
  6. C。请注意,这几乎向左缩进了一列。
  7. 键入“vendor_”(不带引号)。请注意我们必须放回的额外空间。
  8. Esc。这是我极少数使用 Esc 退出插入模式的次数之一。 Ctrlc 只会编辑第一行。
  9. 重复步骤 1。
  10. 使用<以另一种方式缩进。

如果单词之前至少有一列空格,则不需要缩进。如果我不必使用 c 清除视觉 block ,我就不需要空白。

但是如果我必须清除,那么有没有一种方法可以完成我上面执行的操作,而无需创建带有缩进的所需空白?

另外,为什么一次编辑多行只能通过使用 EscCtrlc 退出插入模式来实现?

<小时/>

这是一个更复杂的示例:

name    = models.CharField( max_length = 135 )
comment = models.TextField( blank = True )
phone = models.CharField( max_length = 135, blank = True )
email = models.EmailField( blank = True )

name    = models.whatever.CharField( max_length = 135 )
comment = models.whatever.TextField( blank = True )
phone = models.whatever.CharField( max_length = 135, blank = True )
email = models.whatever.EmailField( blank = True )

在此示例中,我将在 . 上执行垂直视觉 block ,然后在插入模式下将其重新插入,即键入 .whatever.。希望现在您可以看到此方法的缺点。我仅限于选择在垂直位置上全部相同的一列文本。

最佳答案

  1. 将光标移至name中的n
  2. 进入视觉 block 模式 (Ctrlv)。
  3. j三次(或3j)向下跳3行; G(大写 g)跳转到最后一行
  4. I(大写 i)。
  5. 输入vendor_。注意:它只会更新第一行中的屏幕 - 直到按下 Esc (6.),此时所有行都将被更新已更新。
  6. Esc

mini-screencast demonstrating the method

必须使用大写的 I 而不是小写的 i,因为小写的 i 被解释为 text object 的开头。 ,它本身就相当有用,例如用于在标签 block ( it )内进行选择:

mini-screencast showing the usefulness of the 'it' text object

关于Vim:在多行中插入相同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9549729/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com