我找到.vimrc文件配置:
" Move selection up/down (add =gv to reindent after move)
:vmap <D-S-Up> :m-2<CR>gv
:vmap <D-S-Down> :m'>+<CR>gv
我知道D-S-Up必须是关键,但关键是什么?
我输入:
:help D-S-Up
什么都没发生
答案 0 :(得分:2)
:help key-notation
告诉您所有<key>
符号的含义。
您不能指望:help D-S-Up
做任何事情,因为:
i_ctrl-r
, <D>
是Mac键盘上的Cmd
键,<S>
是Shift
键,<Up>
是Up
箭头键。
所以<D-S-Up>
表示Cmd
+ Shift
+ Up
。
Cmd
密钥仅适用于MacVim GUI。
非便携式映射毫无价值。
应该使用:xmap
或:xnoremap
进行可视模式映射,而不是:v*
。
默认情况下,应使用非递归映射,除非确实需要递归。
使用其他人vimrc
是一个错误的想法。
顺便说一下,这些是这些映射的增强版本:
nnoremap <silent> <D-S-Up> :<C-u>move-2<CR>==
nnoremap <silent> <D-S-Down> :<C-u>move+<CR>==
xnoremap <silent> <D-S-Up> :move-2<CR>gv=gv
xnoremap <silent> <D-S-Down> :move'>+<CR>gv=gv
其中:
<silent>
可防止映射中的命令回显无用的信息,<C-u>
删除Vim插入的所有默认范围move-2<CR>
是m-2<CR>
,==
重新缩进该行,gv=gv
重新选择这些行,重新缩进它们,然后重新选择它们。答案 1 :(得分:1)
查看Move entire line up and down in Vim
在答案中,您可以阅读(关于行:vmap <D-S-Up> :m-2<CR>gv
):
根据上面的快捷方式,按Cmd-Shift-Up / Down将向上/向下移动块选择。 “D”是MacVim中的Command键,对于Windows,尝试“C”(控制)或“A”(Alt)(例如,将是Control Alt f)。
由于我自己没有Mac,我无法检查,但这肯定是真的。