有时我想跨多行编辑特定的可视文本块。
例如,我将输入如下文本:
name
comment
phone
email
并使其看起来像这样
vendor_name
vendor_comment
vendor_phone
vendor_email
目前我现在要做的方式是...
- 按下V然后选择j四次,选择一个块的所有4行。
- 缩进>。
- 回上一个字母h。
- 使用进入阻止视觉模式Ctrlv。
- 按下四下选择四行j。此时,您已经选择了一个4x1的可视空白块(四行一列)。
- 按C。请注意,这几乎缩进了一列。
- 输入
" vendor_"
不含引号的a。请注意,我们不得不退还多余的空间。 - 按Esc。这是我Esc用来退出插入模式的极少数情况之一。Ctrlc只会编辑第一行。
- 重复步骤1。
- 缩进另一种方式<。
我不需要缩进单词之前是否至少有一列空格。如果不必使用清除可视块,则不需要空格c。
但是,如果我必须清除,那么有没有一种方法可以做上面的事情而又不用缩进来创建所需的空格?
另外,为什么一次编辑多行只能通过退出带有Escover 的插入模式来工作Ctrlc?
这是一个更复杂的示例:
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 )
在此示例中,我将在上执行垂直可视块.
,然后在插入模式(即type)中重新将其重新插入.whatever.
。希望现在您可以看到此方法的缺点。我仅限于选择一列在垂直位置都相同的文本。
:s/models\./\0whatever./