다음 중 하나를 사용할 수 있다는 것을 알고 있습니다.
- Home 삽입 모드
- Esc+ i삽입 모드를 종료하고 다시 입력하여 효과적으로 줄의 시작 부분으로 이동합니다.
그러나 어느 쪽도 나를 만족시키지 않습니다. 첫 번째 경우에 나는 Home맹목적으로 칠 수 없기 때문에 머리를 기울여야 합니다. 두 번째 경우에는 왼팔이 홈 행을 떠나야 Esc하는데이 역시 성가시다.
이견있는 사람?
다음 중 하나를 사용할 수 있다는 것을 알고 있습니다.
그러나 어느 쪽도 나를 만족시키지 않습니다. 첫 번째 경우에 나는 Home맹목적으로 칠 수 없기 때문에 머리를 기울여야 합니다. 두 번째 경우에는 왼팔이 홈 행을 떠나야 Esc하는데이 역시 성가시다.
이견있는 사람?
답변:
Ctrl+ O삽입 모드에서는 키를 한 번만 누르면 명령 모드로 전환됩니다. 따라서 Ctrl+ Othen Shift+ I는 원하는 것을 달성해야합니다.
Ctrl-o다음 0(약간 더 효율적으로보다 Ctrl-o뒤에 Shift-I), 당신이 삽입 모드에서 돌아올 것이다으로 자동. 어떤 경우에는 Ctrl-o다음에 오는 ^것이 더 좋을 수 있습니다 (줄의 공백이 아닌 첫 번째 문자로 이동).
<C-O>같지 <C-[>않거나 <Esc>비슷해 보일 수 있습니다. 차이점은 일반 이스케이프 + <삽입 모드로 다시 들어가기위한 것>로 편집하면 두 번의 편집이 남고 <CO>는 하나만 남습니다. 이렇게하면 더 깔끔한 실행 취소 기록을 유지하고 해당 삽입물을 다시 붙여 붙여 넣을 수 있습니다. 일부 Vim'ers는 그런 것에주의를 기울여야한다고 주장합니다.
I(대문자 i)를 사용하여 삽입 모드로 들어갈 수 있습니다 .
줄의 시작 부분에 커서를 놓습니다.
마찬가지로 A줄 끝에 무언가를 추가 하는 데 사용할 수 있습니다 .
그러나 이미 삽입 모드에있는 동안 이동 문제를 실제로 해결하지는 못합니다.
방금 삽입 모드에 대한 도움말을 확인했습니다. 삽입 모드에서 줄의 시작 부분으로 이동할 키 조합이 없습니다.
다른 아이디어 : 삽입 모드에서만 새 명령 다시 매핑
inoremap <C-i> <Home>
Ctrl + a와 Ctrl + e가 각각 줄의 시작과 끝에 매핑되어 있습니다. 이것은 대부분의 bash 명령 줄의 동작과 일치합니다. 나를 위해 잘 작동합니다.
inoremap <C-e> <Esc>A
inoremap <C-a> <Esc>I
<C-e>커서 아래의 문자를 복사 / 쓰기 ( <C-y>커서 위에 있음), <C-a>삽입하십시오 .- 레지스터 (점 레지스터). 해당 레지스터는 삽입 모드를 종료 할 때 방금 입력 한 내용으로 채워집니다 (Ctrl-c를 사용하는 경우에도 (여러 이유로 익숙해 져서는 안 됨)).
가장 좋은 방법은 작업을 다른 키 에 다시 매핑하는 것 입니다 (아이디어 를 보려면 <Ctrl-Home>을 다시 매핑하여 파일의 첫 번째 줄로 이동하는 방법? 참조)
이 "기능"을 얼마나 자주 사용하는지 생각하고이를 키 입력에 적절하게 매핑합니다.
저에게 효과가 있었던 지름길 (근육 기억과 직관성 모두)은 "현재 줄의 시작 부분에 삽입" 에 매핑 __(double _)하는 것입니다.
이론적 해석:
_ 이미 줄의 시작으로 이동_은 어떤 동작과도 충돌하지 않습니다 (이미 줄의 시작 부분에 있습니다).vimscript :
"insert at start of current line by typing in __ (two underscores)
function DoubleUnderscore()
if v:count == 0 && getcurpos()[2] == 1
:silent call feedkeys('I', 'n')
else
:silent call feedkeys('^', v:count + 'n')
endif
endfunction
nnoremap <silent> _ :call DoubleUnderscore()<CR>
쉬운 대안 있기 때문에이 복잡 nnoremap __ _I원인 눌러에 지연 정력 _구별 _하고 __.
ctrl+o then 0
| |
letter number