Подтвердить что ты не робот

Как передать текущую строку функции Vimscript?

Я пытаюсь создать сопоставление Vim, которое будет работать в текущей строке, беря строку, подобную этой:

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

И цитируя все элементы списка, чтобы это получилось:

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

Я пробовал с vim regexes, но понял, что было бы проще написать функцию, которая берет текущую строку в качестве аргумента и возвращает преобразованную строку. У меня нет проблем с выполнением преобразования в vimscript. Но как передать текущую строку функции и как заменить строку на преобразованную строку?

4b9b3361

Ответ 1

Чтобы получить текущую строку, вы можете использовать

let line=getline('.')

(обратите внимание: вы также можете сделать getline(10, 20), чтобы получить список из 11 строк).

Чтобы установить текущую строку, вы можете использовать

call setline('.', line)

. Вы также можете заменить несколько строк, начиная с текущего, если вы передадите список этой функции.

Ответ 2

Вы можете вытащить его в регистр и затем получить к нему доступ. byy дергает линию, на которой находится ваш курсор. Вы можете получить к нему доступ, используя @b

Отъезд http://vim.wikia.com/wiki/Word_under_cursor_for_command