.vimrc에 아래 줄을 추가하여 매핑하려고했지만 작동하지 않습니다. .vimrc가 Vim에 의해로드되었는지 확인했습니다.
map <Alt-D> <C-D>
이 매핑에 오류가 있습니까?
.vimrc에 아래 줄을 추가하여 매핑하려고했지만 작동하지 않습니다. .vimrc가 Vim에 의해로드되었는지 확인했습니다.
map <Alt-D> <C-D>
이 매핑에 오류가 있습니까?
encoding
매핑이 실행 된 후 변경 사항이 있으면 Alt 키에서 얻은 내용이 처음 설정 한 내용과 일치하지 않을 수 있습니다.
답변:
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 에 터미널 -> 환경 설정 -> 키보드
cat
입니다. cat
고양이 창 안에 원하는 키 조합을 입력하기 만하면 됩니다. 내 Mac에서 alt + 대괄호가 '및 "임을 알았습니다.
nmap ˙ <C-w><Left> nmap ¬ <C-w><Right> nmap ˚ <C-w><Up> nmap ∆ <C-w><Down>
sed -n l
매핑을 구성하기 전에 <Ak> 및 <Aj>의 출력을 보려면 사용 하십시오. 내 경우에는 <에이>는 ∆
와 <AK로는>이다˚
Use Option as Meta Key
또는 iTerm 프로필 ⌥ key to Esc+
은 기존 방식 (Linux / Unix에서와 같이)처럼 작동합니다. 따라서 Vim에서지도를으로 설정할 필요가 없습니다 <^[j>
. 그냥 <A+j>
또는에 매핑 <M+j>
하면 작동합니다.
:help key-notation
서로 다른 키를 매핑하는 데 사용해야하는 형식을 설명합니다. alt의 경우 <A-
또는을 사용할 수 있습니다 <M-
. 그래서 당신의 매핑은
map <M-d> <C-d>
또한 매핑에 대해 오른쪽을 다시 평가하도록 명시 적으로 허용하지 않는 한 (예 nore
:)의 변형을 사용하는 것이 좋습니다 .:map
noremap
<A-d>
. 당신은 아마 전송 귀하의 터미널의 설정을 변경해야합니다 <A-d>
으로 <Esc>d
.
더 이상 "가능"하다는 확신이 없습니다. 아래 업데이트를 읽으십시오.
예, 터미널 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>
작동 방식을 이해하면이 "속임수"를 다른 "이상한"조합으로 확장 할 수 있습니다. 예를 들어, I 'm using termite, and vim does n't know <S-F1>
, using cat I get ^[[1;2P
. 그런 다음 내 vimrc에서 다음을 수행합니다. execute "set <S-F1>=\e[1;2P"
, 그런 다음 무엇이든 매핑 할 수 있습니다.
참고 : 이유는 모르겠지만 일부 사람들 \<Esc>
은 \e
.
업데이트 (2016 년 2 월)
터미널이 실행하는 terminfo에 따라 아마도 ... 대부분의 터미널에서 "alt + h"는 ^[h
는 "escape + h"에 . 따라서 키를 덮어 쓸 수 있습니다. 방금 (다시) 시도했지만 작동하는 것 같지만 버그가 많고 오류가 발생하기 쉬운 구현이라고 생각합니다.
그럼에도 불구하고 충분히 용감하게 여기 실험용 플러그인이 있습니다.
execute "set...
물건 대신 set <M-d>=^[d
. 는 ^[
실제로 사용하여 입력 이스케이프 문자입니다 C-v-Esc
. 이것은 rxvt / urxvt에서 필요했지만 xterm은 특별한 처리가 필요하지 않습니다. 이 주제에 대한 자세한 정보는 vim wiki를 참조하십시오 .
Mac OSx의 Vim에서 Alt 키 매핑 :
터미널이 vim으로 보내는 키 코드를 확인하여 시작하십시오.
$ sed -n l
^[[1;9D
위의 예에서 명령을 실행하고를 눌렀습니다 Alt + Left.
는 ^[[1;9D
그래서 우리가 할 수있는, 사용자 정력로 전송되는 이스케이프 순서입니다 우리의 매핑.
map <Esc>[1;9D
Option
키 ( ⌥
)를 사용하면 vim을 종료하도록 Esc+
매핑 alt+q
할 수 있습니다 . nnoremap <silent> <Esc>q :qa!<cr>
내 터미널은 ^[x
명령 을 생성 합니다 (예 : alt-x). Vim에서 작동하게 된 것은 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
모든 alt 키 매핑을 수정하려면 .vimrc에 추가하십시오.