단일 문자를 삽입 한 다음 삽입 모드를 종료하는 방법이 있습니까?


10

텍스트를 살펴볼 때, 예를 들어 특정 단어 나 따옴표 등 주위에 백틱을 추가하면 각 삽입 후 Esc 또는 Ctrl- [를 눌러야한다는 것이 짜증납니다. 삽입물 (및 추가 물)이 다르므로 .별로 도움이되지 않습니다.

r단일 문자 다음에 일반 모드로 돌아가는 것과 비슷한 것이 있습니까? 그러나 대체 모드 대신 삽입 모드를 사용합니까?


3
텍스트를보다 의미있는 방식으로 작업 하려면 vim-surround 플러그인 사용 (또는 확장)을 고려해야 합니다.
VanLaser

답변:


11

없는 경우 (내가 보지 않은 경우)이 매핑을 사용할 수 있습니다 .vimrc.

nnoremap <C-I> i <ESC>r

그것은 inserts, 공간을 배치하고, ESC유인원이며, 단일 문자 replace를 시작합니다 . 에 매핑됩니다 CtrlI.

그것은 해킹이며 문자를 입력하기 전에 탈출을하면 교수형 공간을 남겨 두지 만 아무것도 아닌 것보다 낫습니다!


1
나쁘지 않습니다 ... 아무도 더 나은 것을 찾지 못하면 아마도 사용할 것입니다. :)
와일드 카드

2
@Wildcard 나는이 유스 케이스를 실제로 깨닫지 않고 얼마나 많이 실행하는지 몰랐습니다. 좋은 질문 :) 나는 그것을 내 자신의 vimrc에도 추가했습니다.
Qix-MONICA가 5

2
나는 하루 종일 마크 다운을 수정하는 데 보냈다. 기울임 꼴, 인라인 코드, 헤더 들여 쓰기, 하이퍼 링크 ... 모두 하나의 문자 삽입. :) 실제로 솔루션은 완벽합니다. 지금부터 사용하겠습니다.
와일드 카드

2
단점 : .명령으로 반복 할 수 없습니다 . :(
Wildcard

1
불행히도 @Wildcard는 약간의 연구를 한 후에을 .사용하지 않는 한 수동 반복 분기를 만드는 방법이 없습니다 repeat.vim.
Qix-MONICA가 MISTREATED

0

커서 위치 대신 단어 끝에 문자를 삽입하려면

nnoremap <C-a> a <ESC>r

이에 매핑됩니다 Ctrl + a. 물론 다른 것으로 매핑 할 수도 있습니다.

나는 내 안에 두 가지가있어서 .vimrc많이 주저하지 않습니다. :)

" Insert char at cursor position
nnoremap <C-i> i <ESC>r
" Append char after cursor position
nnoremap <C-a> a <ESC>r
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.