빈 줄의 특정 열로 이동


5

예를 들어, 다른 텍스트가없는 행의 70 번째 열에 날짜를 넣어야하는 워드 프로세싱 상황에 VIM을 사용하려고합니다. 예를 들어, 현재 줄 1에 텍스트가없고 열 70에 무언가를 삽입하려는 경우 열 70에 도달하는 방법을 알 수있는 유일한 방법은 삽입 모드에서 스페이스 바를 치는 것입니다. 매우 느린 프로세스입니다.

VIM에서 달성하려는 작업을 수행 할 수있는 방법이 있습니까? 즉, 빈 줄의 특정 열로 넘어갑니다. 70l(70 칸 오른쪽으로 이동) 과 같은 작업을 수행 할 수 있다고해도 놀라운 일이지만 텍스트가없는 줄에서는 작동하지 않습니다.

답변:


11

또한 캐릭터가 있는지 여부에 관계없이 커서를 원하는 속도로 조정할 수있는 virtualedit를 고려할 수도 있습니다.

사용 (약식 set ve=all)

:set virtualedit=all

그것을 가능하게합니다. 그런 다음을 사용 70|하여 70 열로 이동하십시오. 에 걸릴:help 'virtual edit'

사용하지 않으려면 :set virtualedit=(짧은 형식 set ve=)


감사합니다, 그것은 훌륭하지만 설정을 해제하는 방법, 문서에서 말하지 않거나, 말하지 set novirtualedit않거나,하지 않습니다set novirtualedit=all
BrainLikeADullPencil

이것은 훌륭한 답변입니다. virtualedit옵션 에 대해 몰랐습니다 ! @BrainLikeADullPencil : 기본값은 set virtualedit=인수없이입니다. (편집-오, 그는 대답에서도
역시이

3

당신이 할 수있는 70i다음 esc(그건 70ispacebarEsc).

특정 사례에 대해 70 번째 열에 날짜를 추가하십시오.

  • 69ispacebarEsc$

    이것은 69 개의 ​​공백을 생성하고 커서는 69 번째 열에있을 것입니다.

  • :r !date Enter

    date명령 출력을 편집 버퍼 (다음 행)에 복사합니다 .

  • backspaceJ

이 단계가 끝나면 70 번째 열부터 날짜가 표시됩니다.

아마도 더 쉬운 방법이 있지만 적어도이 방법은 확실히 작동합니다.


정말 감사합니다. 나는 동의하기 전에 생각해 다른 사람들이 볼 수
BrainLikeADullPencil

backspace J실제로 VIM에게 무엇 을 지시하고 있습니까? 이 상황에서 작동하지만 그것이 제공하는 지시를 알고 싶습니다.
BrainLikeADullPencil

당신이 그것을 받아들이면, 좋습니다! 그러나 이것이 받아 들여지는 대답이 아니더라도, 그것이 가치가 있다고 생각한다면, 항상 그것을
찬성

1
backspace이전 줄로 이동하는 방법입니다. k문자를 사용하여 동일한 작업을 수행 할 수도 있습니다 (그러나 백 스페이스는 이전 줄의 끝으로 이동합니다. 실제로 필요하지 않더라도 직관적으로하고 싶었습니다). J현재 줄을 다음 줄과 결합하여 효과적으로 하나의 큰 줄로 만듭니다. 이 :r명령은 다음 줄에 출력을 삽입 하므로 결합해야했습니다.
Valmiky Arquissandas

솔루션은 VI에 가장이지만, virtualedit 응답 (IMO) 정력에 좋다
BrainLikeADullPencil

1

가장 좋은 방법은 아니지만 shiftwidth단일 탭의 크기 인을 수정할 수 있습니다 . 명령 모드에서 입력 :set shiftwidth=1한 다음 70 열에 원하는 내용을 입력 한 후 명령 : V(대문자 'v')를 사용하여 현재 행을 강조 표시 한 다음을 입력하십시오 70>. 70 열 이상의 텍스트를 탭해야합니다.

그런 다음 shiftwidth탭을보다 일관되게 만들 려면 등을 4 로 설정하는 것이 좋습니다 . 이 작업이 아닌 이상 자주 수행하며 탭을 사용할 필요가 없습니다.


흠, 난 (참조 내가 전환 할 수있는 WordPressing 기능을 drbunsen.org/writing-in-vim 저는 거기에 시프트 폭을 넣을 수도 있겠죠) 내가 WP 모드 떠날 때 다음 다시 되돌아갑니다
BrainLikeADullPencil

이것은 좋은 생각이지만 :set expandtab활성화 된 경우에만 단일 탭 문자 대신 실제로 70 개의 공백을 쓸 수 있습니다.
Valmiky Arquissandas

0

다른 방법은 tabstop70으로 설정 expandtab하고 탭을 공백으로 확장 하도록 설정할 수 있습니다 .

:se ts=70
:se et

그런 다음 탭 키를 눌러 70 번째 열에 도달 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.