{"action":"created","issue":{"url":"https://api.github.com/repos/fish-shell/fish-shell/issues/3398","repository_url":"https://api.github.com/repos/fish-shell/fish-shell","labels_url":"https://api.github.com/repos/fish-shell/fish-shell/issues/3398/labels{/name}","comments_url":"https://api.github.com/repos/fish-shell/fish-shell/issues/3398/comments","events_url":"https://api.github.com/repos/fish-shell/fish-shell/issues/3398/events","html_url":"https://github.com/fish-shell/fish-shell/issues/3398","id":178140956,"number":3398,"title":"Bind prefix keys, or two-stage binds (like Emacs)","user":{"login":"alphapapa","id":601365,"avatar_url":"https://avatars.githubusercontent.com/u/601365?v=3","gravatar_id":"","url":"https://api.github.com/users/alphapapa","html_url":"https://github.com/alphapapa","followers_url":"https://api.github.com/users/alphapapa/followers","following_url":"https://api.github.com/users/alphapapa/following{/other_user}","gists_url":"https://api.github.com/users/alphapapa/gists{/gist_id}","starred_url":"https://api.github.com/users/alphapapa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alphapapa/subscriptions","organizations_url":"https://api.github.com/users/alphapapa/orgs","repos_url":"https://api.github.com/users/alphapapa/repos","events_url":"https://api.github.com/users/alphapapa/events{/privacy}","received_events_url":"https://api.github.com/users/alphapapa/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/fish-shell/fish-shell/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"krader1961","id":7545917,"avatar_url":"https://avatars.githubusercontent.com/u/7545917?v=3","gravatar_id":"","url":"https://api.github.com/users/krader1961","html_url":"https://github.com/krader1961","followers_url":"https://api.github.com/users/krader1961/followers","following_url":"https://api.github.com/users/krader1961/following{/other_user}","gists_url":"https://api.github.com/users/krader1961/gists{/gist_id}","starred_url":"https://api.github.com/users/krader1961/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krader1961/subscriptions","organizations_url":"https://api.github.com/users/krader1961/orgs","repos_url":"https://api.github.com/users/krader1961/repos","events_url":"https://api.github.com/users/krader1961/events{/privacy}","received_events_url":"https://api.github.com/users/krader1961/received_events","type":"User","site_admin":false},"assignees":[{"login":"krader1961","id":7545917,"avatar_url":"https://avatars.githubusercontent.com/u/7545917?v=3","gravatar_id":"","url":"https://api.github.com/users/krader1961","html_url":"https://github.com/krader1961","followers_url":"https://api.github.com/users/krader1961/followers","following_url":"https://api.github.com/users/krader1961/following{/other_user}","gists_url":"https://api.github.com/users/krader1961/gists{/gist_id}","starred_url":"https://api.github.com/users/krader1961/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krader1961/subscriptions","organizations_url":"https://api.github.com/users/krader1961/orgs","repos_url":"https://api.github.com/users/krader1961/repos","events_url":"https://api.github.com/users/krader1961/events{/privacy}","received_events_url":"https://api.github.com/users/krader1961/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/fish-shell/fish-shell/milestones/4","html_url":"https://github.com/fish-shell/fish-shell/milestones/fish-future","labels_url":"https://api.github.com/repos/fish-shell/fish-shell/milestones/4/labels","id":130257,"number":4,"title":"fish-future","description":"These are issues that are not targeted for an upcoming minor or major release. After a release, we will re-examine these issues and pull any in that we think are good targets; that is retarget them to the next minor (or major) release.\r\n\r\nIf you can provide a fix for an issue in this milestone, we'll generally accept it for the next release even if the issue is not targeted for the release.","creator":{"login":"ridiculousfish","id":920838,"avatar_url":"https://avatars.githubusercontent.com/u/920838?v=3","gravatar_id":"","url":"https://api.github.com/users/ridiculousfish","html_url":"https://github.com/ridiculousfish","followers_url":"https://api.github.com/users/ridiculousfish/followers","following_url":"https://api.github.com/users/ridiculousfish/following{/other_user}","gists_url":"https://api.github.com/users/ridiculousfish/gists{/gist_id}","starred_url":"https://api.github.com/users/ridiculousfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ridiculousfish/subscriptions","organizations_url":"https://api.github.com/users/ridiculousfish/orgs","repos_url":"https://api.github.com/users/ridiculousfish/repos","events_url":"https://api.github.com/users/ridiculousfish/events{/privacy}","received_events_url":"https://api.github.com/users/ridiculousfish/received_events","type":"User","site_admin":false},"open_issues":378,"closed_issues":2,"state":"open","created_at":"2012-06-11T02:25:13Z","updated_at":"2016-09-20T20:12:51Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2016-09-20T18:39:35Z","updated_at":"2016-09-20T21:42:46Z","closed_at":null,"body":"As mentioned in https://github.com/fish-shell/fish-shell/issues/1963, it would be handy to be able to bind, depending on how you look at it, prefix keys, two-stage binds, or Emacs-style key combinations.  For example, in Emacs `C-x C-f` is used by pressing Control and `x` together, releasing, then pressing Control and `f` together.\r\n\r\nThis would be nice in Fish, because it would let you bind sets of commands behind prefix keys.  For example:\r\n\r\n* `Alt+P l` to insert `| less`\r\n* `Alt+P w c` to insert `| wc`\r\n* `Alt+P g` to insert `| grep`"},"comment":{"url":"https://api.github.com/repos/fish-shell/fish-shell/issues/comments/248443741","html_url":"https://github.com/fish-shell/fish-shell/issues/3398#issuecomment-248443741","issue_url":"https://api.github.com/repos/fish-shell/fish-shell/issues/3398","id":248443741,"user":{"login":"faho","id":5185367,"avatar_url":"https://avatars.githubusercontent.com/u/5185367?v=3","gravatar_id":"","url":"https://api.github.com/users/faho","html_url":"https://github.com/faho","followers_url":"https://api.github.com/users/faho/followers","following_url":"https://api.github.com/users/faho/following{/other_user}","gists_url":"https://api.github.com/users/faho/gists{/gist_id}","starred_url":"https://api.github.com/users/faho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/faho/subscriptions","organizations_url":"https://api.github.com/users/faho/orgs","repos_url":"https://api.github.com/users/faho/repos","events_url":"https://api.github.com/users/faho/events{/privacy}","received_events_url":"https://api.github.com/users/faho/received_events","type":"User","site_admin":false},"created_at":"2016-09-20T21:42:45Z","updated_at":"2016-09-20T21:42:45Z","body":">At present the code doesn't wait anywhere close to long enough to see if the remaining characters of the binding will be received. On the other hand it uses a fixed timeout\r\n\r\nShould it be using a timeout at all? The way it works in emacs is that if you bind $a$b (where \"$a\" and \"$b\" are some key sequences), then you can't use $a on its own at all. So if you press $a, it waits for you to press $b or $c, for as long as it takes. And binding $a when $a$b is already bound is an error (\"$a is not a prefix\" or something like that).\r\n\r\nThough somehow emacs manages to distinguish between escape and alt."}}
{"actor":{"display_login":"faho"}}