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

Sea*_*sey 13 vim

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

[boiled cabbage, mad donkey, elephant, very dark fudge]
Run Code Online (Sandbox Code Playgroud)

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

["boiled cabbage", "mad donkey", "elephant", "very dark fudge"]
Run Code Online (Sandbox Code Playgroud)

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

ZyX*_*ZyX 34

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

let line=getline('.')
Run Code Online (Sandbox Code Playgroud)

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

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

call setline('.', line)
Run Code Online (Sandbox Code Playgroud)

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


MoR*_*oRe 5

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

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

  • 不应该是“byy而不是byy? (2认同)