fedepujol / move.nvim

Gain the power to move lines and blocks and auto-indent them!
GNU General Public License v3.0
345 stars 6 forks source link

Change indentation similar to vim-move #3

Closed MuhammadSawalhy closed 2 years ago

MuhammadSawalhy commented 2 years ago

fedepujol commented 2 years ago

It's a nice feature, thank for the suggestion! Would work in a first approach.

fedepujol commented 2 years ago

@MuhammadSawalhy Could you check PR #4 ?

MuhammadSawalhy commented 2 years ago

I have an issue here, I followed the instructions in the README file and added:

Plug 'fedepujol/move.nvim'

nnoremap <silent> <A-j> lua require('move').MoveLine(1)<CR>
nnoremap <silent> <A-k> lua require('move').MoveLine(-1)<CR>
vnoremap <silent> <A-j> lua require('move').MoveBlock(1)<CR>
vnoremap <silent> <A-k> lua require('move').MoveBlock(-1)<CR>
nnoremap <silent> <A-l> lua require('move').MoveHChar(1)<CR>
nnoremap <silent> <A-h> lua require('move').MoveHChar(-1)<CR>
vnoremap <silent> <A-l> lua require('move').MoveHBlock(1)<CR>
vnoremap <silent> <A-h> lua require('move').MoveHBlock(-1)<CR>

But look at this :point_down:

https://user-images.githubusercontent.com/42011920/148607388-5565b2c5-8aa2-4454-ba5c-fb950bd8d593.mp4

fedepujol commented 2 years ago

Well that's unexpected.. I was able to reproduced this on my machine. Doing this:

nnoremap <silent> <A-j> <cmd>lua require('move').MoveLine(1)<CR>
nnoremap <silent> <A-k> <cmd>lua require('move').MoveLine(-1)<CR>
vnoremap <silent> <A-j> <cmd>lua require('move').MoveBlock(1)<CR>
vnoremap <silent> <A-k> <cmd>lua require('move').MoveBlock(-1)<CR>
nnoremap <silent> <A-l> <cmd>lua require('move').MoveHChar(1)<CR>
nnoremap <silent> <A-h> <cmd>lua require('move').MoveHChar(-1)<CR>
vnoremap <silent> <A-l> <cmd>lua require('move').MoveHBlock(1)<CR>
vnoremap <silent> <A-h> <cmd>lua require('move').MoveHBlock(-1)<CR>

Solves half of the issue (MoveLine and MoveHChar works fine in both directions but MoveBlock and MoveHBlock doesn't).

I'll investigate further on how to fix it. For now, I've remove the mappings that cause this issue from the README and you could change your mappings to:

nnoremap <silent> <A-j> :MoveLine(1)<CR>
nnoremap <silent> <A-k> :MoveLine(-1)<CR>
vnoremap <silent> <A-j> :MoveBlock(1)<CR>
vnoremap <silent> <A-k> :MoveBlock(-1)<CR>
nnoremap <silent> <A-l> :MoveHChar(1)<CR>
nnoremap <silent> <A-h> :MoveHChar(-1)<CR>
vnoremap <silent> <A-l> :MoveHBlock(1)<CR>
vnoremap <silent> <A-h> :MoveHBlock(-1)<CR>