Использование функции reshape
:
reshape(dat1, idvar = "name", timevar = "numbers", direction = "wide")
Для пользователей Mac: для отображения ALT + hjkl вместо этого используйте реальный символ (узнайте, какой символ использует комбинацию в режиме INSERT), например, с моей клавиатурой я получаю:
<ALT+j> ==> ª
<ALT+k> ==> º
и т. д. Решение найдено здесь в StackOverflow.
Я использовал это для перемещения строк вверх и вниз с помощью 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:)
Использование:
map <A-D> <C-D>
См. :help key-notation
.
:help key-notation
описывает, какой формат необходимо использовать для сопоставления разных ключей. В случае alt вы можете использовать либо <A-
, либо <M-
. Таким образом, ваше сопоставление будет
map <M-d> <C-d>
. Я также рекомендую использовать вариант nore
:map
(например, noremap
), если вы явно не хотите, чтобы правая сторона была переопределена для сопоставлений.
<A-d>
. Вероятно, вам необходимо изменить настройки вашего терминала, чтобы он отправил <A-d>
в качестве <Esc>d
.
– jamessan
21 September 2011 в 15:19
Мой терминал создаст команды ^[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
Добавить в .vimrc, чтобы исправить все сопоставления клавиш alt.
Карта Alt Key в Vim на Mac OSx:
Начните с просмотра кода ключа, который ваш терминал отправляет в vim:
$ sed -n l
^[[1;9D
В приведенном выше примере я запустил и нажмите Alt + Left.
^[[1;9D
- это экранированная последовательность, отправляемая в vim, поэтому мы можем использовать ее для нашего сопоставления.
map <Esc>[1;9D
Ваш терминал может не передавать «правильно» Alt-D. Вы можете использовать C-V, чтобы фактически получить фактическую последовательность escape-отправки в Vim и использовать ее для создания вашего сопоставления. Т.е. отредактируйте свой .vimrc и замените фактическое, введя следующую последовательность «C-V Alt-D», чтобы в вашем vimrc была правильная escape-последовательность. Это не сработает, если ваш терминал ничего не отправит vim.
Я не уверен, что это возможно. Пожалуйста, прочитайте обновление ниже.
Да, вы можете даже в терминале vim, но нет реального catch all ответа. В основном вы должны выполнить два шага:
<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». Поэтому он может перезаписывать ключи. Я просто попробовал (снова), и, похоже, это работает, но я считаю, что это очень сложная и ошибочная реализация.
Тем не менее, для достаточно храбрых, вот экспериментальный плагин:
execute "set...
вы можете просто использовать set <M-d>=^[d
. ^[
на самом деле является escape-символом, введенным с помощью C-v-Esc
. Это было необходимо в rxvt / urxvt, но xterm не нуждался бы в особом лечении. Дополнительная информация по этой теме в vim wiki .
– Micah Elliott
20 August 2015 в 18:48
<Esc>
, тогда d
теперь делает то же, что и <Alt>
+ d
. Кроме того, вы можете просто сделать это в одной строке с Ctrl-v
, <Esc>
в соответствии с здесь .
– Sparhawk
18 January 2017 в 05:58
cat
. Просто введитеcat
и внутри окна кота комбинацию клавиш, которую вы хотите. Выяснилось, что alt + скобки - это «и» на моем mac. – dvcrn 22 July 2014 в 22:25nmap ˙ <C-w><Left> nmap ¬ <C-w><Right> nmap ˚ <C-w><Up> nmap ∆ <C-w><Down>
– John Morales 10 December 2014 в 02:54sed -n l
, чтобы видеть выход & lt; A-k & gt; и & lt; A-j & gt; перед настройкой сопоставления. В моем случае & lt; A-j & gt;∆
и & lt; A-k & gt;˚
– luk3thomas 13 January 2016 в 15:31