방금 keybindings.vim에 약간의 스 니펫을 작성하여 코드 블록을 이동 시켰습니다. 이것은 구식 수동 방식 (일반 모드에서는 시각 모드에서 구멍 블록을 선택하기 위해 {V}를 누른 다음 들여 쓰기를 이동하려면> 및 <과 동일한 방식으로 작동합니다.) : m + 및 : m-2 ~ 아래로 또는 위로 이동).vim bindkey-snipplet을 사용하여 코드 구멍 블록을 이동하십시오.
내가 얻는 문제는 들여 쓰기를 통해 (수평으로) 이동하는 것이지만 수직 이동을 위해서는 작동하지 않는다는 것입니다. 나는 정확히 같은 시퀀스를 수동으로 (예전처럼)했듯이, 그 이유를 찾을 수 없다. 그것은 매력처럼 작동한다.
우선 : Vim 7.2 (Linux) 및 Vim 7.3 (MacOS)에서 스 니펫을 테스트했습니다. 둘째 :
vnoremap < <gv
... 그리고 : 나는를 넣으면 알 수
vnoremap > >gv
... 내 키맵에, 내가 잃어버린없이 영상 선택된 블록을 이동 할 수 있습니다 시각적 선택 ... 이것에도 불구하고 수동으로 ESC로 시각적 선택을 처리 할 필요가 없도록이 작업을하고 싶습니다. {kV} k
아무도 말해 줄 수 없습니까? 내가 잘못하고있어? 미리 감사드립니다. 감사합니다. :m'>+
까지 :m+
에서 단락을 이동하는 매핑에 사용
"============================================================================
"Ctrl + Shift + > [normal or insert mode] - move entire block around
"============================================================================
nnoremap <silent> <C-S-Right> :let savecur=getpos(".")<CR>{V}><CR>
\:call setpos('.', savecur)<CR>4l
inoremap <silent> <C-S-Right> <Esc>:let savecur=getpos(".")<CR>{V}><CR>
\:call setpos('.', savecur)<CR>5li
nnoremap <silent> <C-S-Left> :let savecur=getpos(".")<CR>{V}<<CR>
\:call setpos('.', savecur)<CR>4h
inoremap <silent> <C-S-Left> <Esc>:let savecur=getpos(".")<CR>{V}<<CR>
\:call setpos('.', savecur)<CR>3hi
nnoremap <silent> <C-S-Up> :let savecur=getpos(".")<CR>{V}:m-2<CR>
\:call setpos('.', savecur)<CR>k
inoremap <silent> <C-S-Up> <Esc>:let savecur=getpos(".")<CR>{V}:m-2<CR>
\:call setpos('.', savecur)<CR>ki
nnoremap <silent> <C-S-Down> :let savecur=getpos(".")<CR>{V}:m+<CR>
\:call setpos('.', savecur)<CR>j
inoremap <silent> <C-S-Down> <Esc>:let savecur=getpos(".")<CR>{V}:m+<CR>
\:call setpos('.', savecur)<CR>ji
"============================================================================
@marcogomez :이 방법이 도움이되지 않으면 알려주세요. –