Цвета линии питания энергии должны быть расположены в Вашем .vim
каталог. При использовании сменного менеджера, это может быть .vim/bundle/, сопровождаемый vim-powerline/autoload/Powerline/Colorschemes
дерево. Файл, который Вы ищете, должен быть default.vim
.
Настройка цветов, которую Вы ищете:
. \ Pl#Hi#Segments(['mode_indicator'], {¬
. . \ 'n': ['base03', 'green', ['bold']],¬
. . \ 'i': ['darkestcyan', 'white', ['bold']],¬
. . \ 'v': ['white', 'orange', ['bold']],¬
. . \ 'r': ['white', 'violet', ['bold']],¬
. . \ 's': ['white', 'gray5', ['bold']],¬
. . \ }),¬
n
для нормального, i
для вставки, v
для визуального, r
для замены и s
для выбора (?). Дополнительные цвета могут быть определены в call Pl#Hi#Allocate({¬
раздел.
startx -- :5
Какие из этих инструментов являются наиболее переносимыми (sed, awk, perl и sh?
sed[1123630], [1123631]sh[1123632] и [1123633]awk[1123634]), которые указаны POSIX, [1123635]perl[1123636] не настолько переносимы, насколько не поддерживаются стандартом.
Может ли кто-нибудь привести эти инструменты в порядок их переносимости?
Если вы придерживаетесь совместимого кода, то порядок переносимости для трех команд POSIX не должен быть.
Какие из них наверняка найдутся даже на самых минимальных *nix-системах?Три POSIX вместе со многими другими утилитами обязательны для того, чтобы ОС стала POSIX. На самом деле, большинство (если не все) свободных и открытых Unix-систем, подобных операционным системам, вероятно, не пройдут процесс согласования, если попытаются, и никогда не попробуют.
Есть ли какая-нибудь из них на 100% уверенная?
Я был бы удивлен, если бы обнаружил *nix-систему, подобную ОС, без оболочки, основанной на синтаксисе Bourne, но все возможно, особенно на встраиваемых системах.
Мое предположение, что порядок следующий: Некоторые оболочки будут присутствовать по умолчанию, они всегда будут в /bin/sh?
/bin/sh[1123646] скорее всего будут оболочкой семейства Bourne, но не гарантированно будут совместимы с POSIX, даже на POSIX-совместимых системах. Например, [1123647]/usr/xpg4/bin/sh[1123648] на Solaris 10 и более ранних версиях, в то время как [1123649]/bin/sh[1123650] является старой оригинальной оболочкой Bourne, которая не является POSIX.[1123196].
Воспользуйтесь подсказкой Autotools: придерживайтесь наименьшего общего знаменателя оболочки Борна и POSIX - возможно, дополненного sed
- если вы нужно написать что-то, что должно работать везде . Могут существовать системы, в которых что-то ломается, но вы можете обойти такие проблемы, переписав.
Например, в некоторых древних системах есть проблемы с ошибками раскрытия в test
, также известном как [
:
if [ $foo = bar ] ; then...
, поэтому практика Autoconf состоит в том, чтобы переписать его в двойные кавычки с односимвольным префиксом, например:
if [ x"$foo" = "xbar" ] ; then...
Вы также можете использовать здесь "x $ foo"
. Это защищает от возможности того, что $ foo
может быть допустимым вариантом для test (1)
, и поскольку [
является псевдонимом для test
], это может неверно истолковать выражение. Решение состоит в том, чтобы создать ситуацию, когда неизвестный аргумент [
всегда начинается с x
, что означает, что он не может иметь особого значения для [
].
(Autoconf также рекомендует использовать test
вместо [
, но этот совет является реакцией на возможные конфликты с M4 , который также использует ] [
в его синтаксисе.)
awk - это POSIX , поэтому теоретически он доступен везде. Он есть даже в Busybox , поэтому у вас будет реализация awk
даже в некоторых очень ограниченных встроенных системах Linux. Тем не менее, я был бы менее удивлен, встретив систему без awk
, чем sed
. Полагаю, дело в сложности: более простые инструменты с большей вероятностью переживут агрессивную сортировку.
Perl не является частью какого-либо широко распространенного стандарта, POSIX или другого, поэтому вы просто не можете рассчитывать на него, если ничего заранее не знаете о целевой среде. Perl не устанавливается по умолчанию в:
Autoconf В руководстве есть глава по программированию переносимой оболочки , которая должна быть вам полезна. В последнем разделе рассматриваются такие инструменты, как sed
, awk
и многие другие.