в vim, как добавить / вставить текст с argdo?
Вопрос
Есть ": 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 "