如何将当前行传递给Vimscript函数?

时间:2012-07-16 04:05:36

标签: vim

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

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

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

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

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

2 个答案:

答案 0 :(得分:32)

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

let line=getline('.')

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

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

call setline('.', line)

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

答案 1 :(得分:5)

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

访问它

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