Vim에서 앞에 빈 줄, 끝에 또 다른 빈 줄, 두 줄 사이에 새 줄을 만드는 방법은 무엇입니까?

Vim에서 앞에 빈 줄, 끝에 또 다른 빈 줄, 두 줄 사이에 새 줄을 만드는 방법은 무엇입니까?

예를 들어 다음 줄이 있습니다.

one line
another line
one more line
other line

그러나 그 사이에 새 줄을 추가하고 싶습니다. 단, 앞에는 빈 줄이 있고 뒤에는 빈 줄이 있습니다.

one line
another line

MY NEWLY inserted line;

one more line
other line

보시다시피 앞에 빈 줄이 있고 MY NEWLY inserted line;뒤에도 빈 줄이 있습니다.

간단한 방법으로 어떻게 달성할 수 있나요?

o보통 , ESC, o, ESC, 을 사용합니다 O. 그러나 나는 이것이 최선의 방법은 아니라고 생각한다. 아시는 분 도와주세요. 감사해요.

답변1

  • "다른 줄"에 커서를 놓습니다.
  • 에 따르면 o,Enter
  • 유형MY NEWLY inserted line
  • 에 따르면 Esc,o

또는

  • "다른 줄"에 커서를 놓습니다.
  • 에 따르면 2, o,Esc
  • 을 누르고 O입력하세요.MY NEWLY inserted line

답변2

o+ 의 중복을 피하기 위해 Esc다음이 있습니다.깨지지 않은 플러그인(이건 제가 기사에서 언급한 적이 있어요.유제[내가 대답했습니다), 이는 삽입 모드로 전환하지 않고 빈 행을 삽입하기 위한 일반 모드의 매핑(다른 매핑 및 ]기반 매핑 도 포함)을 제공합니다 .

라인별 매핑이 있습니다. [<Space>그리고 ]<Space>커서 줄 앞과 뒤에 개행을 추가합니다. 현재 행을 그 위나 아래의 행과 바꿉니다 [e.]e

반품:

. 명령은 모든 연산자 매핑에서 작동하며, 설치한 경우 > 줄별 매핑에서도 작동합니다.vim 반복.

따라서 삽입 모드를 피하면서 다음과 같이 여러 개의 빈 줄을 추가할 수 있습니다(예를 들어 3개의 빈 줄을 사용하겠습니다).

3[<Space>

그런 다음 삽입 모드로 가서 입력하세요!

처음에는 이 매핑이 다소 어색하고 직관적이지 않다고 생각했지만 이제는 하루에도 여러 번 사용하고 그리워집니다. 플러그인의 다른 매핑 [과 기본 매핑을 사용하면 ] 모든 것이 자연스러워집니다.

예를 들어 현재 행을 위의 [count] 행 과 바꿀 수 있습니다 [e(또는 위 행을 로 바꿀 수 있습니다 ). ]e따라서 몇 개의 행을 바꾸려면 ddjp"삭제, 한 행 아래로 이동한 다음 아래로 이동"을 수행하거나 간단히 수행할 수 있습니다 ]e.

답변3

another line( 귀하의 예에서는) 뒤에 뭔가를 추가하려는 줄로 이동하고 ,

  1. 새로운 라인을 열려면 누르십시오 o.
  2. 새 줄을 입력하기 전에 Enter다시 누르면 빈 줄이 삽입됩니다 .
  3. 두 번 누르면 Enter줄이 종료되고 방금 입력한 줄 뒤에 빈 줄이 생성됩니다.

완료( Escape일반 모드로 돌아가려면 누르세요).

이는 sed스크립트 에 해당합니다.

/^another line$/ a\
\
MY NEWLY inserted line;\
\

아니면 ed회의 에

1;/^another line$/ a

MY NEWLY inserted line;

.

관련 정보