Vim에서 Alt 키를 매핑 할 수 있습니까?
.vimrc에 아래 줄을 추가하여 매핑하려고했지만 작동하지 않습니다. .vimrc가 Vim에 의해로드되었는지 확인했습니다.
map <Alt-D> <C-D>
이 매핑에 오류가 있습니까?
Mac 사용자에게 : ALT + hjkl 매핑을 위해 생성 된 실제 문자를 대신 사용하십시오 (INSERT 모드에서 조합을 사용하여 어떤 문자를 찾으십시오). 예를 들어 키보드로 다음을 얻습니다.
<ALT+j> ==> ª
<ALT+k> ==> º
등등. 여기 StackOverflow 에서 솔루션을 찾았 습니다 .
나는 이것을 사용하여 .vimrc에서 이것을 사용하여 ALT + k \ j로 줄을 위아래로 이동했습니다.
nnoremap ª :m .+1<CR>==
nnoremap º :m .-2<CR>==
inoremap ª <Esc>:m .+1<CR>==gi
inoremap º <Esc>:m .-2<CR>==gi
vnoremap ª :m '>+1<CR>gv=gv
vnoremap º :m '<-2<CR>gv=gv
여기에 설명 된대로 .
유용하길 바라며 Vim을 즐기세요 :)
부 칙 BY Dylan_Larkin (2019) : 맥 "에이 작업을 수행하려면 메타 키로 사용할 옵션은 "켜져 있어야 OFF 에 터미널 -> 환경 설정 -> 키보드
:help key-notation
서로 다른 키를 매핑하는 데 사용해야하는 형식을 설명합니다. alt의 경우 <A-
또는을 사용할 수 있습니다 <M-
. 그래서 당신의 매핑은
map <M-d> <C-d>
또한 매핑에 대해 오른쪽을 다시 평가하도록 명시 적으로 허용하지 않는 한 (예 nore
:)의 변형을 사용하는 것이 좋습니다 .:map
noremap
더 이상 "가능"한지 잘 모르겠습니다. 아래 업데이트를 읽으십시오.
예, 터미널 vim에서도 할 수 있지만 실제로 모든 답을 찾을 수는 없습니다 . 기본적으로 두 단계를 따라야합니다.
<M-d>
표기법이 있는지 확인하고 터미널에서 입력 한 내용을 정확하게 매핑합니다 (^[
이스케이프 문자).$ cat ^[d $ " in your .vimrc execute "set <M-d>=\ed" " you have to use double quotes!
새로 "생성 된"조합에 매핑합니다.
noremap <M-d> :echo "m-d works!"<cr>
작동 방식을 이해하면이 "트릭"을 다른 "이상한"조합으로 확장 할 수 있습니다. 예를 들어, 나는 흰개미를 사용하고 있고, vim은 인식하지 않습니다 . <S-F1>
cat I get을 사용 ^[[1;2P
합니다. 그런 다음 내 vimrc에서 다음을 수행합니다. execute "set <S-F1>=\e[1;2P"
, 그런 다음 무엇이든 매핑 할 수 있습니다.
참고 : 이유는 모르겠지만 일부 사람들 \<Esc>
은 \e
.
업데이트 (2016 년 2 월)
터미널이 실행하는 terminfo에 따라 아마도 ... 대부분의 터미널에서 "alt + h" ^[h
는 "escape + h"에 매핑됩니다 . 따라서 키를 덮어 쓸 수 있습니다. 방금 (다시) 시도했지만 작동하는 것처럼 보이지만 버그가 많고 오류가 발생하기 쉬운 구현이라고 생각합니다.
그럼에도 불구하고 충분히 용감하게 여기 실험용 플러그인이 있습니다.
Mac OSx의 Vim에서 Alt 키 매핑 :
터미널이 vim으로 보내는 키 코드를 확인하여 시작하십시오.
$ sed -n l
^[[1;9D
위의 예에서 명령을 실행하고를 눌렀습니다 Alt + Left.
는 ^[[1;9D
그래서 우리가 할 수있는, 사용자 정력로 전송되는 이스케이프 순서입니다 우리의 매핑.
map <Esc>[1;9D
사용하다:
map <A-D> <C-D>
을 참조하십시오 :help key-notation
.
터미널이 Alt-D를 "올바르게"전송하지 못할 수 있습니다. CV를 사용하여 실제로 실제 이스케이프 시퀀스를 Vim으로 보내고이를 사용하여 매핑을 만들 수 있습니다. 즉, .vimrc를 편집하고 다음 시퀀스 "CV Alt-D"를 입력하여 실제 파일을 바꾸면 vimrc에서 올바른 이스케이프 시퀀스를 갖게됩니다. 터미널이 vim에 아무것도 보내지 않으면 작동하지 않습니다.
My Terminal would produce ^[x
commands (e.g. for alt-x). What got it to work inside Vim was this small script from vim.wikia.com:
for i in range(97,122)
let c = nr2char(i)
exec "map \e".c." <M-".c.">"
exec "map! \e".c." <M-".c.">"
endfor
Add to .vimrc to fix all alt key mappings.
Hello after no good solution after years of testing all the above on mac, I kept searching.
Here is my solution:
To create a combination keystroke including Alt you have to declare the combination in the preference > keyboard and use that combination in the vim setup file (check use option as meta key).
The output must be an unusual character (no a
for example) so that you're not overriding a regular character.
In the example below you should be able to quite vim with ALT-Up.
vim setting:
mac setting:
참고URL : https://stackoverflow.com/questions/7501092/can-i-map-alt-key-in-vim
'developer tip' 카테고리의 다른 글
Visual Studio 2010에서 PDB 파일을 찾거나 열 수없는 이유는 무엇입니까? (0) | 2020.10.05 |
---|---|
키가 다운되었는지 확인 하시겠습니까? (0) | 2020.10.04 |
100 % 너비가없는 디스플레이 블록 (0) | 2020.10.04 |
Android의 다른 레이아웃에서 동일한 ID를 사용할 수 있습니까? (0) | 2020.10.04 |
Ruby on Rails의 시작 / 홈 페이지-모범 사례 (0) | 2020.10.04 |