gpt4 book ai didi

vim - 重新映射方向键 vim

转载 作者:行者123 更新时间:2023-12-04 02:11:10 25 4
gpt4 key购买 nike

我试图让 vim 中的箭头键无用以习惯 hjkl。

在我的 .vimrc 添加几行后文件一切正常,但插入模式重新映射。

nnoremap <Down> :echo "No down for you!"<CR>
vnoremap <Down> :<C-u>echo "No down for you!"<CR>
inoremap <Down> :<C-o> echo "No down for you!"<CR>

nnoremap <Up> :echo "No up for you!"<CR>
vnoremap <Up> :<C-u>echo "No up for you!"<CR>
inoremap <Up> :<C-o>echo "No up for you!"<CR>

nnoremap <Left> :echo "No left for you!"<CR>
vnoremap <Left> :<C-u>echo "No left for you!"<CR>
inoremap <Left> :<C-o>echo "No left for you!"<CR>

nnoremap <Right> :echo "No right for you!"<CR>
vnoremap <Right> :<C-u>echo "No right for you!"<CR>
inoremap <Right> :<C-o>echo "No Right for you!"<CR>

问题是,每次按下一个箭头键时,它都会将以下字符串插入到我的文件中:

:echo "No **** for you!

最佳答案

我们有 vi.SE对于 Vim 问题,最好直接在那里发布。无论如何:

Sardorbek 的回答是正确的,映射到 <nop>是正确的解决方案。即这个:

noremap <Up> <nop>
noremap <Down> <nop>
noremap <Left> <nop>
noremap <Right> <nop>

inoremap <Up> <nop>
inoremap <Down> <nop>
inoremap <Left> <nop>
inoremap <Right> <nop>

然而,原因是您的 inoremap将行打印到文件中是因为您确实使用了 <c-o>:在映射开始时,因此正在运行的正常模式命令是 e (不是 :echo )。我相信你看到的线条实际上是:
:cho "No **** for you!

并不是
:echo "No **** for you!

此外, <c-o>只允许一个正常模式命令,但您需要两个:回显消息,并取消箭头键移动。

从本质上讲,以下内容很糟糕(真的很糟糕,请不要这样做)但会起作用:
inoremap <Down> <esc>:echo "No down for you!"<CR>ki
inoremap <Up> <esc>:echo "No up for you!"<CR>ji
inoremap <Left> <esc>:echo "No left for you!"<CR>li
inoremap <Right> <esc>:echo "No Right for you!"<CR>hi

一般来说,使用 <esc>优于 <c-o>c-u (在可视模式下)尽可能。

关于vim - 重新映射方向键 vim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38226085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com