Вот (надеюсь, эквивалентная) версия Python решения Стефана Шазеласа
python -c "
import zlib
from itertools import islice
from functools import partial
import sys
with open(sys.argv[1]) as f:
compressor = zlib.compressobj()
t, z = 0, 0.0
for chunk in islice(iter(partial(f.read, 4096), ''), 0, None, 10):
t += len(chunk)
z += len(compressor.compress(chunk))
z += len(compressor.flush())
print z/t
" file
-121--123273-
Без подсчета, ^
и _
действительно эквивалентны, но последний поддерживает подсчет:
_ [count] - 1 строки вниз, на символ | линейно |.
Линейно
объясняет ваше второе замечание: при использовании в качестве движения оно не просто охватывает текст между предыдущей позицией и новой, а полный набор покрытых строк.
Внимательно прочитайте : справка
. Вы также увидите (по близости), что команда _
тесно связана с +
и -
.
-121--41479-
Я думаю, что ваши аргументы вполне верны для сервера , где производительность важна, и знание того, какое приложение будет действовать дальше, может быть не предсказуемо.
Однако для рабочего стола подстановка полезна при выполнении задач.
Например, если я работаю над задачей с помощью приложения A
, а затем обнаруживаю, что мне нужно использовать приложение B
для чего-то (или подзадача, или прерывание), то мне мысленно проще позволить A
поменяться местами на диске, пока я работаю в B
, чем закрыть A
и затем не забывать начать его снова после этого.
Это особенно верно, если A
находится в каком-либо несохраненном состоянии, которое не будет восстановлено при перезапуске.
Будет ли это быстрее, чтобы нажать и вытащить A
в/из swap, или закрыть и перезапустить его, зависит от приложения. (Некоторым удается иметь медленный запуск, но небольшой жилой размер.)
Однако я бы согласился, что лучшим решением для повышения производительности будет установка некоторого дополнительного ОЗУ.
Зависимости выражены не как имена пакетов, а как PKG-Config
зависимости. Я думаю, что в системах на основе RPM вы можете найти их напрямую, но на системах на основе Debian необходимо искать соответствующие файлы.
Чтобы сделать это, самый простой подход - это установить APT-файл
, обновить свои индексы с помощью
sudo apt-file update
, затем вы можете использовать поиск файла APT
с зависимостями. В вашем случае:
apt-file search pygobject-3.0.pc
apt-file search gtk+-3.0.pc
и так далее. ( .pc
файлы содержат информацию, необходимую для pkg-config
.) Это скажет вам, что пакеты, которые вам нужны для установки соответственно Python-Gi-dev
Для pygobject-3.0
и libgtk-3-dev
для GTK + -3.0
; Я позволю тебе понять остальные.
Вы можете выполнить тот же поиск в Интернете, используя https://packages.debian.org (результаты, как правило, будут работать на xUbuntu).
С небольшой работой, которую вы можете использовать APT-Cache Search
;
apt-cache search gtk+-3.0 | grep -- -dev
должен создать соответствующее имя пакета (среди других, возможно).
Как указано K1773L , так как Caribou
упаковывается в xubuntu, вы можете запустить
apt-get build-dep caribou
, чтобы получить сборки-зависимости, но это даст зависимостей версии это было упаковано; В целом, если у вас отличается от того, вам может понадобиться разные зависимости.
Как карибу в репозиториях, вы можете просто запустить
Sudo APT-Get Build-DEP Caribou
Чтобы установить все зависимости.