【问题标题】:Vim: Redefining :h and :help to Split VerticallyVim:重新定义 :h 和 :help 以垂直拆分
【发布时间】:2013-04-20 00:59:08
【问题描述】:

我想重新定义:h:help 命令,以便它们默认垂直分割屏幕。以下解决方案是不可取的,原因有两个。

cnoremap h vert help
cabbrev h vert help
  1. 我只希望对:* 命令进行替换。不幸的是,当我输入/h 时,也会发生替换。我浏览了地图上的文档,但找不到只重新映射:* 命令而不是/* 命令的命令。

  2. 我只希望在命令以 :h 开头时进行替换。如果我键入:ah,命令将扩展为:avert help。当我将命令连接在一起时,这种行为可能是可取的,但我不想在这里。

感谢您的帮助!

【问题讨论】:

  • 我强烈建议您试一试肯特的答案,因为它非常简单。如果您真的想重新定义命令,您可以将此重新定义限制为仅: 命令(请参阅:h getcmdtype())。有关如何使用它的示例,请参阅 github.com/rson/vimscript-snippets/blob/master/…
  • @RandyMorris 实际上我看到了一篇关于getcmdtype() 的文章,但Kent 的回答要简洁得多。不幸的是,我在肯特的回答下方评论了一个有趣的问题。

标签: vim remap


【解决方案1】:

我会为此使用cmdalias.vim - Create aliases for Vim commands 插件,但您也可以通过巧妙的映射来解决这个问题:

:cnoreabbrev <expr> h getcmdtype() == ":" && getcmdline() == "h" ? "vert h" : "h"

【讨论】:

  • 谢谢,这个解决方案效果很好。就个人而言,我会将vert 替换为vert belowright,因为这会在右侧面板中打开帮助窗口。
  • 回应我之前的评论:实际上,不,我不建议将vert 替换为vert belowright。设置set splitright 是一个更好的主意。
【解决方案2】:

我想重新定义 :h 和 :help 命令,以便它们分开 屏幕默认垂直。

在我的 vimrc 中,我有:

"====================
"Help in vertical split (right)
"====================
autocmd FileType help wincmd L

如果您希望在左侧垂直拆分中显示帮助,请使用 H 而不是 L

【讨论】:

  • 感谢您的回答!然而,我遇到了一个奇怪的问题。我第一次尝试垂直拆分窗口,但第二次水平拆分。我将在移动我的.vimrc 后重试,以防我的任何插件可能会干扰。
  • 在我的.vimrc 文件上使用手动二进制搜索后,我隔离了.vimrc 中导致问题的行:set hidden
  • 您的评论中的@void-pointer 我看不到问题所在。我很久以前在vimrc中写的那行,没有你的问题......
【解决方案3】:

一个非常低技术的解决方案:

nnoremap <leader>h :vert help <-- there's a <space> here

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 2016-07-21
    • 2010-11-19
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多