В чем проблема с 'execute "w!" + A: name' в скрипте / функции vim? - PullRequest
0 голосов
/ 30 декабря 2010

У меня есть следующая Vim-функция:

fu! Create_file_and_write_to_it(name, text)

  new 
  execute "normal i" . a:text
  execute "w! " + a:name

endfu

Я называю эту функцию так:

:call Create_file_and_write_to_it('c:\temp\foo.txt', "here is some text")

Хотя он создает новый буфер и записывает в буфер нужный текст (т.е.: , это некоторый текст ), он не записывает буфер в файл с именем c: \ temp \ foo.txt или любое другое имя, которое я мог видеть. Я также не получаю сообщение об ошибке.

Есть ли причина для такого поведения, или я делаю что-то не так, и как мне получить желаемую функциональность?

Ответы [ 3 ]

2 голосов
/ 30 декабря 2010

Не берите в голову ... Я нашел это.

Я должен был написать

execute "w! " . a:name

вместо

execute "w! " + a:name
1 голос
/ 30 декабря 2010

Если a: текст не имеет специальных последовательностей / отображений для запуска, вы также могли бы использовать put=a:text

1 голос
/ 30 декабря 2010

Вместо

execute "w! " + a:name

сделайте это:

exec "save! " . a:name

Сработало для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...