19

我正在尝试创建一个将在当前行上运行的 Vim 映射,采用如下字符串:

[boiled cabbage, mad donkey, elephant, very dark fudge]

并引用所有列表元素以结束:

["boiled cabbage", "mad donkey", "elephant", "very dark fudge"]

我尝试使用 vim 正则表达式,但认为编写一个将当前行作为参数并返回转换后的行的函数会更容易。我在 vimscript 中执行转换没有问题。但是如何将当前行传递给函数,以及如何用转换后的行替换该行?

4

2 回答 2

44

要获取当前行,您可以使用

let line=getline('.')

(注意:您也可以getline(10, 20)获取 11 行的列表)。

要设置当前行,您可以使用

call setline('.', line)

. 如果您将列表传递给此函数,您还可以替换以 current 开头的许多行。

于 2012-07-16T04:11:22.173 回答
5

您可以将其拉入寄存器,然后从那里访问它。byy拉动光标所在的行。然后您可以使用它来访问它@b

查看http://vim.wikia.com/wiki/Word_under_cursor_for_command

于 2012-07-16T05:10:05.027 回答