예를 들어 다음 줄이 있습니다.
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
( 귀하의 예에서는) 뒤에 뭔가를 추가하려는 줄로 이동하고 ,
- 새로운 라인을 열려면 누르십시오 o.
- 새 줄을 입력하기 전에 Enter다시 누르면 빈 줄이 삽입됩니다 .
- 두 번 누르면 Enter줄이 종료되고 방금 입력한 줄 뒤에 빈 줄이 생성됩니다.
완료( Escape일반 모드로 돌아가려면 누르세요).
이는 sed
스크립트 에 해당합니다.
/^another line$/ a\
\
MY NEWLY inserted line;\
\
아니면 ed
회의 에
1;/^another line$/ a
MY NEWLY inserted line;
.