Я уже давно ищу программу-календарь для командной строки для Linux. Я понял, что я должен просто использовать Vim. Я хочу иметь возможность легко просматривать неделю списков дел. В настоящее время с помощью этой команды:
data=$(unset split; echo -n "-c \""; for i in {6..0}; do if [ $i -ne 6 ] ; then split="vsplit"; else split="e"; fi; echo -n "$split $(date +"%F" -d"last sunday+$i day").txt|"; done; echo "\"") && precmd='-c "split todo.txt" -c "Calendar" -c "wincmd w"' && cmd="vim $precmd $data" && eval $cmd
Запустите это в полноэкранном терминале, иначе у вас будет плохое время. Требуется этот плагин календаря: https://github.com/mattn/calendar-vim Если у вас нет плагина vim calendar, он тоже будет работать, но у него не будет календаря:
data=$(unset split; echo -n "-c \""; for i in {6..0}; do if [ $i -ne 6 ] ; then split="vsplit"; else split="e"; fi; echo -n "$split $(date +"%F" -d"last sunday+$i day").txt|"; done; echo "\"") && precmd='-c "split todo.txt"' && cmd="vim $precmd $data" && eval $cmd
Это именно то, что я хочу, за исключением того, что нижняя панель не загружает мой todo.txt. Если бы я мог просто заставить эту нижнюю панель загрузить мой todo.txt, я был бы готов! Я не могу понять, почему Vim не примет мой:
-c "split todo.txt"
Не стесняйтесь исправлять мой ужасный удар.
Кроме того, я понимаю, что плагин календаря vim имеет функцию "дневник", но AFAIK он не разделяет окно, как мне требуется.
Спасибо!
Редактировать: вот обновленная версия, которая исправляет проблему при запуске по воскресеньям, а также позволяет указать смещение недели, т.е. "vimcal 0" "vimcal 1" "vimcal -1" и т.д.Конечно, вам нужно будет создать скрипт и / или псевдоним)
data=$(unset split; unset day; echo -n "-c \""; for i in {6..0}; do if [ $i -ne 6 ] ; then split="vsplit"; else split="split"; fi; if [ `date +"%A"` = "Sunday" ] ; then day="sunday"; else day="last sunday"; fi; echo -n "$split $(date +"%F" -d"$day+$i day+$1 week").txt|"; done; echo "\"") && precmd='-c "edit todo.txt" -c "Calendar" -c "wincmd w"' && cd ~/Documents/todo && cmd="vim $precmd $data" && eval $cmd