serhii.net

In the middle of the desert you can say anything you want

30 Apr 2020

Day 486

Except by clicking on them, f gives numbers you can follow;F outputs the link text in the statusbar.

Anki::Import

The Anki::Import documentation doesn’t make it clear enough, but using a quote(') works too for carrying on old tags along with the usual backtick, but for signalling an empty field only the backtick works.

Also I don’t think I can control the Cloze deletions - it automatically generates identifiers for them. Not going to get into perl to fix this :)

Vim regex reference

Vim Regular Expressions 101 is a really nice reference for vim’s search/replace/regex things. Maybe I’ll work through it later.

Most interesting is that groups are created with \(-\) and mentioned as \1 (will be handy for search-and-replace!)

I miss having a “now learning” textfile. (TODO)

Also this is a nice summary of the differences between vim and python/perl regexes, in vim characters are more likely to be literally interpreted: 1

Perl    Vim     Explanation
---------------------------
x?      x\=     Match 0 or 1 of x
x+      x\+     Match 1 or more of x
(xyz)   \(xyz\) Use brackets to group matches
x{n,m}  x\{n,m} Match n to m of x
x*?     x\{-}   Match 0 or 1 of x, non-greedy
x+?     x\{-1,} Match 1 or more of x, non-greedy
\b      \< \>   Word boundaries
$n      \n      Backreferences for previously grouped matches

And regex101.com remains the best place to test usual regexes.

Pinta and gthumb

I’ve been looking for something simpler than GIMP for casual blurring / cropping / adding text, pinta mostly fits the bill but I find it hard to use and no easy blur brush, gthumb is much more minimalistic in functions but is more pleasant to use.

Zsh global aliases and aliases that take arguments

Zsh has global aliases! An Introduction to the Z Shell - Aliasing is awesome. alias -g M='| more' -> who M

This has a lot of potential for often-typed parts of commands.

But I went there to look for arguments, and apparently zsh explicitly doesn’t have them and wants functions instead. So:

% rm () { mv $* /tmp/wastebasket }
% rm foo.dvi
% ls /tmp/wastebasket
foo.dvi

So I changed my taskwarrior s alias to:

#alias s='task s sprint.is:$SPRINT or sprint:c' 
s () {task s sprint.is:$SPRINT or sprint:c $*}

Now I can finally filter my tasks for the sprint (s +F)

// TODO replace dependence on $SPRINT by just usind current week number.

Not the first time I neglect to read the documentation of the software I switch to, being happy that it mostly works like the previous one.

Nel mezzo del deserto posso dire tutto quello che voglio.