vi / vim의 현재 위치에서 커서 x 줄 이동


80

vi / vim에서 상대적인 줄 수만큼 커서를 이동하는 방법이 있습니까? 제거하려는 코드 블록 아래에 커서가 10 줄 있다고 가정합니다. 상대적인 순서로 표시된 줄 번호가있는 경우 "10 줄 위로 점프 명령"을 사용하는 것이 좋습니다.

아니면 절대 줄 번호를 표시하고 xgg로 이동하는 것이 좋습니다. 여기서 x는 줄 번호입니다.


여러 번 반복해야하는 경우 : superuser.com/questions/429917/…
toliveira

답변:


122

물론 방법이 있습니다. jk아래로 이동 한 라인까지, 그래서 10j하고 10k아래로 이동하고 10 줄까지. 그 앞에 숫자를 넣어 어떤 동작이든 반복 할 수 있습니다.

set relativenumber이것이 당신이 많이하는 일이라면 절대 숫자 대신 현재 줄을 기준으로 줄 번호를 인쇄하여 계산을 절약하는 데 도움이 될 수도 있습니다 .


감사! 나는 카운트가 이동 명령에도 적용될 것임을 알아 냈어야했다. 당신은 내 하루를 만들었습니다!

1
Vim 7.4부터 .vimrc set relativenumber및 .vimrc에 다음을 추가하여 상대 및 절대 줄 번호를 동시에 볼 수 있습니다 set number. 이렇게하면 커서가있는 줄의 절대 줄 번호와 함께 상대 줄 번호가 제공됩니다.
Isaac Gregson

2
숫자 뒤에 숫자를 입력하여 여러 줄 아래로 이동할 수도 있습니다 enter(절대 줄 번호의 경우 콜론으로 시작). 당신이 사용하는 경우 jk및 일반 키보드 레이아웃, 너무 도움이되지 않을 수도 있습니다,하지만 화살 사용 콜맥 사용자로, enter콜맥보다 도달하기 쉽다 j(쿼티 y키)
SnoringFrog

49

10 줄을 위아래로 이동하면 작업 및 다른 옵션에 적합하지 않을 수 있습니다. 다른 움직임을 고려하십시오.

Ctrlf, Ctrlb페이지 앞뒤.

}, {한 단락 씩 앞뒤로 이동합니다.

vimrc 파일에 다음 줄을 추가하여 10j키 에 바인딩 하는 규칙을 작성할 수 있습니다 J. map <S-j> 10j

그러나 유용한 기존 J명령을 덮어 쓰게됩니다 (두 줄 결합). 10j/에 대해 잘 배치 된 미사용 키 조합을 찾는 10k것이 어려울 수 있으므로 제가 언급 한 기존 동작을 사용하는 것이 좋습니다.

: 당신은 또한 당신이 수행하여 당신이 볼 수있는 단어 뒤로 이동 수 있다는 것을 알고 할 수 있습니다 ?someword당신이 수행하여 볼 수있는 단어 앞으로와 /someword. 이것은 10 줄을 위 / 아래로 이동 한 다음 커서를 정확한 위치로 재배치하는 것보다 빠를 것입니다. 문제의 줄에 대한 간단한 검색 문자열이 생각 나지 않으면 말한대로 항상 줄 번호로 이동할 수 있습니다 ( xgg).


페이지 위아래로 내가 찾던 것을 성취했습니다!
jeremyjjbrown

1
나는 항상 ctrl-f와 ctrl-b를 사용하지만 코드 편집을위한 최상의 세분 성인 {,}를 간과했습니다! 감사!
Thomson Comer 2014 년

이동해야하는 라인 수를 정확히 아는 것은 거의 불가능합니다. {및}는 내가 선호하는 옵션입니다.
Andrejs

12

나는 vim을 엉망으로 만들었고 -당신을 위로 +이동시키고 아래로 이동시키는 것을 발견했습니다 .

10-

또는 k 커서 이동에 k가장 익숙하기 때문에 사용할 수 있습니다 .hjl


3
앞으로 이동의 경우, enter같은 작동 +숫자 후, 대부분의 시간에 도달하기 쉽습니다
SnoringFrog

@SnoringFrog 예,하지만 이것은 위아래 사이에 어떤 관계가있을 수 있도록하기위한 것입니다. 어쨌든 hjkl이 가장 빠르기 때문에 누군가가 실제로 이렇게 위아래로 움직이는 것을 의미하지는 않습니다.
Cilan 2015-06-10
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.