{"id":9886,"date":"2021-08-04T16:01:43","date_gmt":"2021-08-04T20:01:43","guid":{"rendered":"https:\/\/irreal.org\/blog\/?p=9886"},"modified":"2021-08-04T16:01:43","modified_gmt":"2021-08-04T20:01:43","slug":"editing-browser-input-in-emacs","status":"publish","type":"post","link":"https:\/\/irreal.org\/blog\/?p=9886","title":{"rendered":"Editing Browser Input in Emacs"},"content":{"rendered":"<p>One of the downsides of being a Safari user is that the extension architecture doesn\u2019t support the functionality that other browsers do. In particular, where other browsers allow you to call out to Emacs when editing fields in the browser, this doesn\u2019t seem possible with Safari. That\u2019s too bad because I <i>really<\/i> hate dealing with text outside of Emacs. None of my muscle memory works and all those editing habits and shortcuts I\u2019ve built up over the years can\u2019t be used.<\/p>\n<p>Happily, Abin Simon has a <a href=\"https:\/\/blog.meain.io\/2021\/edit-everything-in-emacs\/\">workaround<\/a>. He starts with how you\u2019d do it manually\u2014copy the text to the clipboard and paste it to an Emacs buffer, add to or edit the text, copy the edited text back to the clipboard and paste it into the browser buffer\u2014and automates the process. That turns out to be easier than you\u2019d think because he leverages <a href=\"http:\/\/www.hammerspoon.org\/\">Hammerspoon<\/a> to do the system part. The Emacs part is just a bit of simple Elisp.<\/p>\n<p>This isn\u2019t as nice a solution as a browser plugin but it\u2019s a decent workaround. Simon\u2019s workflow is centered around interacting with Github but it\u2019s easily adaptable to other workflows.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the downsides of being a Safari user is that the extension architecture doesn\u2019t support the functionality that other browsers do. In particular, where other browsers allow you to call out to Emacs when editing fields in the browser, &hellip; <a href=\"https:\/\/irreal.org\/blog\/?p=9886\">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-9886","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\/9886","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=9886"}],"version-history":[{"count":1,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9886\/revisions"}],"predecessor-version":[{"id":9887,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/9886\/revisions\/9887"}],"wp:attachment":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}