빈 줄을 추가하는 vi 명령?


24

vi에서 o또는 O을 사용 하여 빈 줄을 추가하고 삽입 모드로 이동할 수 있습니다. 그러나 명령 모드를 유지하려면 어떻게해야합니까?

인터넷 검색에서 vimrc에 항목을 추가하라는 제안이 있지만 더 쉬운 방법이 있어야합니다 (항상 작동하는 것처럼 보입니다).

답변:


25

VIM FAQ 에 따르면 다음 :put명령을 사용할 수 있습니다 .

12.15. 삽입 모드로 들어 가지 않고 현재 줄 위 / 아래에 빈 줄을 삽입하려면 어떻게합니까?

": put"ex 명령을 사용하여 빈 줄을 삽입 할 수 있습니다. 예를 들어

: put = ''
: put! = ''

자세한 내용은

: 도움말 : 입력

그러나 실제로 추가하는 것이 더 쉽습니다.

map <Enter> o<ESC>
map <S-Enter> O<ESC>

당신에게 .vimrc. 이 방법으로 Enter또는 Shift-Enter을 눌러 normal mode현재 줄 아래 또는 위에 빈 줄을 삽입 할 수 있습니다 . 물론 대체의 <Enter><S-Enter>원하는 키.


15

사용의 매력의 일부는 VI텍스트를 조작하기위한 명령 모드 및 텍스트를 추가하기위한 편집 모드를 갖는 것이다. 이를 통해 CTRL을 누르지 않아도 무엇이든 달성 할 수 있습니다.

다른 제안은 효과가있을 수 있습니다-시도하지는 않았지만 약간의 문자가 필요하거나 VI환경을 너무 많이 조작하는 것 같습니다 .

사용해보십시오 o[ESC]다음에 .추가하거나 원하는 각각의 새로운 라인 5.5 개 라인을 추가 할 수 있습니다. 이것은 훨씬 빠르며 모든 설치시 항상 작동합니다 VI.


1
.반복 하는 데 사용할 수 있지만 <number>o<esc>예를 들면 다음과 같습니다.5o<esc>
bollovan

1
확실히 작동합니다. 그러나 여러 번 수행하기 전에 명령이 실제로 문서에 어떤 영향을 미치는지 알고 싶습니다. 나는 o'dVI에서 새 단락을 몇 번 추가 했는지 말할 수 없으며 , 예쁜 단락이 실제로 조심스럽게 깨진 / 단어 줄 바꿈 된 여섯 줄이라는 것을 알기 위해서입니다.
Glorytoad


1

현재 줄 다음에 빈 줄이 추가됩니다.

:put _ 

또는 시작시 줄을 지정하십시오.


0

Vim 7.3 : <number>o<esc>하나의 빈 줄만 만듭니다.


추가 <esc>하면 삽입 모드에서 명령 모드로 다시 이동합니다. 나는 그가 삽입 모드로 가지 않는 대답을 찾고 있다고 생각합니다.
Bernhard

오! <esc>로 삽입 모드를 종료하는 것을 잊었습니다. 이 경우 작동합니다. 다음 행에서 편집 한 행을 복제 할 수도 있습니다.
Hakim


0

명령 모드를 유지하면서 현재 행 뒤에 빈 행을 삽입하려면 다음을 사용하십시오.

: r !echo

이것은 " r파일의 ead"명령이지만 파일 이름을 지정하는 대신 쉘 명령 ( !) 의 출력을 읽도록 지시합니다 . 해당 쉘 명령은 echo단순히 빈 줄을 인쇄합니다. 빈 줄을 삽입 한 후에는 명령 모드를 유지합니다.


-2

아무도 이것을 언급하지 않은 것에 놀랐습니다.

명령 행 모드에서 'r'다음에 'Enter key'를 사용하십시오.

그래도 파티에 7 년 늦게 :)


1
이를 제외하고는 명령 모드에서 벗어나 현재 행을 빈 행으로 바꿉니다.
Jeff Schaller

@Jeff가 무슨 말을하는지 잘 모르겠습니다. 이 명령에 대한 나의 관찰은 (1) 현재 빈 줄에 있으면 작동하지 않으며 (2) 그렇지 않으면 커서 아래의 문자를 삭제합니다.
Scott

나는 틀렸다. r실제로 현재 문자를 대체합니다. 여전히 명령 모드로 이동합니다.
Jeff Schaller

동의했다. 이것은 제한 사항입니다. 비어 있지 않은 행 + 행 앞의 빈 공간에서 수행해야합니다. 이것을 생각하지 않았다. 감사.
Akhilesh Siddhanti
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.