Fix some movement, including a better start to visual
Why not have `v` (when programming), select the entire symbol?
This commit is contained in:
parent
7a5ccc996b
commit
b7a35fe1dc
2 changed files with 24 additions and 6 deletions
|
@ -360,7 +360,7 @@ What text objects are known?
|
|||
- ~’~ :: a string, surround by quotes, also ~`~ for backticks
|
||||
- ~)~ :: parenthesis, also ~}~ and ~]~, see ~g~
|
||||
- ~x~ :: within a brace, paren, etc., with the [[Better Parenthesis with Text Object][my extensions below]], see ~b~ and ~f~ for similar functionality.
|
||||
- ~d~ :: a /defun/, or code block, similar to ~p~.
|
||||
- ~f~ :: a /defun/, or code block, see [[file:ha-programming.org::*Evil Text Object from Tree Sitter][definition here]].
|
||||
- ~i~ :: indention area, for YAML and Python, with the [[Text Objects based on Indentation][evil-indent-plus]] package
|
||||
- ~t~ :: an HTML tag
|
||||
- ~c~ :: for comments
|
||||
|
@ -1541,9 +1541,20 @@ Magnar Sveen's [[https://github.com/magnars/expand-region.el][expand-region]] pr
|
|||
(use-package expand-region
|
||||
:bind ("C-=" . er/expand-region)
|
||||
|
||||
:config
|
||||
(defun ha-start-region ()
|
||||
"Increase the region when on special characters."
|
||||
(interactive)
|
||||
(if (looking-at (rx (any "{}()[]")))
|
||||
(call-interactively 'er/expand-region)
|
||||
(evil-visual-state)))
|
||||
|
||||
:general
|
||||
(:states 'normal "v" 'ha-start-region)
|
||||
;; Use escape to get out of visual mode, but hitting v again expands the selection.
|
||||
(:states 'visual "v" 'er/expand-region))
|
||||
(:states 'visual
|
||||
"v" 'er/expand-region
|
||||
"V" 'er/contract-region))
|
||||
#+end_src
|
||||
* Working Layout
|
||||
While editing any file on disk is easy enough, I like the mental context switch associated with a full-screen window frame showing all the buffers of a /project task/ (often a direct link to a repository project, but not always).
|
||||
|
|
|
@ -121,6 +121,9 @@ My primary use-case is for its refactoring and other unique features. For instan
|
|||
(use-package lispy
|
||||
:config
|
||||
(evil-define-key 'normal emacs-lisp-mode-map
|
||||
;; Use C-SPC to mark single letter, as these seem to be nicer expansions:
|
||||
"v" 'lispy-mark-symbol ; Mark larger section at first?
|
||||
"M-v" 'lispy-mark ; Mark entire s-expression
|
||||
"g f" 'lispy-ace-paren
|
||||
"g F" 'lispy-ace-symbol)
|
||||
|
||||
|
@ -173,7 +176,7 @@ Use the ~>~ key to /slurp/ in outside objects into the current expression… in
|
|||
:hook ((emacs-lisp-mode lisp-mode) . lispyville-mode))
|
||||
#+end_src
|
||||
|
||||
Now
|
||||
Now we need to define additional key movements:
|
||||
#+begin_src emacs-lisp
|
||||
(use-package lispyville
|
||||
:config
|
||||
|
@ -202,7 +205,11 @@ Now
|
|||
"(" 'lispyville-previous-opening
|
||||
")" 'lispyville-next-closing
|
||||
"{" 'lispyville-backward-up-list
|
||||
"}" 'lispyville-next-opening)
|
||||
"}" 'lispyville-next-opening
|
||||
|
||||
"[ f" 'lispyville-beginning-of-defun
|
||||
"] f" 'lispyville-beginning-of-next-defun
|
||||
"] F" 'lispyville-end-of-next-defun)
|
||||
|
||||
;; Visually high-light a region, just hit `(' to wrap it in parens.
|
||||
;; Without smartparens, we need to insert a pair of delimiters:
|
||||
|
|
Loading…
Reference in a new issue