vim emacs 명령으로 사용자 정의 (삽입 모드 만 해당)


10

나는 emacs사용자 였으며 로 전환해야 vim합니다. 그러나 vim삽입 모드 에서 몇 가지 기본 emacs 명령이 누락되었습니다 .

  1. C-A
  2. C-E
  3. C-K
  4. C-Y
  5. C-x C-s
  6. ... 그리고 다른

나는 Escape다음 키 중 일부를 누른 다음 키를 누를 수 있음을 알고 있습니다 i.

  1. ^
  2. $
  3. d$
  4. p
  5. :w [시작하다]
  6. ...

그러나 vim삽입 모드 를 유지하고 Escape/ i키를 누르지 마십시오 .

웹에, 나는이에 대한 정의를 발견했다 emacs( vi-mode, vip, viper, vimpulse, vim-mode, evil). 그러나 정반대를 찾지 못했습니다 : 명령 vim을 사용 emacs하도록 사용자 정의하십시오 ...

삽입 모드emacs명령 에만 관심이 있습니다. 로 그냥 몇 가지 기본 명령어, 명령 : , , , , (네는 기본 아닌 너무 좋아 명령하지만).vim bashC-AC-EC-KC-YC-UC-Uemacs

답변:


7

제공된 답변 은 원래 질문을 완전히 해결하지 못하는 부분적인 솔루션 이므로 4 년 후이 질문에 답변하고 있습니다.

나는 올리버와 똑같은 욕망을 가지고 있으며 완전한 해결책을 제시하고 싶었습니다. 나는 다른 관점에서 왔습니다-bash에서 Emacs 라인 편집에 익숙하지만 문제는 동일합니다. Vim 삽입 모드로 전환하고 싶습니다 (전용).

다음은 olibre가 제기 한 원래 질문의 모든 키 바인딩 요청과 몇 가지 추가 사항을 설명합니다.

" Mimic Emacs Line Editing in Insert Mode Only
inoremap <C-A> <Home>
inoremap <C-B> <Left>
inoremap <C-E> <End>
inoremap <C-F> <Right>
" â is <Alt-B>
inoremap â <C-Left>
" æ is <Alt-F>
inoremap æ <C-Right>
inoremap <C-K> <Esc>lDa
inoremap <C-U> <Esc>d0xi
inoremap <C-Y> <Esc>Pa
inoremap <C-X><C-S> <Esc>:w<CR>a

이 시점에서 작동하지 않는 유일한 바인딩은 <Alt-B>and <Alt-F>입니다. 때마다 나는 결합 <Esc>, <Alt>또는 <Meta>조합, GVIM (Windows의 v7.4)는 악센트 문자를 출력합니다. 이 문제에 대한 해결책이 있으면이 답변을 자유롭게 편집하십시오. 특수 문자를 사용하기 위해 다른 게시물 의 제안 에 따라 작동하도록 Alt 조합을 얻었 습니다 . 위에 삽입했습니다.

편집하다

-(원래 답변 포스터가 아닙니다 편집)-

Neovim 및 Windows 10에서 다음을 사용했습니다. 다른 OS에서는 "alt"가 다른 곳에서 "meta"일 수 있으므로 "A"를 "M"으로 변경해야 할 수 있습니다. 나는 그것을 충분히 연주하지 않았습니다.

inoremap <A-x> <Esc>:
inoremap <A-f> <Esc>lwi
inoremap <A-b> <Esc>bi
inoremap <A-S-f> <Esc>lWi
inoremap <A-S-b> <Esc>Bi

작은 제안 : 나는 <Esc>pa더 나은 것 같아요<C-Y>
Yamaneko

<C-K>커서가 가장 왼쪽에있을 때 작동하지 않는 것 같습니다 . 전체 행을 삭제해야하지만 Esc>lDa첫 번째 문자는 삭제되지 않은 상태로 둡니다.
잉 시옹

7

삽입 모드의 :imap명령을 명령을 사용하여 아무 것에 나 매핑하거나을 사용하여 입력을 저장할 수 :im있습니다. 첫 번째 매핑의 경우 (일반 모드에서) 다음을 입력 할 수 있습니다.

:im <C-A> <esc>^i

일반 모드 (이스케이프 포함) ^로 돌아 가면을 눌러 삽입 모드로 돌아갑니다. 자세한 내용은 도움말을 참조하십시오.

:help :imap 또는 더 짧은 : :h :im

기존 키 매핑을 덮어 쓰고있을 수 있습니다. .vimrc모든 문서에 대해 원하는 경우 명령을 구성 파일에 넣으십시오 .


당신에게 팁을 주셔서 감사합니다 +1 :-) 그러나 이런 종류의 매핑이 이미 구성되어 있는지 알고 있습니까? (예 : 기존 키 매핑 덮어 쓰기 없음). 그러한 프로젝트 / 구성을 어디에서 찾을 수 있습니까? 나는 직접 시도하고 중요한 것을 놓치는 것보다 이미 수행하고 강력한 것을 재사용하는 것을 선호합니다. 건배
올리버

질문을 superuser.com에 요청 / 이동해야합니까 ?
olibre

감사! (logic) 명령으로 명령이 존재하는지 확인할 수 있습니다 :im <c-a>. '매핑을 찾을 수 없습니다'라고 표시되면 아무 것도 덮어 쓰지 않습니다. 나는 그것이 그것보다 훨씬 더 강해질 것이라고 생각하지 않습니다 ...
Joker

흠 ... 코드를 작성하고, 구성을 테스트 한 다음, 버그를 수정 한 후 다시 ...... 모든 vim명령을 모릅니다 ... :im마지막 인수 목록을 찾을 수있는 곳을 알고 있습니까? 참고로, 나는 또한 다음과 같이 사용하고 bash명령 : M-backspace, M-F, M-B, M-D누군가가 이미 및 공유 그의 작품을 할 경우 ... 그것은 좋은 것입니다되지는? (같은 일이 evil) 그러므로 나는 그의 재사용 할 수있는 :im나 자신에 의해 (발생하기 쉬운 오류)를하지 않고 키 매핑을. 무슨 말인지 알 겠어?
올리버 September

정확히 무슨 뜻인지 이해하지 못할 수도 있지만를 입력하여 비표준 키 매핑을 모두 찾을 수 있습니다 :im. 더 높은 수준의 의견을 내기 위해 : 항상 자신의 플러그인, 특수 모드 또는 vimrc 파일을로드하지 않고 여러 플랫폼 / 컴퓨터에서 Vim을 사용하려면 배우고 사용하는 것이 가장 좋습니다 표준 Vim 명령을 최대한 많이 사용하십시오. 몇 가지 주요 매핑을 직접 만들었지 만 항상 표준 Vim-alternative를 찾으십시오. 그리고 그것은 매우 빠를 수 있습니다. 내가 한 일은 map <esc>으로 ;jnr 1 매핑을 ;jInr 2 처럼 쉽게 만드는 것 ;jA입니다.
Joker

6

완전한 대답은 아니지만 Vim의 " 쉬운 모드 "( vim -y)를 알고 있습니까? 항상 defaut에 의해 편집 모드에 있으며 원하는 것을 많이 수행하므로 아무것도 설치하거나 사용자 정의 할 필요가 없습니다. 그것은에서 CTRL-A, C, V, X, Y 등을 수행하는 키 목록 :

Key mappings:
    <Down>      moves by screen lines rather than file lines
    <Up>        idem
    Q           does "gq", formatting, instead of Ex mode
    <BS>        in Visual mode: deletes the selection
    CTRL-X      in Visual mode: Cut to clipboard
    <S-Del>     idem
    CTRL-C      in Visual mode: Copy to clipboard
    <C-Insert>  idem
    CTRL-V      Pastes from the clipboard (in any mode)
    <S-Insert>  idem
    CTRL-Q      do what CTRL-V used to do
    CTRL-Z      undo
    CTRL-Y      redo
    <M-Space>   system menu
    CTRL-A      select all
    <C-Tab>     next window, CTRL-W w
    <C-F4>      close window, CTRL-W c

훨씬 더 강력한 버전의 Cream더 많은 키 를 다시 매핑 하고 기본 명령을 익숙한 다른 편집기와 비슷하게 만듭니다.

모든 일반적인 emacs 키 매핑을 활성화하는 Vimacs 플러그인도 있습니다 . 설치가 쉽고 원하는 것을 할 수 있습니다 (시도한 적이 없습니다).


매우 흥미로운 +1 :-) 나는 당신의 모든 링크를 읽고 테스트하고 있습니다 ... 나중에 더 많은 피드백을 줄 것입니다. 감사합니다. 건배
올리버

1
«easy 모드»의 키는 Emacs와 관련이 없습니다. 그러나«vimacs»는 흥미로운 것 같습니다. 방금 설치했는데 오래되었지만 여전히 작동합니다.
Hi-Angel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.