Нет, .
команда в vim
не имеет истории, и при этом нет никакого вида повторной истории для нормального режима, управляет, чтобы я знал. Для наименьшего количества количества нажатий клавиш я рекомендовал бы 4oHello<Esc>3jA, World<Esc>
. Если Вы уже сделали oHello<Esc>A, World<Esc>
, Вы могли следовать за этим с uyy<Ctrl-r>3p
.
Существует несколько опций:
#!/usr/bin/gsed -f
(принятие его находится в /usr/bin
) как хижина везде, и удостоверяются что Ваша символьная ссылка сред Linux это правильно;sed
кому: /usr/bin/gsed
из каталога это ранее, чем /usr/bin
в пользователе $PATH
(возможно опасный);#!/bin/sh
script=/foo
type gsed >/dev/null 2>&1 && exec gsed -f "$script"
exec sed -f "$script"
В конечном счете там или должны быть изменения в по крайней мере одной из сред или изменения в самом сценарии.
У Вас мог быть Ваш sed
сценарий запускается с этого вместо этого:
\:;s=sed;type gsed >/dev/null 2>&1 && s=gsed; exec "$s" -f "$0" "$@";$:s/^//
Это не в sed
(хотя немного ухудшил бы Вашу производительность сценария), и при интерпретации оболочкой выполнится с gsed
если найдено или sed
если не (оба искали в $PATH
).
\:;s=sed;command -v gsed >/dev/null && s=gsed; exec "$s" -f "$0" "$@";$:s/^//
затем будьте более портативными?
– equaeghe
15.05.2013, 12:01
\:;`command -v gsed || command -v sed` -f "$0" "$@";$:s/^//
действительно ли портативное устройство быть альтернативным?
– equaeghe
15.05.2013, 12:11
command -v
является значительно более портативным, чем type
. Оба являются дополнительными в POSIX, требуемом Unix. Некоторые старые оболочки неPOSIX как варианты Оболочки Bourne, иметь type
но нет command -v
(хотя некоторые более старые не устанавливают статус выхода на ненулевой на command-not-found). posh
не имеет ни одного. Я когда-то сообщил LSB, что наличие ни одного было проблемой, они подтвердили это, я, хотя они делали с этим что-то, но теперь быстро рассмотрение последней спецификации, кажется, нет никого type
или command
команда (!?). исправление
– Stéphane Chazelas
15.05.2013, 12:40
type
и command
(хотя я не вижу, что это говорит ли -v
должен поддерживаться). Таким образом, это похоже type
требуется LSB, но (возможно) нет command -v
. Ответ
– Stéphane Chazelas
15.05.2013, 12:46
(Предоставление ответа на мой собственный вопрос, или скорее альтернативный подход, который будет работать в этой ситуации.)
A sed
сценарий ascript.sed
, даже когда они запускают с sha-удара, может также быть применен из командной строки на конечном файле target.txt
как sed -f ascript.sed target.txt
. Это означает это, когда на Mac OS X, можно назвать сценарий как gsed -f ascript.sed target.txt
.