hel*_*elq 60 vim newline keymapping key-bindings
我希望使用Shift-Enter和在vim中以普通模式插入换行符Ctrl-Enter.我试图从一些解决方案和混合解决方案,Vim的维基-插入新行而不进入插入模式,但Shift-Enter并Ctrl-Enter没有作出回应:
" put a new line before or after to this line
nnoremap <S-CR> m`o<Esc>``
nnoremap <C-CR> m`O<Esc>``
" reverse J command
nnoremap <C-J> vaW<Esc>Bi<CR><Esc>k:s/\s\+$//<CR>$
Run Code Online (Sandbox Code Playgroud)
TKr*_*ugg 53
我的替代方法是使用oo(resp.OO)通过此映射在当前(resp.over )下插入一个新行:(
nmap oo o<Esc>k
resp.nmap OO O<Esc>j)
Ras*_*sen 12
抽空一行并移位粘贴:
从空行上的光标开始:
yy + (shift + p)
Run Code Online (Sandbox Code Playgroud)
“ yy”拉动该行,“ shift + p”将其插入到下面,而无需进入插入模式。
由于键盘输入在内部处理的方式,遗憾的是今天通常不可能.(这种特殊情况下,应在GVIM工作,虽然.)一些组合键,像Ctrl+ non-alphabetic不能映射,并Ctrl+ letter与Ctrl+ Shift+ letter无法区分.(除非您的终端为其发送不同的termcap代码,但大多数情况下都没有.)在插入或命令行模式下,尝试键入组合键.如果没有任何反应/插入,则无法使用该组合键.这也适用于<Tab>/ <C-I>,<CR>/ <C-M>/ <Esc>/ <C-[>等.(只有例外是<BS>/ <C-H>.)这是一个众所周知的痛点,也是关于vim_dev和#vim IRC频道的各种讨论的主题.
有些人(最重要的是Paul LeoNerd Evans)希望解决这个问题(即使是支持Vim的终端中的控制台Vim),并提出了各种提案.
但截至今天,尚未有任何补丁或志愿者挺身而出,尽管许多人表示希望在未来的Vim 8主要版本中使用它.