Mac에서 vi의 INSERT 모드에서 홈 / 종료


1

Mac에서는 INSERT 모드가 아닌 경우 vi에서 줄의 시작과 끝으로 이동할 수 있습니다.

^(라인의 시작)
$(라인의 끝)

예를 들어 여기에 설명되어 있습니다. 터미널 / VIM 편집기에서 "end", "home", "page up"및 "page down"을 어떻게 수행합니까?

그러나 INSERT 모드에있을 때 vi에서 줄의 시작과 끝으로 어떻게 가야합니까?

cmd+ / 창 사이를 스크롤
alt+ 한 단어 뒤로 이동
ctrl+ / 아무것도하지 않음
shift+ / 뒤로 이동 / 한 단어 앞으로
ctrl+ cmd+ / 뒤로 이동 / 한 단어 앞으로
fn+ left/ 터미널 버퍼의 시작 / 끝으로 이동

아래 @romainl에서 제공하는 솔루션 요약 :
터미널> 기본 설정> 설정> 키보드> +
키 : 홈, 수정 자 : 없음, 동작 : 텍스트 보내기, \ 017 ^
키 : 끝, 수정 자 : 없음, 동작 : 텍스트 보내기, \ 017 $

이 매우 깔끔한 솔루션을 발견하여 키 스트로크를 절약했습니다 . 삽입 모드에서 줄의 시작 부분으로 이동

ctrl+ o뒤에 0(홈) 또는 $(종료) 또는 ^(공백이 아닌 첫 문자)

다음은 매우 정교한 답변입니다. 삽입 모드에서 텍스트 탐색


개인의 관점은 실제로 질문에 가치있는 것을 추가하지 않습니다. 이 주석을 제거하고 질문이 정확히 무엇에 집중할 수 있습니까?
Ramhound

답변:


1

첫째, 당신은 삽입 모드에서 때 커서를 이동 안된다.

둘째, 일부 Mac 키보드 에만 <Home>/ <End>키 가 없습니다 . 사용하기에 너무 고통스러운 컴퓨터의 모든 현금을 꺼내기 전에 자세히 살펴 봐야합니다.

셋째, 물리적 <Home>/ <End>키 가 없을 때 다음 단축키를 사용할 수 있습니다 .

  • fn+ 에 대한<Home>
  • fn+ 에 대한<End>

넷째, Terminal.app은 캡처 <Home>/ <End>당신은 빔 수신 할 경우 "환경 설정"창에서 그 바인딩을 편집해야합니다 그래서 어쨌든 <Home>하고 <End>.

의 경우 <Home>, 언론은 Ctrl+o(는 삽입 \017후) ^:

집

의 경우 <End>, 언론은 Ctrl+o(는 삽입 \017후) $:

종료


0) 감사합니다. 일했다. 당신은 천재입니다. 1) Linux 및 Windows에서 할 수 있으므로 Mac에서 할 수 있기를 원합니다. 2) 유닉스 기반 OS를 원했고 작업은 집에서 내 PC에서 실행하는 민트보다 훨씬 적은 우분투 만 지원합니다. 3) 감사합니다. INSERT 모드에서는 작동하지 않습니다. 4) 솔루션 주셔서 감사합니다. 내 질문에 귀하의 솔루션에 대한 간단한 요약을 추가했습니다. 감사!
tommy.carstensen

터미널 명령 줄에서 홈 키를 누르지 않으면 서면 명령이 실행되기 때문에 홈 키를 누르지 않도록주의해야합니다. 즉 수정을 적용한 후.
tommy.carstensen

iterm을 설정하여 매우 특별한 시퀀스를 보내고 해당 시퀀스를 Vim에 매핑 할 수 있습니다.
romainl

나는 그것을 시도 할 것이다. \ 033 [F의 경우 F, \ 033 [H의 경우 H]를 수행하면 Home 및 End는 터미널에서 작동하지만 Vim에서는 작동하지 않습니다.
tommy.carstensen

0

MacVim과 함께 배포 된 시스템 gvimrc 파일에는 두 가지 매핑 세트가 있습니다. 하나는 기본적으로 활성화되어 있고 다른 하나는 비활성화되어 있습니다. 흥미롭게도 삽입 모드에서 줄의 시작 / 끝으로 이동하는 명령이 포함되어 있지 않지만 여전히 살펴볼 가치가 있습니다.

:e $VIM/gvimrc

다음과 같이 vimrc 파일에 무언가를 추가 할 수 있습니다.

inoremap <D-Left> <Home>
inoremap <D-Right> <End>

약간의 테스트에 따르면 GUI에서는 작동하지만 터미널에서는 작동하지 않으므로 gvimrc 파일로 이동해야합니다. 어때요?

inoremap <C-V><S-Left> <Home>
inoremap <C-V><S-Right> <End>

문자 그대로 해당 명령을 입력하지 않는 경우 : <C-V>한 문자이고 <S-Left>다른 문자 입니다. 내 컴퓨터에서 Mac의 Terminal.app을 사용하여 문자 그대로 입력하면 이와 동일한 효과가 나타납니다.

inoremap <Esc>OC <End>
inoremap <Esc>OD <Home>

GUI를 사용할 때 시스템 gvimrc 파일의 설정으로 덮어 쓸 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.