在Vim中组合多个文本文件

svh*_*160 3 vim

我有一个相当简单的问题,我无法找到答案,似乎无法为我工作.

我需要在Vim中追加多个文本文件(都在同一目录中).我需要在Vim中执行此操作的原因是我正在运行Windows并且无法访问*nix实用程序.

所有文件有一个模式在他们的名字(ex1.sql,ex2.sql,ex3.sql).

我需要做的就是从它们中删除文本(按照它们在目录中的顺序),并将它们附加到一个新的空白文件中.

我已经制作了参数列表

:args ex*.sql
Run Code Online (Sandbox Code Playgroud)

并希望对所有args执行命令进入a寄存器.

:argdo gg"AyG
Run Code Online (Sandbox Code Playgroud)

它表示从每个文件复制了这些行.

但是,当我将寄存器粘贴到新文件中时,没有打印任何内容.

:"ap
Run Code Online (Sandbox Code Playgroud)

所以我检查一下寄存器:

:reg
Run Code Online (Sandbox Code Playgroud)

a寄存器被填充有乱码(^]Jyecw?).

有没有更好的方法来解决这个问题?为什么说它是复制到寄存器中,但实际上是在放入一堆奇怪的字符?

Daa*_*ker 5

argdoex-mode在参数列表的每个文件中执行命令.你想要做的gg"AyG是执行一个normal命令.尝试:

:argdo normal gg"AyG
Run Code Online (Sandbox Code Playgroud)

  • Vimgolf时间:`:argdo%y A` (3认同)