Vim get / set имя буфера без ввода буфера

J. Doe спросил: 31 июля 2018 в 09:38 в: vim

Вы можете изменить имя буфера командой "файл", но сначала нужно ввести буфер. Как я могу использовать getbufvar / setbufvar или аналогичную функцию для получения / изменения имени буфера только предоставляя номер буфера, не вводя его? Есть ли вообще способ?


1 ответ

sidyll ответил: 31 июля 2018 в 06:19

Я не думаю, что есть собственный способ изменить имя буфера, но восстановление текущего буфера не является сложной задачей:

function! Rename(buffer, name)
  let current = bufnr("%")
  execute a:buffer . 'bufdo file ' . fnameescape(a:name)
  execute 'buffer ' . current
endfunction
Maëlan ответил: 31 июля 2018 в 05:51
Вы, вероятно, должны как-то избежать a:name.
sidyll ответил: 31 июля 2018 в 06:19
@ Маэлан хорошо это заметил. Благодарю.