Автоматизируйте скрипт Vim для записи текста в файл - PullRequest
0 голосов
/ 28 ноября 2018

Я пишу скрипт, который запускается из командной строки, и я хочу иметь возможность автоматически добавлять статический текст в файл с помощью Vim.

Это упрощенная версия того, что у меня есть:

insert_text() {
    vim -s ./text.txt new.txt;
}

Затем он запустится в командной строке, введя insert_text.Внутри text.txt я пробовал такие вещи, как:

iSome Text:wq

Это переводит меня в режим вставки и пишет текст, но я не знаю, как выйти из режима вставки таким образом.: Wq никогда не работает и вместо этого записывается в new.txt.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Если вы просто хотите добавить текст в файл, вам не нужны никакие специальные инструменты.Например, вы можете просто использовать:

echo "Some text" >> myfile.txt

или если у вас большой текстовый блок

>>myfile.txt cat <<EOF
some
long
block of text
EOF

Если вы хотите его в начале файла, вы можете использовать временный файлсделать это.Например:

echo "Some Text" | cat - myfile.txt > /tmp/file && mv /tmp/file myfile.txt
0 голосов
/ 28 ноября 2018

Это добавит someText в начале строки 1:

vim -c "1 s/^/someText" -c "wq" test.txt

Когда вы запускаете команду из терминала и хотите, чтобы Vim после нее выходил вместо :wq do +wq.Например:

vim +'SomeCommand' +qa
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...