Допустим, у меня есть открытый текстовый файл в Vim, который выглядит так
this is an inline insertion
, и я хочу добавить слово «test» между «inline» и «вставкой».
Я мог бы просто написать это, но это метафорический пример, так что я собираюсь :read !printf "test "
с курсором в столбце 18. Вот что я получаю:
this is an inline insertion
test
Вот что я хочуполучить:
this is an inline test insertion
Есть ли способ создать функцию vim или есть существующая команда, которую я могу использовать, чтобы получить это поведение?Я знаю, что могу выполнить чтение, затем выполнить D
k
, затем поместить курсор, затем P
, но я надеялся найти способ сделать это за один шаг, поместив курсор раньше времени.
РЕДАКТИРОВАТЬ
Благодаря ответу @ melpomene, теперь у меня есть эта функция в моем файле ~/.vimrc
:
fu! InlineRead(command)
let colnum = col('.')
let line = getline('.')
call setline('.', strpart(line, 0, colnum) . system(a:command) . strpart(line, colnum))
endfu