Skip to content

7th Week of 2024

Life Management

Productivity

Habit management

  • New: Track your habit management.

    You can have a habits.org file where you prioritize, analyze, track them.

    I'm using the next headings:

    • Habits being implemented: It's subdivided in two:
    • Habits that need attention
    • Habits that don't need attention
    • Unclassified habits: Useful when refiling habits from your inbox. This list will be analyzedwhen you do habit analysis.
    • Backlog of habits: Unrefined and unordered list of habits
    • Implemented habits:
    • Rejected habits:

    Each habit is a TODO item with the usual states: TODO, DOING, DONE, REJECTED. In it's body I keep a log of the evolution and the analysis of the habit.

  • New: Habit management workflow.

    Each month I'm trying to go through the list of habits to:

    • Update the state of the habits: Some will be done, rejected or to register ideas about them.
    • Decide which ones need attention.
    • Do habit analysis on the ones that need attention.

    For each of the habits that need analysis, apply the learnings of the next sections:

Coding

IDES

Diffview

  • New: Install using Lazyvim.

    return {
      {
        "sindrets/diffview.nvim",
        dependencies = {
          { "nvim-tree/nvim-web-devicons", lazy = true },
        },
    
        keys = {
          {
            "dv",
            function()
              if next(require("diffview.lib").views) == nil then
                vim.cmd("DiffviewOpen")
              else
                vim.cmd("DiffviewClose")
              end
            end,
            desc = "Toggle Diffview window",
          },
        },
      },
    }
    

    Which sets the next bindings: - dv: Toggle the opening and closing of the diffview windows

  • New: Use diffview as merge tool.

    Add to your ~/.gitconfig:

    [alias]
      mergetool = "!nvim -c DiffviewOpen"
    
  • New: Resolve merge conflicts.

    If you call :DiffviewOpen during a merge or a rebase, the view will list the conflicted files in their own section. When opening a conflicted file, it will open in a 3-way diff allowing you to resolve the conflict with the context of the target branch's version (OURS, left), and the version from the branch which is being merged (THEIRS, right).

    The conflicted file's entry in the file panel will show the remaining number of conflict markers (the number following the file name). If what follows the file name is instead an exclamation mark (!), this indicates that the file has not yet been opened, and the number of conflicts is unknown. If the sign is a check mark, this indicates that there are no more conflicts in the file.

    You can interact with the merge tool with the next bindings:

    • ]x and [x: Jump between conflict markers. This works from the file panel as well.
    • dp: Put the contents on the other buffer
    • do: Get the contents from the other buffer
    • 2do: to obtain the hunk from the OURS side of the diff
    • 3do to obtain the hunk from the THEIRS side of the diff
    • 1do to obtain the hunk from the BASE in a 4-way diff

    Additionally there are mappings for operating directly on the conflict markers:

    • <leader>co: Choose the OURS version of the conflict.
    • <leader>ct: Choose the THEIRS version of the conflict.
    • <leader>cb: Choose the BASE version of the conflict.
    • <leader>ca: Choose all versions of the conflict (effectively just deletes the markers, leaving all the content).
    • dx: Choose none of the versions of the conflict (delete the conflict region).

DevOps

Infrastructure as Code

Gitea