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


80

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

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


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

답변:


122

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

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


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

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

2
숫자 뒤에 숫자를 입력하여 여러 줄 아래로 이동할 수도 있습니다 enter(절대 줄 번호의 경우 콜론으로 시작). 당신이 사용하는 경우 j및 k및 일반 키보드 레이아웃, 너무 도움이되지 않을 수도 있습니다,하지만 화살 사용 콜맥 사용자로, 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.