{"action":"created","issue":{"url":"https://api.github.com/repos/syl20bnr/spacemacs/issues/1955","labels_url":"https://api.github.com/repos/syl20bnr/spacemacs/issues/1955/labels{/name}","comments_url":"https://api.github.com/repos/syl20bnr/spacemacs/issues/1955/comments","events_url":"https://api.github.com/repos/syl20bnr/spacemacs/issues/1955/events","html_url":"https://github.com/syl20bnr/spacemacs/issues/1955","id":87401156,"number":1955,"title":"Enhance evil-lisp-state","user":{"login":"tuhdo","id":4818719,"avatar_url":"https://avatars.githubusercontent.com/u/4818719?v=3","gravatar_id":"","url":"https://api.github.com/users/tuhdo","html_url":"https://github.com/tuhdo","followers_url":"https://api.github.com/users/tuhdo/followers","following_url":"https://api.github.com/users/tuhdo/following{/other_user}","gists_url":"https://api.github.com/users/tuhdo/gists{/gist_id}","starred_url":"https://api.github.com/users/tuhdo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tuhdo/subscriptions","organizations_url":"https://api.github.com/users/tuhdo/orgs","repos_url":"https://api.github.com/users/tuhdo/repos","events_url":"https://api.github.com/users/tuhdo/events{/privacy}","received_events_url":"https://api.github.com/users/tuhdo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-11T16:20:17Z","updated_at":"2015-06-11T20:11:22Z","closed_at":null,"body":"Currently, getting into the lisp state takes too many keys (4 keys for Emacs to `C-c k <something>`). That's why I'm using Lispy. We can make it better:\r\n\r\n- Adapt its key bindings for Emacs users. Serious, I like it but I cannot use it like this. Just `f/b/n/p` is enough. Slurp can be replaced with `>` and barf with `<` to free the key bindings.\r\n\r\n- Make use of `avy/ace` (we should remove `ace-jump-mode` really). In Lispy, I can press `q` to jump to any open parenthesis in current defun. It's really convenient.\r\n\r\n- Similarly, I can remove any symbol and jump to it with `H` in current defun.\r\n\r\n- Lispy provides two handy commands: `lispy-knight-up` and `lispy-knight-down` that allows me to jump up/down the next sexp on the next line. If the next sexp is a bigger scope, jump up to it. For example:\r\n\r\n```elisp\r\n(when (or (equal (user-full-name) \"tuhdo\")\r\n            [](equal (user-full-name) \"tudo\"))\r\n    (smartparens-global-strict-mode))\r\n```\r\n\r\nPoint is `[]`. When I use `lispy-knight-up`, it jumps to the parenthesis at `when` and when use `lispy-knight-down`, it jump to the parenthesis on the next line.\r\n\r\n- `[` and `]` should just jump to beginning and end of defun. It is currently unbound.\r\n\r\n- `e` to eval current sexp at current parentheses.\r\n\r\n- For `holy-mode`, we should add a 2-keys binding i.e `C-]` to get into lisp state quickly."},"comment":{"url":"https://api.github.com/repos/syl20bnr/spacemacs/issues/comments/111262926","html_url":"https://github.com/syl20bnr/spacemacs/issues/1955#issuecomment-111262926","issue_url":"https://api.github.com/repos/syl20bnr/spacemacs/issues/1955","id":111262926,"user":{"login":"syl20bnr","id":1243537,"avatar_url":"https://avatars.githubusercontent.com/u/1243537?v=3","gravatar_id":"","url":"https://api.github.com/users/syl20bnr","html_url":"https://github.com/syl20bnr","followers_url":"https://api.github.com/users/syl20bnr/followers","following_url":"https://api.github.com/users/syl20bnr/following{/other_user}","gists_url":"https://api.github.com/users/syl20bnr/gists{/gist_id}","starred_url":"https://api.github.com/users/syl20bnr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/syl20bnr/subscriptions","organizations_url":"https://api.github.com/users/syl20bnr/orgs","repos_url":"https://api.github.com/users/syl20bnr/repos","events_url":"https://api.github.com/users/syl20bnr/events{/privacy}","received_events_url":"https://api.github.com/users/syl20bnr/received_events","type":"User","site_admin":false},"created_at":"2015-06-11T20:11:22Z","updated_at":"2015-06-11T20:11:22Z","body":"It seems that 4 keys is a lot but it is not in practice, the issue is that evil-lisp-state is meant to be used in Vim style, it has never been thought to be used in Emacs style.\r\n\r\nIn Vim style the user is most of the time in `normal state`, then `SPC k`  can really be viewed as one keystroke once the muscle memory is done.\r\nOnce `SPC k` is pressed we are in lisp state so it is not required anymore for the following manipulations.\r\n\r\nWhat I want to experiment is to use Lispy but with the following changes:\r\n- the state is not defined by the position of the point\r\n- `SPC k` enter Lispy state\r\n- Tweak Lispy to be more compliant with Vim in Vim style\r\n\r\nThere is a package that partly does this I believe, we should give it a try."}}