в vim, как добавить / вставить текст с argdo? - PullRequest
5 голосов
/ 23 июня 2009

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

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

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

:argdo put x                 " where x is the register

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

:argdo append myTextHere

Ответы [ 3 ]

4 голосов
/ 23 июня 2009

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

:argdo exe 'normal osometext'

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

:argdo exe "normal osometext\<CR>anewline"
2 голосов
/ 24 июня 2009

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

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

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

:argdo call setline(10, getline(10)."textappended")
1 голос
/ 23 июня 2009

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

...