Исполняемые файлы часто зависят от внешних частей программного обеспечения, называемых разделяемыми библиотеками (фактически, библиотеки также являются исполняемыми файлами). Чтобы запустить исполняемый файл, динамический компоновщик должен найти все зависимые библиотеки и загрузить их. Если это не удается, он выводит сообщение об ошибке, подобное тому, которое вы указали, и отказывается от загрузки исполняемого файла.
Можно просмотреть все библиотеки, от которых зависит исполняемый файл, выполнив
ldd Telegram
Тогда в вашем случае сообщение говорит, что компоновщик не может найти библиотеку libX11-xcb.so.1
, предположительно потому, что она не установлен. Это конкретное имя используется библиотекой XCB
.
Чтобы избежать хлопот, связанных с ручной заботой о зависимостях библиотек, люди часто используют какую-то систему управления пакетами для установки программного обеспечения.
Не уверен, что он идеально подходит для вашего варианта использования, но похоже, что вы можете просто использовать:
:g/s\d\+_decoded_block\[/ s/\[/_/
... если нет потенциально других [
символов в совпадающих строках , предшествующих той, которую вы хотите изменить.
Чем проще, тем лучше, если это соответствует вашим требованиям.
Вы, кажется, ожидаете десятичного числа для "#" в вопросе. Вы можете сделать это, используя обратную ссылку:
%s/s\(\d\+\)_decoded_block\[/s\1_decoded_block_/g
где \ (\ d \ + \)
соответствует одной или нескольким десятичным цифрам и заменяется маркером \ 1
.
Вы можете улучшить обратную ссылку, переместив в нее больше текста:
%s/s\(\d\+_decoded_block\)\[/s\1_/g
потому что \ 1
будет заменено тем, что было найдено в группе.