Как написать регистр для файла в редакторе vim?

Вопрос или проблема

Как написать регистр для файла в редакторе vim?

Я скопировал блок текста в регистр “a”. Теперь я хочу записать этот регистр в файл в редакторе Vim.

Самый простой способ — просто открыть целевой файл и вставить его в нужное место.

Если по какой-то причине вы не хотите открывать файл, вы можете использовать функцию writefile():

writefile({object}, {fname} [, {flags}])            writefile()
    Когда {object} — это список, он записывается в файл {fname}. Каждый элемент
    списка разделен символом новой строки (NL). Каждый элемент списка должен быть строкой
    или числом.
    Все символы новой строки заменяются на символ NULL.
    Вставка символов возврата каретки (CR) должна выполняться до передачи {list}
    в writefile().

    Когда {object} — это двоичный объект (Blob), байты записываются в файл {fname}
    без изменений, даже если двоичный режим не указан.

Обратите внимание, что эта функция принимает только List и Blob, но содержимое регистра — это просто String. На данный момент, похоже, что нет хорошего способа преобразовать String в Blob, так что вам, возможно, придется создать список, разбив его по символам новой строки, используя split():

:call writefile(split(@a, "\n"), "some-file")

Где:

  • @a использует регистр a
  • some-file — это файл, в который вы хотите записать
  1. Создайте новый буфер с помощью :new

  2. Вставьте a над текущей строкой: "aP

  3. Запишите буфер в файл: :w file.txt

  4. Закройте буфер: :bd

Ответ или решение

Чтобы записать содержимое регистра в файл в редакторе Vim, вы можете воспользоваться несколькими методами. Вот основные из них:

Метод 1: Открытие файла и вставка

  1. Откройте целевой файл, куда хотите записать текст. Это можно сделать с помощью команды:

    :e имя_файла.txt
  2. Вставьте содержимое регистра. Если вы скопировали текст в регистр a, вы можете вставить его, используя следующую команду:

    "aP

    Здесь "a указывает на регистр, а P вставляет текст перед курсором. Вы также можете использовать p для вставки после курсора.

  3. Сохраните файл с помощью команды:
    :w

Метод 2: Использование функции writefile()

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

  1. Используйте команду:
    :call writefile(split(@a, "\n"), "some-file.txt")

    Здесь @a обозначает содержимое регистра a, а "some-file.txt" — имя файла, в который вы хотите записать текст. Функция split() делит строку на список по символу новой строки.

Метод 3: Создание нового буфера

  1. Создайте новый буфер:

    :new
  2. Вставьте содержимое регистра:

    "aP
  3. Запишите буфер в файл:

    :w имя_файла.txt
  4. Закройте буфер, чтобы вернуться к предыдущему:
    :bd

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...