Ручка и бумага работали так хорошо, потому что они никогда не мешали вам, давайте соберем версию на сегодня.

Зачем вообще журнал?

Я не могу заставить вас начать вести дневник регулярно, но я бы хотел, чтобы вы хотя бы подумали об этой удивительной привычке, которую вы, возможно, упускали.

Лично я веду дневник каждый день, потому что мой разум часто кажется беспорядочным, а вынесение вещей в структурированный формат помогает мне организовать себя и свой день. У меня были времена, когда мне приходилось сталкиваться со сложными мыслями и эмоциями, большую часть своей жизни я выступал за то, чтобы просто сесть и обдумать вещи, но этого не всегда было достаточно.

Эта статья предназначена для разработчиков только из-за предлагаемого решения. Подобно тому, как вы не можете моделировать целые программы в своей голове, это для ума. Наступает момент, когда программное обеспечение становится настолько сложным, что вам нужны другие инструменты, чтобы рассуждать об этом, то же самое касается ума, который, возможно, можно рассматривать как сложное программное обеспечение.

Что нужно правильному журналу?

Когда я начал вести дневник, я использовал любую ручку и буклет, которые у меня были под рукой. На самом деле он отлично работал в качестве неограниченного средства для записи, но возникли логистические проблемы. Буклеты начали скапливаться, невозможно было точно определить местонахождение записи, и, честно говоря, мой почерк ужасный, особенно когда я пытаюсь писать со скоростью мысли.

Затем я перешел на использование Документов Google, но для этого требовалось подключение к Интернету и слишком много шагов за пределами моего рабочего процесса. Моя последняя попытка заключалась в использовании специального приложения для ведения журналов для Windows под названием Glimpses. Этот метод отлично работал в течение очень долгого времени и действительно укрепил мою привычку вести дневник, но в конце концов он потерпел неудачу. У него были проблемы с синхронизацией, и мне всегда приходилось загружаться обратно в Windows, чтобы писать.

Жизнь разработчиков

Мое ведение дневника требовало той гибкости, которую я имел с ручкой и бумагой, но при этом оставался высоко структурированным. Моей первой мыслью было создать свою собственную программу, но я так и не дошел до нее, вместо этого я нашел инструмент, к которому я добавил больше инструментов, и теперь у меня есть настоящий пояс инструментов, который поражает все гвозди:

  • Кросс-платформенный (Linux / Windows)
  • Гибкий
  • Легко вставить в мой текущий рабочий процесс
  • Минималист
  • Обновляемый и расширяемый

Я нашел это в терминальном приложении с открытым исходным кодом под названием jrnl, в сочетании с несколькими псевдонимами, Vim (или чем угодно еще) и множеством плагинов, это почти идеально, как я обнаружил.

Кейс для Баша

Когда я впервые начал использовать Linux, я обнаружил, что терминал - архаичный и неуклюжий вариант, который никогда не понимал, что я хочу делать. Сегодня, когда я загружаюсь в Windows, мысль о том, чтобы на самом деле перемещаться по проводнику с помощью мыши, заставляет меня содрогаться от неэффективности.

Теперь первое, что я делаю в Linux, - это открываю терминал и проверяю наличие обновлений. Это рефлекс, привычка и, следовательно, лучшее место для добавления еще одного действия.

Теперь я вхожу в систему, проверяю наличие обновлений, открываю другой терминал и начинаю вести журнал по мере их запуска.

Вот как вы можете настроить это для себя.

Установить jrnl

Перейдите на их веб-сайт и следуйте их инструкциям по установке. Если вы устанавливаете jrnl с pip, а он не работает, не используйте sudo, вместо этого попробуйте с флагом --user.

Как только это будет сделано, у нас будет несколько файлов конфигурации, над которыми нужно поработать.

jrnl Config

В вашем домашнем каталоге создайте файл с именем .jrnl_config. Если вы используете Windows, поместите его в C:\Users\[Your Username]\.jrnl_config.

В него поместите следующее:

.jrnl_config
{
    “journals”: {
        “default”: {
            “journal”: “/mnt/HDD/Documents/journal/journal.txt”,
            “encrypt”: true
        }
    },
    “editor”: “vim +Wrap +Goyo +EndOfLine”,
    “encrypt”: false,
    “default_hour”: 9,
    “default_minute”: 0,
    “timeformat”: “%a, %d %b %Y %H:%M”,
    “tagsymbols”: “@”,
    “highlight”: true,
    “linewrap”: 120
}

Это мои личные настройки, которые, скорее всего, будут отличаться в зависимости от ваших настроек. Например, у меня есть общий жесткий диск, который я использую в каждой ОС, так что именно там я размещаю свой журнал, я также предпочел другой формат даты и времени.

Одним из недостатков в настоящее время является то, что это должен быть файл .txt. Лично я хотел бы иметь возможность использовать разные форматы, такие как уценка.

Для параметра ”editor” у нас есть команда для запуска с выбранным нами редактором, в данном случае Vim, далее мы рассмотрим другие аргументы.

Конфигурация Vim

То, как вы решите настроить Vim, может быть очень личным делом.

Поэтому я рекомендую здесь именно то, что я выбрал способы создать супер-минималистичную и целенаправленную среду письма для ведения дневника.

Наши плагины и команды обеспечат работу этой строки в jrnl_config:

”editor”: “vim +Wrap +Goyo +EndOfLine”

Сворачивать

При записи в vim длинные строки не будут переноситься так, как вы могли бы ожидать, эта команда включит «нормальное» обертывание.

command! -nargs=* Wrap set wrap linebreak nolist

Используйте его с :Wrap.

Источник: Vimcasts

Гойо

На самом деле это 2 плагина vim, Goyo и Limelight.

Goyo позволяет создавать поля без отвлекающих факторов, в то время как Limelight предлагает «гиперфокусное письмо».

Это плагины vim, поэтому убедитесь, что у вас установлен менеджер плагинов, если вы не знаете, какой из них можно использовать Vundle.





После включения их в ваш .vimrc нам нужно внести несколько изменений, чтобы убедиться, что они работают безупречно. Мы хотим, чтобы Goyo и Limelight были включены одновременно, и, из-за причуды Goyo, убедитесь, что завершение работы с vim завершается полностью.

.vimrc
“ Goyo Config
“ 120 is a subjective value that I like
let g:goyo_width = 120
“ Ensure :q to quit even when Goyo is active
function! s:goyo_enter()
    execute ‘Limelight’
    let b:quitting = 0
    let b:quitting_bang = 0
    autocmd QuitPre <buffer> let b:quitting = 1
    cabbrev <buffer> q! let b:quitting_bang = 1 <bar> q!
endfunction
function! s:goyo_leave()
    execute ‘Limelight!’
    “ Quit Vim if this is the only remaining buffer
    if b:quitting && len(filter(range(1, bufnr(‘$’)), ‘buflisted(v:val)’)) == 1
        if b:quitting_bang
            qa!
        else
            qa
        endif
    endif
endfunction

Источник: Github
Я только что добавил исполнение Limelight.

Конец линии

Это обычная команда Vim, которую мне нужно было передать в качестве флага команде запуска vim. Вы увидите, как это можно использовать, когда мы рассмотрим шаблоны jrnl.

command EndOfLine normal! $

jrnl Дополнительно

Теперь у нас есть jrnl и наш редактор, настроенные для отличного ведения журнала, но вы, возможно, захотите пойти немного дальше, вот 2 дополнительные вещи, которые вы можете сделать.

jrnl шаблоны

При ведении дневника, даже если вам может быть нужна полная свобода, иногда помогает некоторая структура.

Для этого с помощью jrnl можно импортировать файл в качестве записи, которую мы затем используем в качестве нашего шаблона. Это могут быть вопросы или цели, о которых вы всегда пишете, ведя дневник, или вещи, о которых вы хотите убедиться, например, перечисление трех вещей, за которые вы были благодарны, или целей, на которых вы хотите сосредоточиться сегодня.

Теперь, хотя jrnl не поддерживает шаблоны напрямую, он создает новую запись с шаблоном, который затем необходимо повторно открыть и отредактировать. Я включил это с помощью псевдонима bash, один для утра и один для вечера. Это зависит от того, как настроен ваш шаблон.

.bashrc
alias jrnlm=’jrnl < path/to/template/file.txt && jrnl -1 --edit’
alias jrnle=’jrnl -on today --edit’

Аргумент EndOfLine при запуске Vim гарантирует, что наш курсор находится в нужном месте, чтобы затем написать заголовок нашей записи. Если вы не используете шаблоны, в этом нет необходимости.

Экспорт журнала

Журналы - это довольно статичный формат, после того, как они написаны, вы не должны возвращаться и что-то менять, было бы неплохо затем экспортировать наши записи в PDF. Для этого мы напишем bash-функцию, которую затем можно будет регулярно вызывать с помощью Cronjob и создавать PDF-библиотеку вашего журнала.

Эта конкретная функция предполагает, что вы пишете свои .txt файлы с синтаксисом разметки и что у вас установлено pandoc для управления преобразованием уценки в PDF.

.bashrc
function exportJrnl { jrnl — export markdown | pandoc --pdf-engine=xelatex -s -o “$1”; }

В качестве аргумента функция принимает имя и / или путь для экспорта журнала и превращает весь журнал в PDF-файл. Вы можете изменить флаги jrnl, чтобы получать записи только за последний год или месяц.

Заключение

Я не могу заставить вас начать вести дневник, но я надеюсь, что это, по крайней мере, даст вам стимул попробовать это. Если вы уже были заинтересованы, но не могли найти способ вписать это в существующий рабочий процесс, надеюсь, этот метод вас вдохновит.

Честно говоря, ведение журнала - это весело и невероятно полезно, но для разработчиков сегодня этого недостаточно, мы также должны уметь возиться и применять свои собственные личные штрихи, при такой настройке действительно нет ограничений на то, что вы можете делать.

Приветствую и счастливого ведения дневника!