Я попытался отобразить, добавив ниже строку в .vimrc, но она не работает. Я проверил, что .vimrc загружается Vim.
map <Alt-D> <C-D>
есть ли какая-либо ошибка в этом отображении?
Я попытался отобразить, добавив ниже строку в .vimrc, но она не работает. Я проверил, что .vimrc загружается Vim.
map <Alt-D> <C-D>
есть ли какая-либо ошибка в этом отображении?
Для пользователей Mac: для сопоставления ALT + hjkl вместо этого используйте реальный сгенерированный символ (выясните, какой символ использует комбинацию в режиме INSERT), например, с моей клавиатуры я получаю:
<ALT+j> ==> ª
<ALT+k> ==> º
и так далее. Решение найдено здесь на Кару.
Я использовал это для перемещения строк вверх и вниз с помощью ALT + k\j, используя это на моем .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
как объяснено здесь.
Надеюсь, что это полезно, наслаждайтесь Vim :)
ADDENDUM BY Dylan_Larkin (2019): чтобы это работало на Mac, "Использовать опцию как мета-ключ" необходимо выключить OFF в Terminal-> Preferences-> Keyboard
:help key-notation
описывает, какой формат необходимо использовать для сопоставления различных ключей. В случае alt вы можете использовать либо <A-
, либо <M-
. Таким образом, ваше сопоставление будет
map <M-d> <C-d>
Я также рекомендую использовать вариант nore
:map
(например, noremap
), если вы явно не хотите, чтобы правая сторона была переоценена для сопоставлений.
Я не уверен, что это возможно. Пожалуйста, ознакомьтесь с приведенным ниже обновлением.
Да, вы можете даже в терминале vim, но нет реального ответа на все. Вы в основном должны выполнить два шага:
Убедитесь, что существует нотация <M-d>
, и точно укажите, что входы вашего терминала (^[
- символ escape):
$ 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, я получаю ^[[1;2P
. Затем в моем vimrc я делаю: execute "set <S-F1>=\e[1;2P"
, а затем я могу сопоставить его с чем угодно.
Примечание: Я не знаю почему, но для некоторых людей, использующих \<Esc>
, работает вместо \e
.
Обновление (февраль 2016)
В зависимости от terminfo ваш терминал запускается, может быть, вы могли бы... в большинстве терминалов, например, "alt + h" отображается на ^[h
, а именно: "escape + h". Поэтому он может перезаписывать ключи. Я только что попробовал (снова) и, похоже, работает, но я считаю, что это очень неудачная и подверженная ошибкам реализация.
Тем не менее, для достаточно храбрых здесь экспериментальный плагин:
Карта Alt Key в Vim на Mac OSx:
Начните с просмотра key code, который ваш терминал отправляет в vim:
$ sed -n l
^[[1;9D
В приведенном выше примере я запустил команду и нажал Alt + Left.
^[[1;9D
- это экранированная последовательность, отправляемая в vim, поэтому мы можем использовать ее для нашего отображения.
map <Esc>[1;9D
Использование:
map <A-D> <C-D>
См. :help key-notation
.
Ваш терминал может не передавать "правильно" Alt-D. Вы можете использовать C-V, чтобы фактически получить фактическую последовательность escape-отправки в Vim и использовать ее для создания вашего сопоставления. Т.е. отредактируйте свой .vimrc и замените фактическое, введя следующую последовательность "C-V Alt-D", чтобы вы получили правильную последовательность эвакуации в своем vimrc. Это не сработает, если ваш терминал ничего не отправит в vim.
Мой терминал создавал команды ^[x
(например, для alt-x). Что заставило его работать внутри Vim, этот маленький script из 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, чтобы исправить все сопоставления клавиш alt.
Здравствуйте, после неудачного решения после нескольких лет тестирования на Mac, я продолжал искать.
Вот мое решение:
Чтобы создать комбинацию клавиш, включая Alt, вы должны объявить комбинацию в настройках> клавиатуры и использовать эту комбинацию в установочном файле vim (отметьте опцию use в качестве мета-ключа).
Вывод должен быть необычным символом (например, a
), чтобы вы не переопределяли обычный символ.
В приведенном ниже примере вы должны быть в состоянии справиться с ALT-Up.
настройка vim:
настройка Mac: