Я попытался отобразить как добавление ниже строки в .vimrc, но это не сработает. Я проверил, что .vimrc загружается Vim.Могу ли я отобразить Alt в Vim?
map <Alt-D> <C-D>
есть ли ошибка в этом отображении?
Я попытался отобразить как добавление ниже строки в .vimrc, но это не сработает. Я проверил, что .vimrc загружается Vim.Могу ли я отобразить Alt в Vim?
map <Alt-D> <C-D>
есть ли ошибка в этом отображении?
Для пользователей Mac там: для отображения ALT + hjkl, используйте вместо реального символа сгенерированного (выяснить, какой символ с помощью комбинации в режиме вставки), например, с моей клавиатурой я получаю:
<ALT+j> ==> ª
<ALT+k> ==> º
и так далее. Решение найдено here на StackOverflow.
Я использовал это, чтобы переместить линии вверх и вниз с ALT + к \ у, используя это на моем .vimrc:
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
here, как описано.
Надеется, что это полезно, наслаждаться Vim :)
Это именно то, для чего я пришел сюда (Alt + HJKL, чтобы двигаться)! Благодаря! –
Простой способ узнать, какой именно персонаж, это использовать 'cat'. Просто введите 'cat' и внутри окна кота комбинацию клавиш, которую вы хотите. Выяснилось, что alt + скобки - это «и» на моем mac. – dvcrn
это прекрасно работает как Alt + HJKL, чтобы перемещаться между расколами, мои пальцы любят его !!'Птар ˙
:help key-notation
описывает, какой формат необходимо использовать для сопоставления различных ключей. В случае alt вы можете использовать либо <A-
, либо <M-
. Таким образом, ваше отображение будет
map <M-d> <C-d>
Я также рекомендую использовать nore
вариант :map
(например, noremap
), если вы явно не хотите, чтобы правая рука, чтобы быть переоценены для отображения.
Это все равно не имеет никакого эффекта. Вход Alt + D по-прежнему вводит какой-то странный характер для Vim. – Thomson
Это отдельная проблема. Ваш терминал отправляет многобайтовый символ в Vim, и Vim не знает, чтобы интерпретировать его как '
+1 для подсказки о вариантах nore. – Benoit
Ваш терминал может не передавать «надлежащим образом» Alt-D. Вы можете использовать C-V, чтобы фактически получить фактическую последовательность escape-отправки в Vim и использовать ее для создания вашего сопоставления. Т.е. отредактируйте свой .vimrc и замените фактическое, введя следующую последовательность «C-V Alt-D», чтобы у вас была правильная escape-последовательность в вашем vimrc. Это не сработает, если ваш терминал ничего не отправит в vim.
Карты Alt ключа в Vim на Mac OSX:
Начните с просмотром кода ключа вашего терминал отправляет в Vim:
$ sed -n l
^[[1;9D
В приведенном выше примере я выполнил команду и нажал Alt + Left.
^[[1;9D
- это экранированная последовательность, отправляемая в vim, поэтому мы можем использовать ее для нашего сопоставления.
map <Esc>[1;9D
Если вы используете приложение iTerm2, хорошо проверить, как клавиши отображаются в профиле> «Ключи». – fikovnik
Я не уверен, что это возможно. Пожалуйста, ознакомьтесь с приведенным ниже обновлением.
Да, вы можете даже в терминале 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>
Unders как это работает, вы можете расширить этот «трюк» до других «странных» комбинаций, например, я использую термит, а vim не распознает <S-F1>
, используя cat, я получаю ^[[1;2P
. Затем, в моем vimrc я делаю: execute "set <S-F1>=\e[1;2P"
, а затем я могу сопоставить его с чем угодно.
Примечание: Я не знаю, почему, но для некоторых людей, использующих \<Esc>
работы вместо \e
.
Update (февраль 2016)
В зависимости от terminfo В ваш терминал работает, может быть, вы могли бы ... в большинстве терминалов, "Alt + H", например, отображается ^[h
, который: «escape + h». Поэтому он может перезаписывать ключи. Я только что попробовал (снова) и, похоже, работает, но я считаю, что это очень сложная и ошибочная реализация.
Тем не менее, для достаточно храбрым, вот экспериментальный плагин:
делает это для отображения вставки в режиме вставки? –
Вместо 'execute 'set ...' stuff, вы можете просто использовать 'set
Существует ли аналогичный подход к этому, что будет работать с tmux, так что, т. е. Md может быть привязан? – George
Мой терминал будет производить ^[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
Добавить в .vimrc, чтобы исправить все ключевые альт отображения.
Вы используете vim в терминале или версию gui (gvim, macvim)? –
Также обратите внимание, что если ваша «кодировка» изменяется после того, как выполняется сопоставление, то, что вы получаете из ваших клавиш Alt, может не соответствовать тому, что вы изначально установили. –