【问题标题】:How to set tab key to indent text on nvim without errors?如何在 nvim 上设置 tab 键以缩进文本而不出错?
【发布时间】:2021-08-16 04:17:44
【问题描述】:

这是我在 nvim 中的“tab”缩进设置

nnoremap <Tab> >>_
nnoremap <S-Tab> <<_
inoremap <S-Tab> <C-D>
vnoremap <Tab> >gv
vnoremap <S-Tab> <gv

但问题是每当我重新启动我的 nvim 并尝试按制表符缩进文本时,nvim 都会报告错误 E481: No range allowed。当我尝试打开设置文件并通过命令:so% 获取该文件时。压痕被证明是完美的。我不想每次想要缩进文本时都打开并获取 vim 设置文件。

谁能帮我解决这个烦人的问题?

这是我的完整 vim 设置:https://pastebin.com/wG2NWGac

【问题讨论】:

    标签: vim settings indentation


    【解决方案1】:

    来自:help e481

    为不允许的 Ex 命令指定了一个范围。

    这些映射不使用 Ex 命令,因此它们不会引发该错误。您必须手动获取脚本这一事实告诉我,某些其他脚本是在所需脚本之后或而不是所需脚本之后获取的。

    像往常一样启动 Vim 并执行以下命令:

    :verbose nmap <Tab>
    

    查看&lt;Tab&gt; 的映射位置。


    既然我们已经做到了……

    • 第 1-2 行是多余的。保留第 2 行。

    • 第 20-27 行并没有按照您的想法去做。请改用10j10h10k10l。此外,&lt;S-j&gt; 只是 J,所以这里不需要那种不透明的符号。

    • 关于第 37-40 行的符号的相同评论。

    • JHKLWc 都是非常有用的正常模式命令,您不应覆盖这些命令。从 Vim 中删除特性并不是一种建设性的学习方法。

      请参阅:help J:help H:help K:help L:help W:help c

    • 您对递归/非递归映射命令的使用不一致。

    • 第 45 行,没有内置的:BW Ex 命令。你是说:bw吗?

    【讨论】:

    • 哦,当我输入:verbose nmap &lt;Tab&gt; 时,原来我的 键已经映射到NERDTREEFIND。这就是为什么我的缩进不起作用的原因。非常感谢您的指挥。
    猜你喜欢
    • 2011-06-16
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 2010-12-08
    • 2016-12-12
    • 1970-01-01
    • 2012-10-15
    相关资源
    最近更新 更多