Ответ @John Flood вдохновил меня еще немного подумать об этом, и я придумал следующий обходной путь, который, кажется, работает достаточно хорошо.
Сохраните следующий сценарий как mutt_attach
где-нибудь в $PATH
с литеральным символом Return
вместо^M
(в vim
. Для этого нажмите <c-v><Return>
в режиме вставки ).
#!/usr/bin/env bash
tmp=$(mktemp)
vifm "$HOME" -c "set nohlsearch" --choose-files "$tmp"
# ranger "$HOME" --choosefiles="$tmp"
while IFS="" read -r file; do
tmux send-keys -t email:Email.0 -l "a$file^M";
done < "$tmp"
В .muttrc
определите
macro compose \CA "!mutt_attach\n"
Теперь, если вы откроете mutt
в первой панели окна Email
в сеансе tmux
с именем email
(, созданном, например, с помощью команды tmux new -s email
. Указание сеанса, окна и панели удобно в основном для целей отладки )и нажмите Control+A
в меню создания, vifm
откроется в режиме choose-files
, и выбранный файл будет автоматически прикреплен.
Более того, это позволяет пометить несколько файлов в vifm
с помощьюt
(или визуального режима ), а в ranger
с помощью Space
,и прикрепите их все одновременно!
РЕДАКТИРОВАТЬ:Я заметил, что код не работает для имен файлов, содержащих пробелы, так как кажется невозможным ввести пробел в меню создания вложения в моей версии mutt... Вот (несколько уродливый )обходной путь:
#!/usr/bin/env bash
# File in which to store the list of filenames to attach
tmp=$(mktemp)
vifm "$HOME" -c "set nohlsearch" --choose-files "$tmp"
# ranger "$HOME" --choosefiles="$tmp"
while IFS="" read -r file; do
# Workaround for filenames that contain spaces
if [[ "$file" = *" "* ]]; then
file_no_space=/tmp/$(basename "$file" | sed 's/ /_/g')
ln -s -f "$file" "$file_no_space"
file="$file_no_space"
fi
tmux send-keys -t email:Email.0 -l "a$file^M";
done < "$tmp"
Я понял, как решить проблему. Я ввел эту команду в терминал, а затем повторно -установил обновления. И драйвер Nvidia обновился должным образом:
sudo apt-get -o Dpkg::Options::="--force-overwrite" install -f libnvidia-common-450-server