如何使用命令行中的vim编辑器在文件中编写字符串

时间:2017-09-13 09:52:05

标签: vim append

我想从命令行使用vi编辑器创建一个新文件,并多次添加一个字符串,比如100.使用vi -S command.script file.txt应该可以创建一个新文件file.txt并创建它command.script文件中给出的命令可以写入此文件。我的command.script包含

:%100a hello world 
:wq

但它不起作用,我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您在Vim会话中以交互方式执行:%100a hello world,则会获得E488: Trailing characters。查找:help :a

:{range}a[ppend][!]   Insert several lines of text below the specified
                      line.  If the {range} is missing, the text will be
                      inserted after the current line. [...]
These two commands will keep on asking for lines, until you type a line
containing only a ".".

告诉您文本必须放在后面的行中(并且只有一个.字符的行结束)。

或者您的意思是使用普通模式a命令? (那个需要[count]乘以;你的%100范围也是错误的!)

你也可以使用低级函数append(),用repeat()重复字符串。

摘要

$append
hello world
[...]
hello world
.

execute "$normal! 100ahello world\<CR>"
" Easier with o instead of a:
$normal! 100ohello world

call append('$', repeat(['hello world'], 100))

非Vim替代品

但老实说,如果这是你的真实用例(而不仅仅是一个简化的玩具示例),你根本就不需要Vim。以下是 Bash shell的一个示例:

$ for i in $(seq 100); do echo "hello world" >> file.txt; done