Вставка функций из системного буфера обмена в gVIM - PullRequest
1 голос
/ 24 марта 2009

Ниже приведено содержимое системного буфера обмена Windows

  • : функция CurrentLineLength
  • : len = strlen (getline ("."))
  • : возвращаемая длина
  • : EndFunction

Я ударил двоеточие и затем управляю Затем я нажимаю клавишу Shift 8, чтобы вставить содержимое системного буфера обмена.

Я нажимаю клавишу возврата, и Вим возвращается с E488: Конечные символы

Я вижу некоторые символы ^ M там, и удаление их не помогает. Я знаю, что могу вставить функции в файл .vim и читать их таким образом, чтобы это не мешало работе, но когда я работаю с некоторыми примерами сценария vim, это было бы неплохо иметь.

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

Спасибо!

Ответы [ 2 ]

3 голосов
/ 24 марта 2009

Я не уверен насчет вставки нескольких строк в командный режим, но вы можете добиться того же, просто поместив функцию в регистр и выполнив регистр (аналогично макросу).

Кроме того, Vim, похоже, не нравится эта функция, поскольку вы ее вставили, я внес несколько изменений ниже. Если вы скопируете приведенное ниже в системный буфер обмена, а затем нажмете @* из обычного режима, это сработает.

:function CurrentLineLength()
: let len = strlen(getline("."))
: return len
:endfunction
1 голос
/ 24 марта 2009

У Vim не должно быть проблем с возвратом каретки в командном режиме (это символы ^ M). Я предполагаю, что в коде, который вы вставляете, есть некоторые другие символы - это, возможно, проблема, если вы вставляете с веб-страницы. Попробуйте поместить содержимое буфера обмена в файл и посмотреть, действительно ли это то, что вы ожидаете (включая все пробельные символы).

...