В mutt возможно ли использовать файловый браузер, такой как vifm или ranger (возможно, в tmux split), вместо файлового браузера по умолчанию, чтобы выбрать файл для вложения в электронное письмо?
Вы можете открыть ranger в tmux split (предложенную вами возможность), выбрать файл, который нужно прикрепить, скопировать имя файла с его путем, ypа затем вернуться в окно подключения Mutt, нажать aи вставить путь вложения и имя файла в поле линия, которая открывается в нижней части окна вложения и нажмите Enter.
Что касается вопроса о пробелах в имени файла (в ответ на комментарий @Rastapopolous), я понял, что у меня есть сильная привычка не использовать их, но повторно тестируя вышеупомянутый метод вставки пути из рейнджера, я обнаружил, что когда В имени файла есть пробелы, по какой-то причине в имени вложения, вставленного в Mutt, повторяется часть добавленного имени! Можно удалить пробел, чтобы удалить «придаток», и вложение легко отправляется даже с пробелами, которых не было. Я проверил копию пути из ranger в vim, и он вставляется правильно, но не в mutt.
Поскольку я обычно использую tmux, я считаю этот метод относительно простым.
В качестве альтернативы и независимо от tmux у меня также есть следующий скрипт в моем .bashrc:
# email an attachment
function mail_attach ()
{
mutt -F ~/.muttrc -a "$@" -- myemail@gmail.com;
}
export -f mail_attach
Это полезно, если вы знаете, что приложите, прежде чем писать электронное письмо. Таким образом, в Ranger просто выбираете файл, набираете текст, sчтобы открыть командную строку оболочки, и указывает выбранный файл %f, то есть:
:shell mail_attach %f
Нажатие Enterоткроет редактор Mutt для составления электронного письма, к которому уже прикреплен выбранный файл. Однако затем необходимо изменить адрес электронной почты получателя на нужный. Возможно, есть способ изменить функцию, чтобы открыть редактор электронной почты с пустым полем «Кому», но я не знаю достаточно. Тем не менее, я не считаю это большим делом.
Для нескольких файлов, если они находятся в одной и той же папке, я выбираю их все, а затем нажимаю клавишу @быстрого доступа, чтобы открыть командную строку оболочки, например, где %sесть ссылка на выбранные файлы:
:shell %s
Затем нужно просто вставить mail_attachдо %sи нажать Enter, чтобы открыть сообщение Mutt для составления письма, к которому уже прикреплены все выбранные файлы. Если вы хотите прикрепить файлы из разных папок, я не знаю, как это сделать, кроме как собирать их в одну папку.
Я хотел бы отдать должное тому, кто создал функцию, но я больше не знаю, откуда она взялась. Я знаю, что это был не я.
Спасибо за Ваш ответ! Я только что опубликовал альтернативный, более упрощенный метод, который может показаться вам интересным.
Rastapopoulos
Большое спасибо за альтернативу, однако, я думаю, что я слишком предан рейнджеру и, в то же время, мне не хватает навыков, чтобы адаптировать ваш скрипт к рейнджеру!
Джон Флуд,
Я адаптировал скрипт, который выложил для рейнджера. Единственным недостатком является то, что он не работает для имен файлов с пробелами в них. (Это просто моя версия Mutt или невозможно ввести символ «Пробел» в меню «Прикрепить файл»?
Rastapopoulos
Хороший трюк, и вы также можете сделать :shell mutt -a %fпрямо из ranger.
Растапопулос
1
Ваше объяснение «буквальный символ возврата» сработало! Ваш оригинальный сценарий теперь работает для меня. Спасибо @Rastapopoulos!
Джон Флад
1
Ответ @John Flood вдохновил меня задуматься над этим, и я нашел следующий обходной путь, который, похоже, работает очень хорошо.
Сохраните следующий скрипт как mutt_attachгде-нибудь $PATH, с буквенным Returnсимволом вместо ^M(в vim, это достигается нажатием <c-v><Return>в режиме вставки).
Теперь , если вы откроете 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 spacesif[["$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"
Ответы:
Вы можете открыть ranger в tmux split (предложенную вами возможность), выбрать файл, который нужно прикрепить, скопировать имя файла с его путем,
yp
а затем вернуться в окно подключения Mutt, нажатьa
и вставить путь вложения и имя файла в поле линия, которая открывается в нижней части окна вложения и нажмитеEnter
.Что касается вопроса о пробелах в имени файла (в ответ на комментарий @Rastapopolous), я понял, что у меня есть сильная привычка не использовать их, но повторно тестируя вышеупомянутый метод вставки пути из рейнджера, я обнаружил, что когда В имени файла есть пробелы, по какой-то причине в имени вложения, вставленного в Mutt, повторяется часть добавленного имени! Можно удалить пробел, чтобы удалить «придаток», и вложение легко отправляется даже с пробелами, которых не было. Я проверил копию пути из ranger в vim, и он вставляется правильно, но не в mutt.
Поскольку я обычно использую tmux, я считаю этот метод относительно простым.
В качестве альтернативы и независимо от tmux у меня также есть следующий скрипт в моем .bashrc:
Это полезно, если вы знаете, что приложите, прежде чем писать электронное письмо. Таким образом, в Ranger просто выбираете файл, набираете текст,
s
чтобы открыть командную строку оболочки, и указывает выбранный файл%f
, то есть:Нажатие
Enter
откроет редактор Mutt для составления электронного письма, к которому уже прикреплен выбранный файл. Однако затем необходимо изменить адрес электронной почты получателя на нужный. Возможно, есть способ изменить функцию, чтобы открыть редактор электронной почты с пустым полем «Кому», но я не знаю достаточно. Тем не менее, я не считаю это большим делом.Для нескольких файлов, если они находятся в одной и той же папке, я выбираю их все, а затем нажимаю клавишу
@
быстрого доступа, чтобы открыть командную строку оболочки, например, где%s
есть ссылка на выбранные файлы:Затем нужно просто вставить
mail_attach
до%s
и нажать Enter, чтобы открыть сообщение Mutt для составления письма, к которому уже прикреплены все выбранные файлы. Если вы хотите прикрепить файлы из разных папок, я не знаю, как это сделать, кроме как собирать их в одну папку.Я хотел бы отдать должное тому, кто создал функцию, но я больше не знаю, откуда она взялась. Я знаю, что это был не я.
источник
:shell mutt -a %f
прямо изranger
.Ответ @John Flood вдохновил меня задуматься над этим, и я нашел следующий обходной путь, который, похоже, работает очень хорошо.
Сохраните следующий скрипт как
mutt_attach
где-нибудь$PATH
, с буквеннымReturn
символом вместо^M
(вvim
, это достигается нажатием<c-v><Return>
в режиме вставки).В
.muttrc
, определитьТеперь , если вы откроете
mutt
в первой части окнаEmail
вtmux
сессии с именемemail
(созданной, например, командаtmux new -s email
. Указание сеанса, окно и панель удобна в основном для отладки) и нажмитеControl+A
на создание письма меню,vifm
откроются вchoose-files
режиме и выбранный файл будет автоматически прикреплен.Более того, это позволяет пометить несколько файлов в режиме
vifm
использованияt
(или в визуальном режиме) и приranger
использованииSpace
, а также прикрепить их все одновременно!РЕДАКТИРОВАТЬ : я заметил, что код не работает для имен файлов, которые содержат пробелы, так как кажется невозможным ввести пробел в меню составления вложений в моей версии Mutt ... Вот (несколько уродливый) обходной путь:
источник