IT TIP

내 .vimrc 파일의 매핑을 존중하도록 IdeaVIM을 얻는 방법이 있습니까?

itqueen 2020. 11. 25. 21:50
반응형

내 .vimrc 파일의 매핑을 존중하도록 IdeaVIM을 얻는 방법이 있습니까?


저는 최근에 (다시) 큰 방식으로 vim에 들어갔고 이제 .vimrc파일에 많은 사용자 정의가 있습니다. 나는 IDEA 플러그인의 맥락에서 의미가 만들 것에 그 모든 것이 실현,하지만 난 좋겠 정말로 그것을 원한다면 매핑 같은 것들 jjEsc집어 수상했다. 그렇게하는 방법이 있습니까? IDEA의 키맵에있는 모든 항목을 수동으로 조정할 필요가 없습니다.

감사.


업데이트 : 네! 대답을 참조하십시오 아래를 .

짧은 대답 : 아니요.

나는 .vimrc수년에 걸쳐 익숙해 졌던 꽤 복잡한 것을 가지고 있기 때문에 특히 이것을 시도해 왔습니다.

어쨌든 해결 방법이 있습니다 (일종). IdeaVim 설정이라는 파일에 저장됩니다 vim.xml.IntelliJIdea10/config/keymaps(홈 폴더 안에 폴더 C:\Users\<user_name>Windows의 경우). XML을 편집하여 원하는 내용을 추가 할 수 있습니다. 예를 들어 다음 줄을 추가하여 F2입력하는 대신을 눌러 파일을 저장했습니다 :w!.

<action id="SaveAll">
<keyboard-shortcut first-keystroke="F2"/>
</action>

그러나 함수 나 vim 설정 (일반적으로 .vimrcfor를 사용하는 것)과 같은 항목을 추가 할 수있는 방법을 알지 못합니다 .

PS 이것은 .vimrc가 사용되지 않는 이유를 설명 할 수 있습니다 (강조 내) :

궁금한 점은 플러그인이 VIM 소스 코드에 대한 참조없이 작성되고 있다는 것입니다 (정규 표현식 처리 제외). 나는 기본적으로 훌륭한 VIM 문서와 VIM 자체를 올바른 동작을 확인하기위한 참조로 사용하고 있습니다.
출처 : http://ideavim.sourceforge.net/


업데이트 된 답변 : IdeaVim 버전 0.35 (2014 년 5 월 15 일 출시)는 ~/.ideavimrc. source ~/.vimrc에서 매핑을 포함하려면 해당 파일에 넣을 수 있습니다 ~/.vimrc.

0.33 및 0.34는 ~/.vimrc직접 읽습니다 .

0.33 (2014 년 4 월 28출시)은 VIM-288 을 구현 한 첫 번째 버전 jj으로 ESC. 그것은 훌륭하게 작동하고, 매핑과 Intellij 매핑 사이의 모든 충돌을 나열하고 IDEA 또는 IdeaVim에 키를 할당하여 충돌을 해결할 수 있도록 하는 IDEA 환경 설정에 새로운 Vim 에뮬레이션 섹션이 ~/.vimrc있습니다. 트위터 출시 발표 입니다.

(참고 : 나는 저자가 아니라 만족스러운 사용자 일뿐입니다.)


IdeaVIM 문제 # VIM-288 (편집, 업데이트 : jbyler의 답변 참조 , 이제 VIM-288이 수정 됨)이 문제가 해결되면 문제를 해결할 것 같습니다. 나도 Esc 키를 사용하는 대신 'jk'삽입 모드를 종료하는 방법을 찾고있었습니다. 저는 IntelliJ 플러그인에 대한 전문가는 아니지만 'jk'단축키가 하드 코딩되도록 IdeaVIM 소스 코드를 수정했습니다. 내가해야 할 일은 플러그인을 다시 배포하고 공식 버전 대신 사용하는 것뿐이었습니다. 내가 한 방법은 다음과 같습니다.

  1. IdeaVIM 소스 코드를 가져옵니다.

    https://github.com/JetBrains/ideavim

  2. 해당 페이지의 "개발"에있는 지침에 따라 플러그인에 대한 개발 환경을 설정할 수 있습니다.

  3. 이제 IdeaVIM 프로젝트가 모두 설정되었으므로 com.maddyhome.idea.vim.key.RegisterActions.java 파일을 엽니 다.

  4. 이 파일에는 모든 Visual / Insert / Normal 모드 명령과 해당 키 바인딩이있는 것 같습니다. "삽입 모드 종료"키 바인드를 변경하는 예는 "VimInsertExitMode"를 찾습니다. 새 바로 가기를 위해이 코드 블록에 한 줄을 추가해야합니다.

  5. 코드를 편집 한 후의 코드 섹션은 다음과 같습니다.

    parser.registerAction(KeyParser.MAPPING_INSERT, "VimInsertExitMode", Command.Type.INSERT, new Shortcut[]{
        new Shortcut(KeyStroke.getKeyStroke('[', KeyEvent.CTRL_MASK)),
        new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK)),
        new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0)),
        new Shortcut("jk"),
        new Shortcut(new KeyStroke[]{KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SLASH, KeyEvent.CTRL_MASK),
            KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK)})
    });

  6. 이제 프로젝트를 배포하고 (.jar 만들기) 플러그인 폴더에 추가합니다. 참조를 위해 다음 지침을 따랐습니다.

    http://confluence.jetbrains.com/display/IDEADEV/Getting+Started+with+Plugin+Development#GettingStartedwithPluginDevelopment-anchor5

  7. keymaps 폴더에서 Vim.xml 파일을 저장해야 할 수도 있습니다. 잘 모르겠습니다. 내 항목을 삭제 한 다음 IntelliJ를 다시 시작하면 다시 만들어졌습니다.

  8. 소용돌이를 줘! 이제 'jk'를 종료 삽입 모드 바로 가기로 사용할 수 있어야합니다!


플러그인 저장소 ( https://github.com/JetBrains/ideavim ) 의 설명에 따르면 내용이 포함 된 " ~ / .ideavimrc " 파일을 생성하면됩니다 .

source ~/.vimrc

알다시피, Windows의 홈 폴더에서 .vimrc로 약간의 성공을 거두었습니다. 일반적으로 C : \ Users \ yourLogin입니다. 그것은 의도적으로 나타납니다. Oleg는 IdeaVIM이 여기서 VIm 명령의 하위 집합을 사용한다고 언급합니다.

http://youtrack.jetbrains.com/issue/VIM-134#tab=Comments

youtrack 시스템에 대한 의견을 보려면 로그인해야합니다.

Oleg Shpynov 2011 년 8 월 15 일 18:12

IdeaVIM 플러그인은 .vimrc 파일에서 일부 구성 데이터를로드하지만 Vim 플러그인은 IdeaVim 플러그인 내에서 모든 VIM 런타임을 다시 작성해야하기 때문에 지원되지 않으며 사용할 수 없습니다.

Note that you have to name the file .vimrc, not _vimrc, if you're on Windows where you might expect the latter.

Works with set ignorecase at least!


IdeaVim now (at least as early as 0.35) supports a limited number of set commands, as well as map and its variations. To have them sourced automatically, put your settings in ~/.ideavimrc.


To get it working on windows 7 create .ideavimrc in C:\Users[username]

Worked for me.


I just figured out how to do this yesterday. I was able to symbolically link my .vimrc to my ideavim settings by running the following command:

ln -s $HOME/.vimrc $HOME/.ideavim

참고URL : https://stackoverflow.com/questions/5585687/is-there-a-way-to-get-ideavim-to-honor-the-mappings-from-my-vimrc-file

반응형