{"id":8816,"date":"2020-04-22T14:31:21","date_gmt":"2020-04-22T18:31:21","guid":{"rendered":"https:\/\/irreal.org\/blog\/?p=8816"},"modified":"2020-04-22T14:31:21","modified_gmt":"2020-04-22T18:31:21","slug":"learning-emacs-with-macros","status":"publish","type":"post","link":"https:\/\/irreal.org\/blog\/?p=8816","title":{"rendered":"Learning Emacs With Macros"},"content":{"rendered":"<p>Sahas Subramanian has started a series of Emacs tutorial videos with the novel idea of <a href=\"https:\/\/www.youtube.com\/watch?v=ih8FpiK0zck&amp;feature=youtu.be\">teaching Emacs through the use of macros<\/a>. The first video demonstrates the utility of keyboard macros by using them to solve a simple problem.<\/p>\n<p>The problem is that you\u2019re given a malformed Python dictionary  of the form<\/p>\n<pre class=\"example\">{key:number, ...}\n<\/pre>\n<p>where \u201ckey\u201d is an unquoted letter. That\u2019s an error because the characters need to be quoted so Subramanian shows how you can fix things easily by recording a keyboard macro and invoking it for each entry in the dictionary. This is the first video so he doesn\u2019t show how to repeat the invocation or invoke it until the end of buffer is reached. Doubtless, that will come in future videos.<\/p>\n<p>Subramanian\u2019s approach is interesting and I\u2019m looking forward to future videos. The introductory video is only 7 minutes, 12 seconds long so it should be easy to fit it in if you want to take a look.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sahas Subramanian has started a series of Emacs tutorial videos with the novel idea of teaching Emacs through the use of macros. The first video demonstrates the utility of keyboard macros by using them to solve a simple problem. The &hellip; <a href=\"https:\/\/irreal.org\/blog\/?p=8816\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[18],"class_list":["post-8816","post","type-post","status-publish","format-standard","hentry","category-general","tag-emacs"],"_links":{"self":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8816"}],"version-history":[{"count":1,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8816\/revisions"}],"predecessor-version":[{"id":8817,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/8816\/revisions\/8817"}],"wp:attachment":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}