Что-то, что должно казаться простым

Как упоминалось в названии, это должно быть что-то простое, но для жизни меня я не могу заставить его работать правильно.

Я пишу небольшой исполняемый скрипт, который позаботится о введя столь необходимое место интерпретатора для первой строки скрипта и открывая новый скрипт для редактирования. Хорошо, круто ... сделано: printf "#!%s" $(which bash) > $1; vim $1. Достаточно просто.

Если проблема, воспринимаемая только как проблема, потому что мне любопытно, как это сделать и чего я не достигаю, есть сценарий, который автоматически запускает меня в строке 2 в режиме вставки. Таким образом, я нахожусь на пустой строке, готов к работе ... не теряя 0,5 секунды или около того, чтобы нажать «o» (я использую vim в качестве текстового редактора для справки).

Итак, я угадайте, мой вопрос: как мне получить мой автоматический скрипт для имитации нажатия «o», когда вновь созданный скрипт открывается с выходом «#! $(which bash)» в первой строке?

Все пробовали:

Использование символа новой строки, экранированного с помощью printf: printf "#!%s\n" $(which bash) > $1 Использование эха с символом символа новой строки: echo -e "#!$(which bash)\n" > $1
1
задан 24 July 2013 в 20:10

1 ответ

То, что вы пробовали, не поможет, так как это не зависит от содержимого файла; скорее, это зависит от текстового редактора.

В Vim должно работать следующее:

vim "$file" +'$normal o' +'startinsert'

Каждый аргумент + интерпретируется в «командном режиме»; обычно это номер строки, но любая команда действительно работает. :$normal o добавляет пустую строку после последней строки (это уродливо, но я не мог думать ни о каком другом); :startinsert переходит в режим вставки.

2
ответ дан 24 May 2018 в 19:43
  • 1
    Совершенно, я совершенно забыл о том, что у vim есть собственный командный процессор, и я подсознательно знал, что это то, что я искал. Точки не соединялись. Спасибо, работал как шарм! – Kevin Wyman 24 July 2013 в 20:22
  • 2
    Как насчет vim $'+i\n#!/usr/bin/env bash\n\n.\n' +startinsert "$1"? – geirha 25 July 2013 в 02:02

Другие вопросы по тегам:

Похожие вопросы: