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 |   - ~’~ :: a string, surround by quotes, also ~`~ for backticks | ||||||
|   - ~)~ :: parenthesis, also ~}~ and ~]~, see ~g~ |   - ~)~ :: 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. |   - ~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 |   - ~i~ :: indention area, for YAML and Python, with the [[Text Objects based on Indentation][evil-indent-plus]] package | ||||||
|   - ~t~ :: an HTML tag |   - ~t~ :: an HTML tag | ||||||
|   - ~c~ :: for comments |   - ~c~ :: for comments | ||||||
|  | @ -1541,9 +1541,20 @@ Magnar Sveen's [[https://github.com/magnars/expand-region.el][expand-region]] pr | ||||||
|   (use-package expand-region |   (use-package expand-region | ||||||
|     :bind ("C-=" . er/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 |     :general | ||||||
|  |     (:states 'normal "v" 'ha-start-region) | ||||||
|     ;; Use escape to get out of visual mode, but hitting v again expands the selection. |     ;; 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 | #+end_src | ||||||
| * Working Layout | * 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). | 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,8 +121,11 @@ My primary use-case is for its refactoring and other unique features. For instan | ||||||
|   (use-package lispy |   (use-package lispy | ||||||
|     :config |     :config | ||||||
|     (evil-define-key 'normal emacs-lisp-mode-map |     (evil-define-key 'normal emacs-lisp-mode-map | ||||||
|       "gf" 'lispy-ace-paren |       ;; Use C-SPC to mark single letter, as these seem to be nicer expansions: | ||||||
|       "gF" 'lispy-ace-symbol) |       "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) | ||||||
| 
 | 
 | ||||||
|     (ha-elisp-leader |     (ha-elisp-leader | ||||||
|       "r i" '("cond→if" . lispy-to-ifs) |       "r i" '("cond→if" . lispy-to-ifs) | ||||||
|  | @ -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)) |     :hook ((emacs-lisp-mode lisp-mode) . lispyville-mode)) | ||||||
| #+end_src | #+end_src | ||||||
| 
 | 
 | ||||||
| Now | Now we need to define additional key movements: | ||||||
| #+begin_src emacs-lisp | #+begin_src emacs-lisp | ||||||
|   (use-package lispyville |   (use-package lispyville | ||||||
|     :config |     :config | ||||||
|  | @ -202,7 +205,11 @@ Now | ||||||
|       "(" 'lispyville-previous-opening |       "(" 'lispyville-previous-opening | ||||||
|       ")" 'lispyville-next-closing |       ")" 'lispyville-next-closing | ||||||
|       "{" 'lispyville-backward-up-list |       "{" '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. |     ;; Visually high-light a region, just hit `(' to wrap it in parens. | ||||||
|     ;; Without smartparens, we need to insert a pair of delimiters: |     ;; Without smartparens, we need to insert a pair of delimiters: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue