Replace move-text with drag-stuff
Just like: https://github.com/emacsfodder/move-text https://github.com/rejeep/drag-stuff.el also drags one or more (region) lines up or down. But it also allows for dragging left and right (across end of lines): - a word: changing place with the next or previous word. - a region: moving it one character at a time to the left or right. Added a new key binding: `SPC x .` that opens the: ``` Drag Stuff Transient State [k/K] up [h/H] left [q] quit [j/J] down [l/L] right ``` The `move-text` package isn't removed, even though it isn't used anymore in Spacemacs. Because the `evil-unimpaired` elpa directory is generated from the local Spacemacs `evil-unimpaired.el` file. https://github.com/syl20bnr/spacemacs/blob/develop/layers/%2Bspacemacs/spacemacs-evil/local/evil-unimpaired/evil-unimpaired.el Therefore the `evil-unimpaired` key bindings `[e` and `]e` still call the `move-text` commands. Until the `evil-unimpaired` elpa directory has been removed and regenerated by restarting Spacemacs. Then they will call the new `drag-stuff` commands. I don't know if/when the `move-text` package can be removed in the future.
This commit is contained in:
parent
589c16b73a
commit
94585331ce
|
@ -168,6 +168,7 @@
|
||||||
- [[#paste-transient-state][Paste transient state]]
|
- [[#paste-transient-state][Paste transient state]]
|
||||||
- [[#auto-indent-pasted-text][Auto-indent pasted text]]
|
- [[#auto-indent-pasted-text][Auto-indent pasted text]]
|
||||||
- [[#text-manipulation-commands][Text manipulation commands]]
|
- [[#text-manipulation-commands][Text manipulation commands]]
|
||||||
|
- [[#drag-stuff-transient-state][Drag stuff transient state]]
|
||||||
- [[#text-insertion-commands][Text insertion commands]]
|
- [[#text-insertion-commands][Text insertion commands]]
|
||||||
- [[#smartparens-strict-mode][Smartparens Strict mode]]
|
- [[#smartparens-strict-mode][Smartparens Strict mode]]
|
||||||
- [[#zooming][Zooming]]
|
- [[#zooming][Zooming]]
|
||||||
|
@ -2970,6 +2971,7 @@ Text related commands (start with ~x~):
|
||||||
|
|
||||||
| Key binding | Description |
|
| Key binding | Description |
|
||||||
|---------------+---------------------------------------------------------------|
|
|---------------+---------------------------------------------------------------|
|
||||||
|
| ~SPC x .~ | enter the drag stuff transient state |
|
||||||
| ~SPC x TAB~ | indent or dedent a region rigidly |
|
| ~SPC x TAB~ | indent or dedent a region rigidly |
|
||||||
| ~SPC x a &~ | align region at & |
|
| ~SPC x a &~ | align region at & |
|
||||||
| ~SPC x a (~ | align region at ( |
|
| ~SPC x a (~ | align region at ( |
|
||||||
|
@ -3012,8 +3014,8 @@ Text related commands (start with ~x~):
|
||||||
| ~SPC x j l~ | set the justification to left |
|
| ~SPC x j l~ | set the justification to left |
|
||||||
| ~SPC x j n~ | set the justification to none |
|
| ~SPC x j n~ | set the justification to none |
|
||||||
| ~SPC x j r~ | set the justification to right |
|
| ~SPC x j r~ | set the justification to right |
|
||||||
| ~SPC x J~ | move down a line of text (enter transient state) |
|
| ~SPC x J~ | drag down a line of text (enter drag stuff transient state) |
|
||||||
| ~SPC x K~ | move up a line of text (enter transient state) |
|
| ~SPC x K~ | drag up a line of text (enter drag stuff transient state) |
|
||||||
| ~SPC x l d~ | duplicate line or region |
|
| ~SPC x l d~ | duplicate line or region |
|
||||||
| ~SPC x l r~ | randomize lines in region |
|
| ~SPC x l r~ | randomize lines in region |
|
||||||
| ~SPC x l s~ | sort lines |
|
| ~SPC x l s~ | sort lines |
|
||||||
|
@ -3034,6 +3036,17 @@ Text related commands (start with ~x~):
|
||||||
| ~SPC x y~ | use avy to copy a link in the frame |
|
| ~SPC x y~ | use avy to copy a link in the frame |
|
||||||
| ~SPC x Y~ | use avy to copy multiple links in the frame |
|
| ~SPC x Y~ | use avy to copy multiple links in the frame |
|
||||||
|
|
||||||
|
**** Drag stuff transient state
|
||||||
|
The drag stuff transient state is opened with ~SPC x .~:
|
||||||
|
|
||||||
|
| Key binding | Description |
|
||||||
|
|-------------------+-----------------------------|
|
||||||
|
| ~k~, ~K~, ~Up~ | drag up |
|
||||||
|
| ~j~, ~J~, ~Down~ | drag down |
|
||||||
|
| ~h~, ~H~, ~Left~ | drag left (word or region) |
|
||||||
|
| ~l~, ~L~, ~Right~ | drag right (word or region) |
|
||||||
|
| ~q~ | quit transient state |
|
||||||
|
|
||||||
*** Text insertion commands
|
*** Text insertion commands
|
||||||
Text insertion commands (start with ~i~):
|
Text insertion commands (start with ~i~):
|
||||||
|
|
||||||
|
|
|
@ -132,8 +132,8 @@
|
||||||
|
|
||||||
;; move selection up and down
|
;; move selection up and down
|
||||||
(when vim-style-visual-line-move-text
|
(when vim-style-visual-line-move-text
|
||||||
(define-key evil-visual-state-map "J" (concat ":m '>+1" (kbd "RET") "gv=gv"))
|
(define-key evil-visual-state-map "J" 'drag-stuff-down)
|
||||||
(define-key evil-visual-state-map "K" (concat ":m '<-2" (kbd "RET") "gv=gv")))
|
(define-key evil-visual-state-map "K" 'drag-stuff-up))
|
||||||
|
|
||||||
(evil-ex-define-cmd "enew" 'spacemacs/new-empty-buffer)
|
(evil-ex-define-cmd "enew" 'spacemacs/new-empty-buffer)
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
(bracketed-paste :toggle (version<= emacs-version "25.0.92"))
|
(bracketed-paste :toggle (version<= emacs-version "25.0.92"))
|
||||||
(clean-aindent-mode :toggle dotspacemacs-use-clean-aindent-mode)
|
(clean-aindent-mode :toggle dotspacemacs-use-clean-aindent-mode)
|
||||||
dired-quick-sort
|
dired-quick-sort
|
||||||
|
drag-stuff
|
||||||
editorconfig
|
editorconfig
|
||||||
eval-sexp-fu
|
eval-sexp-fu
|
||||||
expand-region
|
expand-region
|
||||||
|
@ -114,6 +115,35 @@
|
||||||
:config
|
:config
|
||||||
(evil-define-key 'normal dired-mode-map "s" 'hydra-dired-quick-sort/body)))
|
(evil-define-key 'normal dired-mode-map "s" 'hydra-dired-quick-sort/body)))
|
||||||
|
|
||||||
|
(defun spacemacs-editing/init-drag-stuff ()
|
||||||
|
(use-package drag-stuff
|
||||||
|
:defer t
|
||||||
|
:init
|
||||||
|
(drag-stuff-mode t)
|
||||||
|
(spacemacs|define-transient-state drag-stuff
|
||||||
|
:title "Drag Stuff Transient State"
|
||||||
|
:doc "
|
||||||
|
[_k_/_K_] up [_h_/_H_] left [_q_] quit
|
||||||
|
[_j_/_J_] down [_l_/_L_] right"
|
||||||
|
:bindings
|
||||||
|
("j" drag-stuff-down)
|
||||||
|
("J" drag-stuff-down)
|
||||||
|
("<down>" drag-stuff-down)
|
||||||
|
("k" drag-stuff-up)
|
||||||
|
("K" drag-stuff-up)
|
||||||
|
("<up>" drag-stuff-up)
|
||||||
|
("h" drag-stuff-left)
|
||||||
|
("H" drag-stuff-left)
|
||||||
|
("<left>" drag-stuff-left)
|
||||||
|
("l" drag-stuff-right)
|
||||||
|
("L" drag-stuff-right)
|
||||||
|
("<right>" drag-stuff-right)
|
||||||
|
("q" nil :exit t))
|
||||||
|
(spacemacs/set-leader-keys
|
||||||
|
"x." 'spacemacs/drag-stuff-transient-state/body
|
||||||
|
"xK" 'spacemacs/drag-stuff-transient-state/drag-stuff-up
|
||||||
|
"xJ" 'spacemacs/drag-stuff-transient-state/drag-stuff-down)))
|
||||||
|
|
||||||
(defun spacemacs-editing/init-editorconfig ()
|
(defun spacemacs-editing/init-editorconfig ()
|
||||||
(use-package editorconfig
|
(use-package editorconfig
|
||||||
:init
|
:init
|
||||||
|
@ -226,18 +256,7 @@
|
||||||
"ilp" 'lorem-ipsum-insert-paragraphs
|
"ilp" 'lorem-ipsum-insert-paragraphs
|
||||||
"ils" 'lorem-ipsum-insert-sentences))))
|
"ils" 'lorem-ipsum-insert-sentences))))
|
||||||
|
|
||||||
(defun spacemacs-editing/init-move-text ()
|
(defun spacemacs-editing/init-move-text ())
|
||||||
(use-package move-text
|
|
||||||
:defer t
|
|
||||||
:init
|
|
||||||
(spacemacs|define-transient-state move-text
|
|
||||||
:title "Move Text Transient State"
|
|
||||||
:bindings
|
|
||||||
("J" move-text-down "move down")
|
|
||||||
("K" move-text-up "move up"))
|
|
||||||
(spacemacs/set-leader-keys
|
|
||||||
"xJ" 'spacemacs/move-text-transient-state/move-text-down
|
|
||||||
"xK" 'spacemacs/move-text-transient-state/move-text-up)))
|
|
||||||
|
|
||||||
(defun spacemacs-editing/init-origami ()
|
(defun spacemacs-editing/init-origami ()
|
||||||
(use-package origami
|
(use-package origami
|
||||||
|
|
|
@ -85,12 +85,10 @@
|
||||||
'evil-unimpaired/insert-space-above)
|
'evil-unimpaired/insert-space-above)
|
||||||
(define-key evil-normal-state-map (kbd "] SPC")
|
(define-key evil-normal-state-map (kbd "] SPC")
|
||||||
'evil-unimpaired/insert-space-below)
|
'evil-unimpaired/insert-space-below)
|
||||||
(define-key evil-normal-state-map (kbd "[ e") 'move-text-up)
|
(define-key evil-normal-state-map (kbd "[ e") 'drag-stuff-up)
|
||||||
(define-key evil-normal-state-map (kbd "] e") 'move-text-down)
|
(define-key evil-normal-state-map (kbd "] e") 'drag-stuff-down)
|
||||||
(define-key evil-visual-state-map (kbd "[ e") ":move'<--1")
|
(define-key evil-visual-state-map (kbd "[ e") 'drag-stuff-up)
|
||||||
(define-key evil-visual-state-map (kbd "] e") ":move'>+1")
|
(define-key evil-visual-state-map (kbd "] e") 'drag-stuff-down)
|
||||||
;; (define-key evil-visual-state-map (kbd "[ e") 'move-text-up)
|
|
||||||
;; (define-key evil-visual-state-map (kbd "] e") 'move-text-down)
|
|
||||||
;; navigation
|
;; navigation
|
||||||
(define-key evil-motion-state-map (kbd "[ b") 'previous-buffer)
|
(define-key evil-motion-state-map (kbd "[ b") 'previous-buffer)
|
||||||
(define-key evil-motion-state-map (kbd "] b") 'next-buffer)
|
(define-key evil-motion-state-map (kbd "] b") 'next-buffer)
|
||||||
|
|
Loading…
Reference in New Issue