vim에서 줄을 위 또는 아래로 이동하는 명령 (또는 바로 가기)은 무엇입니까? 현재 진행중인 작업 과정은 줄을 잡아 당겨 (복사)하고 그 줄을 삭제하고 그 줄을 넣는 것입니다.
vim에서 줄을 위 또는 아래로 이동하는 명령 (또는 바로 가기)은 무엇입니까? 현재 진행중인 작업 과정은 줄을 잡아 당겨 (복사)하고 그 줄을 삭제하고 그 줄을 넣는 것입니다.
답변:
첫째, 당신은 잡아 당기 거나 삭제할 필요가 없습니다 . 후자는 또한 삭제 된 내용을 (기본 또는 지정된) 레지스터에 넣습니다. 따라서 ddp
/ ddkP
는 줄을 한 줄 아래로 이동하는 일반적인 명령입니다.
또는 다음 :move
명령을 사용할 수 있습니다 . :move +1
/ :move -2
; 이것은 레지스터를 방해하지 않으며 전체 범위를 이동할 수도 있습니다. 키 매핑을 쉽게 정의하여이를 단축 할 수 있습니다.
플러그인 (그리고 종종 함께 제공되는 추가 편의성)을 신경 쓰지 않으면 Tim Pope의 손상되지 않은 플러그인 과 LineJuggler 플러그인 은 라인을 이동 하기위한 ]e
/ [e
매핑을 제공 합니다 (여러 가지; 다양한 용도의 Tim은 처리에 중점을 둡니다) 윤곽)).
가장 쉬운 방법은 다음 :m+
과 같습니다. 또는 Ingo가 제안한 :m-2
약어입니다 :move
.
또는 시각적 모드 ( V)를 사용 하여 선 ( d/ x)을 자른 다음 붙여 넣기 전에 커서를 올바른 위치로 이동 한 후 붙여 넣습니다 ( p커서 P위 -커서 위) (요약하면 Vxp/ Vdp).
비주얼 모드에서 여러 줄 :m '>+1
을 이동할 때는 (한 줄 아래 :m '<-2
로 이동 ) 또는 (한 줄 위로 이동 ) 을 사용해야 합니다.
다음은 유용한 매핑 예제 ( Shift+ ↑/ Shift+↓)입니다.
nnoremap <S-Up> :m-2<CR>
nnoremap <S-Down> :m+<CR>
inoremap <S-Up> <Esc>:m-2<CR>
inoremap <S-Down> <Esc>:m+<CR>
이것은 Sublime Text ( Win / OSX ) 와 유사합니다 .
nnoremap <A-j> :m .+1<CR>==
nnoremap <A-k> :m .-2<CR>==
inoremap <A-j> <Esc>:m .+1<CR>==gi
inoremap <A-k> <Esc>:m .-2<CR>==gi
vnoremap <A-j> :m '>+1<CR>gv=gv
vnoremap <A-k> :m '<-2<CR>gv=gv
일반 모드 또는 삽입 모드에서 Alt-j를 눌러 현재 줄을 아래로 이동하거나 Alt-k를 눌러 현재 줄을 위로 이동하십시오.
시각적으로 선 블록을 선택한 후 (예 : V를 누른 다음 커서를 아래로 이동) Alt-j를 눌러 전체 블록을 아래로 이동하거나 Alt-k를 눌러 블록을 위로 이동하십시오.
또한보십시오:
ddkP
아래로 이동하는 것이 더 쉽습니다ddp
.