加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

vim – 两全其美:光标移动的箭头键或通过缓冲区翻转

发布时间:2020-12-16 01:45:20 所属栏目:安全 来源:网络整理
导读:我真的很喜欢这个使用左右箭头在缓冲区之间翻转的 vim技巧: "left/right arrows to switch buffers in normal modemap right :bncrmap left :bpcr (把它放在?/ .vimrc中) 但是有时候当我在文件上滚动时,我正在咀嚼三明治或其他东西,我真的希望箭头键正常工
我真的很喜欢这个使用左右箭头在缓冲区之间翻转的 vim技巧:

"left/right arrows to switch buffers in normal mode
map <right> :bn<cr>
map <left> :bp<cr>

(把它放在?/ .vimrc中)

但是有时候当我在文件上滚动时,我正在咀嚼三明治或其他东西,我真的希望箭头键正常工作.
我认为最有意义的是箭头键只有在实际打开多个缓冲区时才具有上述缓冲区翻转功能.

有没有办法扩展上述内容来实现这一目标?

解决方法

我宁愿有一个完全不同的映射,因为:

>游标非常有用,没有它们因为你有一个隐藏的缓冲区会让你烦恼很多
>某些插件使用< left>和< right>因为它们比l和h更少混淆;这些插件很可能会破坏这些映射

无论如何,你可以试试这个:

nnoremap <expr> <right> (len(filter(range(0,bufnr('$')),'buflisted(v:val)')) > 1 ? ":bn&;cr>" : "&;right>")
nnoremap <expr> <left> (len(filter(range(0,'buflisted(v:val)')) > 1 ? ":bp&;cr>" : "&;left>")

要查看上述文章的文档:

:h :map-<expr>
:h len()
:h filter()
:h range()
:h bufnr()
:h buflisted()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读