假设我有一段文本...

Lorem ipsum
Lorem ipsum dolor
Lorem ipsum dolor sit
Lorem ipsum dolor sit amet


...我想在每行的末尾插入一个.。最好的方法是实现这一目标?

#1 楼

我执行以下操作以将文本追加到多行:




<c-V>-进入可视块模式。
使用j / k选择行。

$-将光标移动到最后一个字符。

A-在最后一个字符之后进入插入模式。
插入所需的文本。

<Esc>-退出插入

与选择后编写:norm相比,按键输入的次数更少,但是使用此命令的真正原因是因为我本能地在Visual Block模式下工作这种类型的变化。

评论


与粘贴一列文本非常有用。

–Paul Rougieux
19年2月27日在16:07

#2 楼

在第一行上键入:
4:norm A.

4:为您创建一个范围,然后norm A.将点添加到每行中

针对较长段落的另一种解决方案可以是:
Vip<C-v>$A.<Esc>

第一步是选择带有Vip的段落,然后切换到可视块模式,然后将光标移动到带有$的每一行的末尾,然后将.添加到使用A.的每一行,并使用<Esc>进入正常模式,以查看将更改应用于每行。

评论


这是什么:命令?我没有通过:h:A找到它

– Peter Rincker
17年3月21日在22:19

我的错。实际上并没有测试答案。我正在更新。它应该使用正常的命令,就像@Kritixi Lhitos回答

–rbernabe
17 Mar 22 '17 at 0:38

小于4:规范A.的两个字符将为4:s / $ /。

– Philippos
17年3月22日在7:45

#3 楼

首先,您可以使用V直观地选择它们,然后使用移动键选择整个文本(或者,如果文本严格来说是一个段落,则可以[从第一行开始] V})。然后键入:。这应该在命令行中显示类似:'<,'>的内容。

:'<'>normal A.


这将在选定的行上执行normal A.normal A.执行A.作为普通模式的击键。该A在每个选定行的末尾附加一个.

#4 楼

如果要在所有行的末尾添加点:

:%norm A.


,或者可以使用搜索和替换:

:%s/$/./


%是整个文件,$是行尾

评论


由于@ vim.ryan要求输入一个文本块而不是整个文件,因此:1,4s /$/./会在第1行到第4行(包括第4行)中用点代替最后一个字符。

– rjt
18-10-14在13:42



#5 楼

为了使它更通用一点,您可以在一行中记录一个宏,然后在可视范围内在每一行上播放它。

将宏记录到一个寄存器(q寄存器)中在此示例中):

qqA.<Esc>q


然后您可以直观地选择要操作的行:

Vip


,然后在每一行上播放宏(范围将自动填充):

:'<,'>norm @q


#6 楼

我认为更容易下载免费的Visual Studio代码
https://code.visualstudio.com/
并在搜索/替换功能中使用其构建功能

评论


欢迎来到Vi和Vim!该站点实际上是关于Vi&Vim的,因此答案应集中在使用这些编辑器解决问题上。 VS Code可以是主题(帮助中心),但它必须专注于vi / vim。

– D. Ben Knoble♦
20年8月18日在19:32