Вопрос

Есть ": a " команда, но она многострочная, и argdo снова запрашивает текст для каждого файла.

В документах упоминается глобальная команда (g / pat / command), которая будет использовать альтернативную версию ": a " завершается символом новой строки вместо ". " в строке (вы можете включить новые строки, экранируя их с помощью " \ "). Но я не мог заставить это работать.

Единственный способ, которым я видел, - это сначала скопировать добавляемый текст в именованный регистр, а затем использовать:

:argdo put x                 " where x is the register

Я надеюсь на что-то вроде

:argdo append myTextHere
Это было полезно?

Решение

Мне неясно, где вы пытаетесь вставить текст в буфер. Если вы хотите его после текущей строки:

:argdo exe 'normal osometext'

Вставка текста с разрывами строк в нем:

:argdo exe "normal osometext\<CR>anewline"

Другие советы

Чтобы добавить текст после строки № 10:

:argdo call append(10, "hello world")

Чтобы добавить текст в строку 10:

:argdo call setline(10, getline(10)."textappended")

При ударе текста в vim он помещается в буфер по умолчанию, то есть ". Вы можете вставить этот буфер в режиме вставки, например, набрав <C-R>". Так что все, что вам нужно, это argdo put "

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top