【问题标题】:VIM : Toggle between two executions for the same remapVIM:在同一个重映射的两个执行之间切换
【发布时间】:2021-07-23 06:39:12
【问题描述】:

我想必须重新映射才能打开和关闭我的终端。
这是我打开它的重映射:nnoremap <C-s> :bel vert term<CR>
我想要的是当我的终端已经打开时,如果我再次输入<C-s>,它会执行exit<CR>
我已经尝试过在这里找到的功能:Toggle function in vim

let s:enable = 0
function! ToggleEasyMode()
    if s:enable
        nnoremap <C-s> exit<CR>
        let s:enable = 0
    else
        nnoremap <C-s> :bel vert term<CR>
        let s:enable = 0
    endif
endfunction

【问题讨论】:

  • 也许您应该使用tnoremap 进行终端绑定?
  • 未经请求的有用信息:这不是“remap(ping)”而是map(ping)。 Core Vim 没有任何映射,所以没有什么可以“重新映射”。混淆可能是由“nnoremap”中的“re”引起的,它是“nore”的一部分,而不是想象中的“remap”:nnoremapn 组成,表示“正常模式”,nore 表示“非递归”,map for... “映射(这个到那个)”。

标签: vim terminal remap


【解决方案1】:

感谢@ChristianGibbons
答案:

nnoremap <C-s> :bel vert term<CR>
tnoremap <C-s> <CR>exit<CR>

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 2011-08-12
    • 2023-03-29
    • 2013-05-28
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多