Vim “如何重新映射”;q&引用;及;q";精神抖擞

Vim “如何重新映射”;q&引用;及;q";精神抖擞,vim,Vim,我正在尝试重新映射q和q。以下是我正在尝试的: cnoremap q :call TabCloseLeft('q') cnoremap q! :call TabCloseLeft('q!') cnoremap q:调用TabCloseLeft('q') cnoremap q!:调用TabCloseLeft('q!') 正确地重新映射:q,但不捕获:q。我已经阅读了各种帮助部分,但我显然忽略了一些内容。我看到了一些问题: 您正在危险地使用cnoremap,例如/q 您正在使用尝试覆盖vim的本机

我正在尝试重新映射
q
q。以下是我正在尝试的:

cnoremap q :call TabCloseLeft('q') cnoremap q! :call TabCloseLeft('q!') cnoremap q:调用TabCloseLeft('q') cnoremap q!:调用TabCloseLeft('q!') 正确地重新映射
:q
,但不捕获
:q。我已经阅读了各种帮助部分,但我显然忽略了一些内容。

我看到了一些问题:

  • 您正在危险地使用
    cnoremap
    ,例如
    /q
  • 您正在使用尝试覆盖vim的本机
    :quit
    功能
  • 看起来您正试图强制vim进入选项卡行为
cnoremap 不要使用
cnoremap
尝试创建命令,请使用
:command
。如果要覆盖命令,请使用巧妙的
cabbrev
表达式或插件

本地退出 在vim中退出缓冲区的方法有很多。有些人做的事情略有不同。随着vimmers学习更多的命令,他们将其集成到工作流中。e、 g.
c
关闭拆分/窗口,并
ZZ
更新当前缓冲区。如果沿着这条路走下去,您将覆盖许多命令,或者忽略有用的命令

标签 学会学习。在Vim中使用标签是很好的,但是它们不是唯一的方法,并且肯定会让您在前进的道路上感到痛苦。我认为最好是减少这些行为,鼓励更好的习惯

我看到了一些问题:

  • 您正在危险地使用
    cnoremap
    ,例如
    /q
  • 您正在使用尝试覆盖vim的本机
    :quit
    功能
  • 看起来您正试图强制vim进入选项卡行为
cnoremap 不要使用
cnoremap
尝试创建命令,请使用
:command
。如果要覆盖命令,请使用巧妙的
cabbrev
表达式或插件

本地退出 在vim中退出缓冲区的方法有很多。有些人做的事情略有不同。随着vimmers学习更多的命令,他们将其集成到工作流中。e、 g.
c
关闭拆分/窗口,并
ZZ
更新当前缓冲区。如果沿着这条路走下去,您将覆盖许多命令,或者忽略有用的命令

标签
学会学习。在Vim中使用标签是很好的,但是它们不是唯一的方法,并且肯定会让您在前进的道路上感到痛苦。我认为最好是减少这些行为,鼓励更好的习惯

你想用这些映射做什么?当您在那里按
q
时,这将把
:call选项卡…
文本放在命令行中。你什么意思
desn't capture:q?它应该有用。你的问题不是很清楚,但可能会给你一些提示。由于“q”和“q!”以相同的字符“q”开头,vim将在您键入“q”后等待您大约1秒,如果您不键入其他字符,它将使用第一个“q”映射。@LotAbout默认值为
1000ms
,可以通过设置选项
to,tm
来自定义映射?当您在那里按
q
时,这将把
:call选项卡…
文本放在命令行中。你什么意思
desn't capture:q?它应该有用。你的问题不是很清楚,但可能会给你一些提示。由于“q”和“q!”以相同的字符“q”开头,vim将在您键入“q”后等待您大约1秒,如果您不键入其他字符,它将使用第一个“q”映射。@LotusAbout默认值为
1000ms
,可以通过设置选项
to,tm
一个附加值来定制:,例如,您可以使用
:command-bang QT etc
来定义一个
QT
命令,该命令接受可选的
。添加一项:,您可以例如
:command-bang QT etc
定义一个
QT
命令,该命令接受可选的