내 .vimrc 파일의 매핑을 존중하도록 IdeaVIM을 얻는 방법이 있습니까?
저는 최근에 (다시) 큰 방식으로 vim에 들어갔고 이제 .vimrc
파일에 많은 사용자 정의가 있습니다. 나는 IDEA 플러그인의 맥락에서 의미가 만들 것에 그 모든 것이 실현,하지만 난 좋겠 정말로 그것을 원한다면 매핑 같은 것들 jj
에 Esc
집어 수상했다. 그렇게하는 방법이 있습니까? 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 설정 (일반적으로 .vimrc
for를 사용하는 것)과 같은 항목을 추가 할 수있는 방법을 알지 못합니다 .
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 소스 코드를 수정했습니다. 내가해야 할 일은 플러그인을 다시 배포하고 공식 버전 대신 사용하는 것뿐이었습니다. 내가 한 방법은 다음과 같습니다.
IdeaVIM 소스 코드를 가져옵니다.
해당 페이지의 "개발"에있는 지침에 따라 플러그인에 대한 개발 환경을 설정할 수 있습니다.
이제 IdeaVIM 프로젝트가 모두 설정되었으므로 com.maddyhome.idea.vim.key.RegisterActions.java 파일을 엽니 다.
이 파일에는 모든 Visual / Insert / Normal 모드 명령과 해당 키 바인딩이있는 것 같습니다. "삽입 모드 종료"키 바인드를 변경하는 예는 "VimInsertExitMode"를 찾습니다. 새 바로 가기를 위해이 코드 블록에 한 줄을 추가해야합니다.
코드를 편집 한 후의 코드 섹션은 다음과 같습니다.
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)}) });
이제 프로젝트를 배포하고 (.jar 만들기) 플러그인 폴더에 추가합니다. 참조를 위해 다음 지침을 따랐습니다.
keymaps 폴더에서 Vim.xml 파일을 저장해야 할 수도 있습니다. 잘 모르겠습니다. 내 항목을 삭제 한 다음 IntelliJ를 다시 시작하면 다시 만들어졌습니다.
소용돌이를 줘! 이제 '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
'IT TIP' 카테고리의 다른 글
파이썬에서 사전을 반복하고 값이 같은 경우 어떻게 변경합니까? (0) | 2020.11.26 |
---|---|
동일한 앱에 여러 위젯을 추가하는 방법은 무엇입니까? (0) | 2020.11.26 |
주어진 시간보다 새로운 모든 파일을 재귀 적으로 찾습니다. (0) | 2020.11.25 |
두 팬더 열의 문자열 연결 (0) | 2020.11.25 |
Android에서 파일에 대한 MD5 체크섬을 생성하는 방법은 무엇입니까? (0) | 2020.11.25 |